16x8 LED matrix driver IC

I'm looking for some 16x8 LED matrix driver chips to drive 8x8 bi-colour matrix. As there common cathode to both colours MAX7219 chips don't really suit and multiplexing using serial chips probably won't be very good to drive 4,9 or 16 of these matrix displays. I have found 2 possibilities so far... Holtek HT16K33 http://www.holtek.com/pdf/consumer/ht16K33v110.pdf (28 pin version) Texas Instruments TLC5920 http://www.farnell.com/datasheets/47033.pdf I am finding it difficult to source the HT16K33 though it is my preferred choice. Are there any other other suitable controller chips that people know about or can you give pros/cons for a particular chip please.

As a follow up to this... It look like nobody can recommend an alternate part so I will to go with the HT16K33 but am finding it hard to get hold of. Only suitable place appears to be http://www.aliexpress.com/ but I have never used them before. Does anybody here use this site and can recommend for/against them?

Riva: As a follow up to this... It look like nobody can recommend an alternate part so...

I don't think there's such a thing. It would have a lot of legs...

What they do make is 8x8 matrix controllers that can be chained together to make 16x8, 24x8, 32x8...etc.

eg. MAX7219

fungus:

Riva: As a follow up to this... It look like nobody can recommend an alternate part so...

I don't think there's such a thing. It would have a lot of legs...

What they do make is 8x8 matrix controllers that can be chained together to make 16x8, 24x8, 32x8...etc.

eg. MAX7219

Both the chips I mentioned do 16x8. The MAX7219 is not really suitable as it only does 8x8 and the matrix is 16x8. It is possible to multiplex MAX7221 chips but this would need 2x chips per display module and I don't have any of them either.

The MAX7219 is not really suitable as it only does 8x8 and the matrix is 16x8.

You cannot chain two 7219s together?

Riva: Both the chips I mentioned do 16x8.

Oh, I missed the "bi-color" part. That complicates, things, yes...

I would definitely go with the TLC5920. The HT16K33 doesn't appear to do LED current regulation (it seems to me more interested in keyboard scanning, with display driving as a side effect of having a matrix scanner). If you're trying to keep parts to a minimum then external current regulation circuitry isn't the way to go.

LEDs which are brighter/dimmer than others are quite noticeable on matrix displays so a resistor won't cut it in unless you're incredibly lucky (or not particularly fussy...)

dhenry:

The MAX7219 is not really suitable as it only does 8x8 and the matrix is 16x8.

You cannot chain two 7219s together?

Only with a lot of messing about. Not sure what other problems (hardware wise) the low impedance inputs would cause compared to the MAX7221's high. I want the 'set it and forget it' of the MAX7219 but for a 16x8 matrix, no pissing about with code multiplexing as the eventual design would need 8, 18 or 32 chips depending on how well it performs vs size.

I have no idea what you are talking about.

The simplest solution would be to tie MOSI/SCK to the bus, and then strobe individual chip's latch pins to send data to whichever chip you want to send data to.

With that approach, you can send data to as many chips as you can.

Riva: I want the 'set it and forget it' of the MAX7219 but for a 16x8 matrix, no pissing about with code multiplexing as the eventual design would need 8, 18 or 32 chips depending on how well it performs vs size.

What's wrong with the TLC5920?

dhenry:
I have no idea what you are talking about.

The simplest solution would be to tie MOSI/SCK to the bus, and then strobe individual chip’s latch pins to send data to whichever chip you want to send data to.

With that approach, you can send data to as many chips as you can.

It’s not about sending data, it’s about having a common cathode to 16 LEDs. The MAX7219 won’t do that.

fungus:

Riva: I want the 'set it and forget it' of the MAX7219 but for a 16x8 matrix, no pissing about with code multiplexing as the eventual design would need 8, 18 or 32 chips depending on how well it performs vs size.

What's wrong with the TLC5920?

I don't think there is anything wrong with the TLC5920 apart from a lot more pins to solder :~ I see you point about not having external current limiting on the HT16K33 but the data sheet says to directly connect to the LED matrix so not sure about that as it's got to be limited somewhere.

Riva: I don't think there is anything wrong with the TLC5920 apart from a lot more pins to solder :~

Also a lot smaller pins, if you're soldering by hand...

If you're really planning on having multiple LED modules in the final device, it might be worth thinking about doing the multiplexing manually. You can use a simple 16 channel LED driver per matrix (eg. TLC5925) and connect all the anodes together in rows and drive them with eight MOSFETs. The final circuit might be even simpler than using TLC5920/HT16K33.

Edit: Scratch that, it doesn't work if it's a common-cathode display.

dhenry: I have no idea what you are talking about.

That's not a first XD

Riva: I don't think there is anything wrong with the TLC5920 apart from a lot more pins to solder :~

The other difference I see is that the HT16K33 has an internal oscillator and does the multiplexing itself, whereas with the TLC5920, you have to keep cycling the CS0-CS2 pins, transferring new data to the shift register each time.

Riva: I see you point about not having external current limiting on the HT16K33 but the data sheet says to directly connect to the LED matrix so not sure about that as it's got to be limited somewhere.

Looking at the DC Characteristics on the data sheet, I agree, it's designed to be used without series resistors. Current limiting is provided by the output resistance of the row drivers. Although the tolerance is quite wide (2:1 ratio between minimum and maximum values), the difference between rows is 5% maximum.

dc42:

Riva: I don't think there is anything wrong with the TLC5920 apart from a lot more pins to solder :~

The other difference I see is that the HT16K33 has an internal oscillator and does the multiplexing itself, whereas with the TLC5920, you have to keep cycling the CS0-CS2 pins, transferring new data to the shift register each time. That's definitely not what I want then :(

dc42: Looking at the DC Characteristics on the data sheet, I agree, it's designed to be used without series resistors. Current limiting is provided by the output resistance of the row drivers. Although the tolerance is quite wide (2:1 ratio between minimum and maximum values), the difference between rows is 5% maximum.

I don't understand one thing:

If you're correct the rows are outputting 25 (or 50!) mA each but the columns can only sink 200mA each - nowhere near enough for all 16 rows.

What happens if all rows are turned on at once? Do the LEDs go dimmer?

fungus: If you're correct the rows are outputting 25 (or 50!) mA each but the columns can only sink 200mA each - nowhere near enough for all 16 rows.

That's a very good point. Maybe they are not intended for applications in which you light more than about 5 LEDs per column at a time. I guess you could add series resistors to the row outputs to limit the current per LED to about 12mA, but then they won't be as bright.

I think because the chip does all the scanning itself (like the MAX7219 does) then the entire row is not on at the same time as it (the chip) is probably only lighting one LED at a time.

Riva: I think because the chip does all the scanning itself (like the MAX7219 does) then the entire row is not on at the same time as it (the chip) is probably only lighting one LED at a time.

Maybe... it's a bit light on details.

One other thing I noticed was: "The System Clock frequency determines the LED frame frequency. A clock signal must always be supplied to the device".

So it seems like the multiplexer is driven by a signal to the clock pin. Weird.

I think I have to agree that the best solution is a pair of MAX7219. It can sink 320mA and soruce 40mA, so it can drive 8 x 40mA LEDs per column.