All these different circuits - what works for you?

I've been doing some research (ie digging around other peoples projects to see what's works, what's cool and, primarily, what I can steal - I mean learn from) and I've noticed that there seems to be a whole world of different techniques for driving LED matricies that, until you go digging for them, you'll never even know they existed.

My discovery this evening is that both the rainbowduino and colorduino use a mitsubishi M54564FP as a "8-unit 500mA source type darlington transistor array" as their row select on common anode RGB arrays (NB If anyone knows of a supplier to the UK for these or similar, please PM me). Both these platforms also seem to use some interesting, but pretty obscure and hard to source current sink chips too.

So we've got the forum classics of 74595's / 74138's and ULN2803's; the TI TLC5916 / TLC5940 paired with p-FETs that we're all familiar with, but how do you do it?

I want to hear what your favourite way of multiplexing your data is and what makes it so special. Let's hear from the Maxim and NXP lovers out there. You never know - what you post may spark an idea of something awesome in someone else.

Pol.

I really like the linked chip below that I used in my 5x5x5 led cube. It is a 16 bit shift register, but it's claim to fame is that it's output pin supply a constant current sinking driver. That saves a whole lot of resistors. You set the desired current using one programming resistor. Saved a lot of time designing and building the support logic for the cube.

http://www.allegromicro.com/en/Products/Part_Numbers/6276/

Lefty

How big of an array are you driving?
Single 8x8? That's one solution
Four 5x7s? That's another solution.
Columns with common anode and each row the cathodes?
Or Common ande across the row and columt the cathodes?

"All depends on what you're packing - regular or king size"

I use the MIC5891 chainable 8 output 500mA source driver, and the MM5451 35 output 20mA sink driver in my Lightuino project www.toastedcircuits.com. The MM5451 is nice because it has lots of outputs (but note the lower current then other chips -- you can combine outputs if you need to for greater current sinking). It is essentially a 35 output constant current shift register, so you can also actually use it as an open-drain logic device as well as for driving LEDs. So anyone who is using a 595 + resistor + LED might as well save the pain of soldering the resistor (and constant current is "better" for leds for other reasons) and use the MM5451. But I think a lot of people have 595s lying around...

Unlike newer LED driver chips, it does not PWM (but you can in software). This is a limitation relative to the newer TLC5940.

The MIC5891 sounds a lot like the source driver you mentioned but it is readily available (which is how I stumbled on it). You can combine 2 lines to double the available current.

I also think that there is a good case for buying big cheap PNP or P-type MOSFETS for source side driving, especially if you do not have space limitations. That way you can get a lot of current through them. It is often the case that these "array" chips don't save you much or any $ because they are lower volume specialty items compared to a good ol' TIP transistor, sold for cents instead of dollars.

Cheers!
Andrew