I've seen people do a couple of RGB LEDS PWM'd, or lots of them binary switched; I've seen lots of single colour LEDs PWM'd and huge numbers binary switched, but never anything quite like this ...
So hear me out here. I'm working this idea through - already with a couple of dead end starts (ULN2803A's cannot source current, doofus).
I'm building an 8x8 grid (well it's not actually arranged like that, but it's a close enough analogy - ssshh, it's a secret!) out of RGB LEDS that I want to address individually with 8-bit (or near enough) precision - ie 256 levels for each colour. Yes, this does effectively mean that I want to PWM address 192 LEDS.
My current plan, having looked through Mike Cook's work, is to use a 74138 to demux my row select. Switching the V(led) using these demuxed lines using a TPC6108 (or similar - TBD) to drive the common anode of the 8 LEDs in that particular row.
By colour, each cathode goes to one of three TLC5916 units (8-bit shift registers that sink 120mA) with serial inputs cascaded together. This gives the us column select and colour; and it also allows me to balance the three colours against each other to set the white point.
Raster scanning across this lot, gives me the following calcs:
Assuming an update speed of 100Hz (to stop perceived flicker). With 8 rows, we need an 800Hz row clock. To give us the full 256 levels, that goes again up to 205kHz (near enough). With the arduino Uno having a clock speed of 16MHz (give or take 80 times faster), I think we might have enough cycles to get it all done.
My only concern is whether they'll be time to shift the new values into the 5916's fast enough (they claim a 30MHz I2C clock) - in fact, re-reading the datasheet now we can be shifting in the new values while the current ones are still being shown, result!
(I can't so the same way as Mike, as 3 ULN2803A darlington arrays as the sink will chew up all my pins like a neutron bowling ball, I could however use the 7442 as I don't need the enable lines or the ability to cascade them)
Any comments, advice, threats or portents of doom are greatly appreciated.
Cheers,
Pol.
PS. There is also the pricing issue - 3 x TLC5916 @ £0.85 vs 12 x TLC5940 @ £3.31 (farnell prices as of today)