74HC595 Source/Sink Current

Hey guys,

First off, i'm following the tutorial here:

Correct me if i'm wrong, but the 74HC595 can source/sink MAX 20mA per pin.

With all four grounds on, A single pin is being asked to sink 4LEDs worth of current.
Also, there are four other pins being asked to source 1LED worth of current, at the same time.

Suggestions for a more suitable replacement for the 74HC595?
Hopefully something that works identical to the existing chip, as i'm almost finished my code for it.

EDIT: How about the TPIC6B595N. Is it able to source current, or only sink it?

EDIT2:
Maybe i'm going about this the wrong way. I'll explain what I'm working on.

I want to have 16 individually addressable LEDs.
They are going in a hat, and will be battery powered.
I was hoping to use something small like an ATtiny85 as the uC, hence my exploring multiplexing with a single shift register.

I'm willing to consider different setups (even if physically larger), that will either give me brighter LEDs, or increased battery life. Or both ideally.

Following the link from the instructables parts list to Digi-Key, to the datasheet for the TI 74HC595, on the first page under features, it says, ±6-mA Output Drive at 5 V.

On page 5 under absolute maximum ratings (which are to be avoided) it says Continuous output current ±35 mA. Now if that is a per-pin number, it's a long way from 6mA. So there may be some room to abuse the chip a bit and get away with it, especially in a multiplexing situation.

But there is also an overall maximum for the chip: Continuous current through VCC or GND ±70 mA, and of course there are thermal limitations as well.

The video on instructables only shows one LED on at a time. Using 120-ohm resistors as outlined, current could be as high as 25mA per LED. So I wouldn't be surprised if when trying to light more than one LED in a column simultaneously, if the brightness of all of them were diminished. Worst case we could be talking magic blue smoke I suppose.

Took a quick look at the TPIC6B595N. Open-drain outputs, so yes, they would sink current only.

With the 74HC595, transistors could be added to increase the current capacity. Another solution would be a MAX7219, which can drive an 8x8 matrix and is built for the purpose. The MAX7219 would also simplify the MCU code, as the MCU would not need to do the actual multiplexing, it would just send the desired bit patterns to the MAX7219.

Edit: another option, I've driven 4-digit 7-segment displays direct from an ATmega328P, using transistors for the digit drivers, but driving the segments direct from the MCU, with current-limiting resistors in the segment lines. I was careful not to exceed 20mA per pin, but that was more than needed, anyway. Heck, an ATmega328P isn't much bigger than an ATtiny85 plus a 74HC595 :smiley: