6

I've got this nice RGB LED Matrix. My goal is to use several of them to create a 16x16 color display. Unfortunately, the display is common cathode.

From experiments driving a single LED with 8-bit PWM, I've noticed that there's a visible difference between colors at the lower (dim) end of the scale. In other words, increasing the brightness gradually from 1 to 16 will not be smooth but perceived as choppy. Increasing the PWM resolution to 16 bit resulted in perfectly smooth transitions.

I've found several LED drivers with 16-bit PWM, like the TLC5943. Unfortunately, the ones I've found are all current sinking, meaning they will only work with common anode types of LED matrices.

Are there any current sourcing LED drivers with 16-bit PWM? If not, is there any way to use a current sinking LED driver to drive a common cathode LED matrix?

joh
  • 191
  • 2
  • 4

1 Answers1

2

As long as you've got some transistors to drive the LEDs, then you can source your 16-bit PWM from a PSoC3. A single PSoC microcontroller should be able to give you 8x3 16-bit PWM channels. You'll then have to multiplex them.

The PSoC should even be able to handle the multiplexing in hardware, using DMA to stream the image data from memory, and deliver it to the PWM channels. This leaves the CPU to do other important tasks like generating the display data

The PSoC5 has an ARM Cortex M3 core. The good thing about the PSoC chips, though, is that they have re-configurable digital peripherals. This means you can choose to have loads of PWM, or loads of SPI, UARTS, or any combinations. You can wire up all of these peripherals internally, with gates, timers, flip flops, etc.

Wiring up a PSoC

This means that you can probably make the hardware in the PSoC manage the screen without any intervention by the CPU, giving a good solid image.

Rocketmagnet
  • 26,933
  • 17
  • 92
  • 177
  • Interesting! I like the idea of having only one MCU driving the whole display. Is there anything special about the PSoC3 making it well suitable for this kind of task? The reason I ask is because I'd prefer an AVR or ARM based microcontroller. – joh Jun 02 '12 at 15:13
  • I've looked at the STM32 family of ARM Cortex-M class MCUs and some of them have quite a few 16-bit PWM channels. I haven't yet wrapped my head around the different package options, but as far as I can understand, the [STM32F100RC](http://www.st.com/internet/mcu/product/216845.jsp) supports up to 37 PWM channels. Perhaps a bit overkill, as I only need 24... – joh Jun 02 '12 at 15:14
  • @joh - I've added my replied to your comment in my answer. – Rocketmagnet Jun 02 '12 at 21:34
  • I would advise you to read the PWM part of the datasheet carefully, as marketers like to stretch the truth in that department, e.g. PIC microprocessors with four PWM outputs that are just four outputs from the same PWM channel. – markrages Jun 02 '12 at 21:51
  • @markrages - Haha, then you don't know the PSoC! Check [this](http://www.cypress.com/?rID=40091) out. – Rocketmagnet Jun 02 '12 at 22:33
  • Wow, the PSoC looks like a very powerful device! Sort of like a hybrid between an FPGA and an MCU? – joh Jun 03 '12 at 11:55
  • @joh - Yes, very powerful and flexible. It can do *so many* things. But it's also incredibly easy to use. It's so much easier to set up the peripherals than on a PIC. – Rocketmagnet Jun 03 '12 at 12:51