After finishing the coding of the blm_x driver to drive a button-LED matrix, I was doing a lot of experiments to learn about the best way to drive it. My aim is to drive a soft-button matrix from sparkfun.com with RGB LED’s. On the way some question marks passed my way, one of it was:
How much current is a 74HC595 able to supply? I read the datasheet(s), and had some problems to find the right interpretation of the numbers I found there:
Clamp Diode Current (IIK, IOK) ±20 mA
DC Output Current, per pin (IOUT) ±35 mA
DC VCC or GND Current, [glow=red,2,300]per pin[/glow] (ICC) ±70 mA
Phillips uses diffrent labels for the numbers:
input diode current ±20 mA
output diode current ±20 mA
output source or sink current
Q7’ standard output ±25 mA
Qn bus driver outputs ±35 mA
VCC or GND current ±70 mA
It looks like the 70mA is the max. sum current the 74HC595 can supply. There was a discussion about that in the programmers lounge (private access), I decided to continue it here. Some of the quotes from the discussion there:
TK:
A single 74HC595 output usually doesn’t source more than 25 mA.
This:
The 70mA is not the max. current that the 595 can provide, but the shortcut-current (shorting a pin to gnd/Vcc). 35mA is the max. output-current, and 20mA (output clamp current) seems to be the current that can be fed in the 595 per pin (when pin is low). In one datasheet this value was clearly labeled as input current. The last I read from fairchild makes the 70mA-value more clear (per pin!):
Clamp Diode Current (IIK, IOK) ±20 mA
DC Output Current, per pin (IOUT) ±35 mA
DC VCC or GND Current, [glow=red,2,300]per pin[/glow] (ICC) ±70 mA
seppoman:
for me, this reads as “the 70mA IS the max. continuous current that either the GND pin or the VCC pin can carry - this can be partitioned to one or several pins, but a single pin can only carry 35mA max” i.e. as soon as all 8 are on, each can only take about 9mA. I agree the wording in different datasheets can be a bit fuzzy at times.
stryd_one:
Due to the mass confusion about this spec, SmashTV was kind enough to sacrifice a SR some time ago, and the results confirm that you are correct.
this:
Something’s on my mind: if I connect 8 standard red LED’s (Vf 2V, If 20mA -> 100R) through a 220R resistor array, the output current of a single pin will be ca. 5V/(100+220+142)R = 10.8mA
142R would be the output resistance of a single pin if the max. output current is 35mA. It could be even less(?). But 10.8 * 8 = 86.4, this is above the speced 70mA. I never noticed a change of brightnes when all LED’s connected to a SR are turned on, but when these numbers are correct, the current would fall if the max. 70mA are reached, or the 595 would be in stressed state. Can somebody help me to understand this?
So, because of all this confuction, I did some experiments with the 74HC595 myself. Here are the results:
-
Grounding a single output pin set to high (no resistor, other pins open): Ipin = 68mA
-
Connecting a single output pin through 220R to ground (other pins open): Ipin = 20mA
-
Connecting a LED through 220R (other pin’s open): Ipin = 12mA
The next test result looks very interesting to me:
I connected all the pins set to high through 220R to ground, and measured the sum current from all pins to ground: Ipins-gnd : 142mA (!)
Then I let the 74HC595 in this state for some minutes, and measured the temperature: 36° C (free air).
The voltage Vcc came down to 4.8V
The results show: the 74HC595 is able to have a current of 142mA through Vcc without getting very hot or something, and all the pins are able to provide ca. 17mA at the same time (with 220R resistors)! But I just wonder for how long, and if the device will get damaged.
The other question mark that struck me: when I connect 8 LED’s to a SR with 220R resistors (the standard MIDIBox solution to connect LED’s), the total current through Vcc of the 74HC595 will be ca. 96mA.
This is more than the specified 70mA max. I really wonder about this number, especially because I read a shortcut-current of 68mA when grounding a single pin. This is suspiciously near to the 70mA. And: “DC VCC or GND Current, per pin (ICC) ±70 mA”, why should they write “per pin” if this number would simply refers the max. current that can enter the Vcc terminal? Maybe it’s rather the max. current that can flow from the Vcc terminal to a single driver! (?) And 35mA is the max. current that should leave a output terminal without stressing the driver to much? After all the experiments and datashits this would be the explanation that looks the most reasonable to me.
Why I’am so interested in this?
-
I worry about my (and all the other) midiboxes driving eight LED’s simultaniously

-
I want to know if I can drive my RGB LED’s without having additional drivers at the source side.
I need ca 19mA for the red color to match with green / blue (they’r much brighter)
Maybe somebody can give me some comments and help me ease the pain in my brain?
EDIT:
some more test results:
- Ground 3 pins (no resistors), read current of fourth pin -> ground: I = 55mA
Temperature of 74HC595: 45° C
- Ground 4 pins (no resistors), read current of fifth pin: 51mA
Temperature of 74HC595: 53° C
But still alive.. 5 pins grounded sums up to a total current of 255mA. Here it starts to look critical to me. Now multiply 35mA with 8, you get 280mA.. the max. output current rating. 55° is still acceptable, now put the device in a closed box, and it will start getting critical. Does this make sense or not?
After all this I’m quite sure the 74HC595 can source 8 pins with 20mA each without any problems. What do you think?