# LED Multiplex Anode-Row Driver

I'm helping build this art installation that amounts to a large 16 x 16 pixel display. I settled on using 16 TI TLC5926 constant current driver chips chained together to give me direct drive to each LED. In retrospect I'm doubting myself and wondering if this was a heavy-handed approach.

If I had done "the usual" LED multiplexing approach (i.e. LEDs at row, column intersections, and application of persistence of vision techniques), I might have perhaps been able to pull this off with 32 "drive pins" (rather than 256), at the expense of more software complexity and less effective brightness.

In a Multiplexed Anode-Row Cathode-Column topology, the TLC5926 would seem well suited to driving the Columns (sinking current). What would be an analogous / complementary chip for driving the rows in a similar chainable shift-register interface, and able to source up to 120 mA per channel (to match the TLC5926's sink capability)?

To be clear, I don't need a high-side current source. I'm basically looking for a serially controllable and chainable high side switch (preferably 16-bit to match the TLC5926 on the low side). Trivially, this could be accomplished by using two 8-bit 74HC595 shift register to drive the gates of 16 discrete FETs, but I expect there is a more integrated way to accomplish this.

-
the actual brightness doesn't drop as much as you would think, due to persistence of vision and the fact that LED's can be driven at a higher voltage for 1/10 or less duty cycle. –  Grady Player Feb 28 '13 at 22:06
@GradyPlayer thanks and yes I would take advantage of that higher current sourcing were I to multiplex them. –  vicatcu Feb 28 '13 at 22:13
@vicatcu I'm not sure I understand why you need a separate constant current source driver, but there are a couple of possible options: RX5816, a very poorly documented part from an unknown Chinese manufacturer, and Linear Tech's somewhat limited (50 mA per channel) LT3754 which is interesting in that it incorporates an internal boost converter. These may or may not meet the requirement you specify. The alternative is to use a P-MOSFET array IC such as Allegro UDN2981A. –  Anindo Ghosh Mar 5 '13 at 13:25
@AnindoGhosh not looking for a constant current source driver, rather a "16-bit serial-to-parallel high side switch"... I think I could achieve something like what I'm looking for with a couple of 74HC595 shift registers and discrete PMOS FETs, but before I go off and do that, I want to know if there is something that integrates that function more tightly. –  vicatcu Mar 5 '13 at 21:14
OK, then that's simple: Use Micrel mic2981 or OnSemi AMIS-39101, both are 8-channel high-side high-current drivers. Then there is the more expensive SPI-driven NCV7608 from OnSemi, configurable octal high/low side driver. Finally, Allegro has a couple of high-side options that I am totally unfamiliar with. –  Anindo Ghosh Mar 5 '13 at 22:17

here's quick sketch of what you're (probably) talking about.

your brightness will drop to 1/16 (if you have 16 rows)

Here is a link to a $I^2C$ part that can handle the current of 16 X 120 mA, but handles only 5 ports (perhaps 6). So you will need four of them.

-
understand, is there a chip that has a similar serial in/out inerface that integrates the high side FETs? –  vicatcu Feb 27 '13 at 18:02
are you suggesting P-channel FETs on the high side? Could I just as easily use NPN BJT's (accepting a 600mV drop)? –  vicatcu Mar 4 '13 at 14:47
the MC35XS3500 (linked above) has everything including I2C integrated. The symbols in the sketch above are PMOS enhancement type. You couldn't easily use NPN's (it would be 0.3 V drop also) but you could use PNP's. –  placeholder Mar 4 '13 at 15:05

Have you looked at Maxim's range of LED drivers? For example, the MAX7219 can drive an 8x8 array of LEDs, so you'll just need four of these to drive your 16x16 array. They're intended to drive 7-segment displays, but they can just as easily deal with any LED array.

A completely different solution you might like: RGB LEDs with integrated WS2811 IC.

Each LED is serially addressable. You just chain them with each LED's serial in connected to the previous LED's serial out. Then clock all your data into the first LED. This makes wiring up a display pretty easy. They're only \$0.145 each from Ray Wu's store in China.

-