Part recommendation for many channels of PWM? - Page 1
Forum section: electronics / projects

author: naimis
author_rank: Contributor
timestamp: November 02, 2013, 06:37:50 pm
content: I'm starting to give a bit more thought about my RGB LED cube design and am searching for parts to experiment with.The goal is to have an 8x8x8 cube of 24-bit RGB (8b per color). This is a total of 256 independently controlled RGB LEDs or 768 channels, however I anticipate using a POV scanning to bring that down to 64*3 at a time, which is how I've done the single-color cubes.The original plan was to use an FPGA with a set of SPI-based (I2C being too slow) I/O expanders, scanning through the display at a rate of 8 layers * 256 PWM levels * 30 fps = 61,440 times per second. An alternative might be to use external PWM controllers, though I'm unsure how well that would work in a multiplexed situation.I'm currently looking at PWM controllers on digikey and mouser, but there are a lot and I haven't yet seen a suitable one (digital, 8-bit level control). If any of you more experienced people have parts you'd recommend or design considerations to suggest, I'd appreciate it. (Mike? :-) Meanwhile, I'll continue pouring through the parts pages.

author: naimis
author_rank: Contributor
timestamp: November 03, 2013, 05:07:04 am
content: Quote from: AcHmed99 on November 02, 2013, 08:11:23 pmLooks like it could be useful. Bookmarked it in any case. Thanks!

author: jeremy
author_rank: Super Contributor
timestamp: November 03, 2013, 07:53:50 am
content: Look for the colorduino and the ICs it uses, I have one that drives a 8x8 RGB matrix with PWM on each colour. Fun little toy and costs barely anything.

author: dannyf
author_rank: Super Contributor
timestamp: November 03, 2013, 04:39:59 pm
content: QuoteThe amount of data that needs to be transmitted to support that kind of operation is probably beyond most mcus' capabilities.Maybe you want to think out of the box and see if you can achieve most of what you want to fewer requirements.For example, do you really need 8bit/ch pwm?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: November 03, 2013, 04:52:22 pm
content: Look at the LEDs with built-in WS8211 control chips - you could run a few rows on each string - easy to drive many strings from an FPGA.NXP and TI do a decent range of PWM chips. e.g.PCA9635.Muxing can work but you need to be synchronous with the PWM cycle - easy with the TI parts as they have a blank signal to start the cycle -not sure about the NXP ones - I used them once but didn't need to worry about syncing - looks like it may have been nontrivial, but they can take an external clock.But those WS2811 LEDs are so cheap, for something like this it's a no-brainer to do it with those unless you need something smaller

author: naimis
author_rank: Contributor
timestamp: November 07, 2013, 12:15:54 am
content: Quote from: dannyf on November 03, 2013, 04:39:59 pmNever planned to do this project using microcontrollers. Or at the very least, whatever plans I may have had for using mcus were quickly squashed once I ran the numbers. No, right now this project is being planned around an FPGA.

author: naimis
author_rank: Contributor
timestamp: November 07, 2013, 12:30:01 am
content: Thanks for the input, Mike. Figured I could count on your expertise :-) The synchronization issue has definitely been a concern in the back of my mind. LEDs with built in chips sounds expensive (512 of them in this design), though I haven't looked for any yet :-)One other thing that's been suggested to me is using a CPLD either for I/O alone or for both the I/O and the logic. The idea in any instance was that the FPGA or CPLD would hold a frame buffer that it would scan through and "paint" onto the cube using PWM. I hadn't quite worked out whether the frame buffer would be filled by the FPGA itself or by an external source, e.g. a PC, or both. It's been suggested that the CPLD might be able to drive the LEDs directly without additional switching (higher voltage/current capability than an FPGA). I haven't investigated this, however.I have a Digilent Basys 2 board (Xilinx Spartan 3E) but the lack of tutorials makes it a pretty steep learning "curve".

author: mazurov
author_rank: Frequent Contributor
timestamp: November 07, 2013, 01:23:18 am
content: TLC5940 is the name of TI part, quite popular among Arduino ppl. In addition to PWM it has programmable current source for each channel so you can tune for parts with uneven brightness or use it directly for non-PWM brightness control.

author: naimis
author_rank: Contributor
timestamp: November 09, 2013, 07:24:22 pm
content: After doing a bit of poking, I don't think ws8211 is appropriate for this project. A single-color 8x8x8 cube involves over 1000 solder joints. An RGB LED would nearly double that. The ws8211 has even more connections and appears to be available only as surface mount or in strips, neither of which would work well for an LED cube.Ordered three books from Digilent on FPGA design. Hopefully I'll learn something from them. Also going through the Xilinx ISE tutorial for at least the third time, trying to make sense out of it.The sync issues make me thing more and more that I/O expanders or CPLD are the way to go. But it wouldn't hurt for me to pick up a few samples of the NXP and/or TI products to experiment with.