I built up a test circuit using 2 74hc595n shift registers to control a total of 16 leds with success. In the interest of saving space, I designed my circuit board to use one STP16CP05MTR shift register to do the job of the two 595's. I was led to believe I could use these in place of 2 595's. Is this correct, or is there a better choice, or different programming needed for it to function properly??

STP16CP05MTR Datasheet http://www.mouser.com/ds/2/389/CD00126634-470906.pdf

595 Data sheet https://www.google.com/url?sa=t&source=web&rct=j&ei=pCe1VMyxIMmcgwTluILABg&url=http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf&ved=0CB0QFjAA&usg=AFQjCNEk769V7UmuntIvV4jbOQaDZtVGhw&sig2=VNa9dAtctfvJ6U8bgKY8mA

  • \$\begingroup\$ Did you bother to check the data-sheets? You could at least to include the links... \$\endgroup\$ Commented Jan 13, 2015 at 14:07
  • \$\begingroup\$ Of course I did. And I've posted with my Android phone, attaching seems to be impossible. Sorry to have upset you so. \$\endgroup\$
    – Scott K
    Commented Jan 13, 2015 at 14:09
  • 2
    \$\begingroup\$ Some differences: STP has inverted outputs, and a level-triggered holding register, 595 has true outputs and a (positive) edge triggered holding register. Whether that has impact depends on the software. \$\endgroup\$ Commented Jan 13, 2015 at 14:17

2 Answers 2


While the 595's outputs can either source or sink current, it's limited to 70 mA total into or out of the chip and requires a ballast resistor for each LED it's driving.

The 16CP05 can only sink current, but each of its outputs can sink 100mA with a total of 1600 mA going through the chip's outputs to GND. On top of that, its outputs are constant current sinks and only a single resistor is needed to set the output current for all of the outputs.

As for the differences in the programming protocols, they're easily ferreted out by perusing the data sheets. :-)


While I haven't yet used a STP16CP05MTR, I briefly skimmed through the datasheet and it appears that:

Yes, a STP16CP05MTR chip can be used to drive 16 LEDs, replacing two 74hc595 chips.

There is a good chance that the hardware can simply be substituted, with no change in software and minor changes in how the LEDs are connected.

From the software point of view,

  • Sending out a 1 bit (HIGH) always makes the '16CP05 turn ON its output, turning ON the corresponding LED. Since the '595 can be wired up either way -- some people wire it up so a 0 bit turns the LED on, other people wire it up so a 1 bit turns the LED on -- this may or may not require changing the program.
  • In software, I would make sure the program keeps the latch enable pin LOW most of the time, with a brief HIGH pulse after all the data for all the daisy-chained chips has been shifted out. It appears that should work fine for any number of '16CP05 or '595 or any mixture in a daisy chain. (With this software arrangement, it doesn't matter that the '595 latch-enable is "edge-triggered" and the other is "level triggered").

From a hardware point of view,

  • swapping out those chips means you can get rid of the 16 "current limiting" resistors that you used with the two '595 chips, and replace them with a single "current set" resistor.
  • You may also need to consider power dissipation -- the power that was being dissipated in resistors near to the '595 is now dissipated inside the '16CP05 chip.
  • The '16CP05 gives you more flexibility than the '595 in the power rail. With the '595, you pretty much were forced to power the LEDs from a regulated 5VDC power rail. With a TLC5925 or '16CP05, you could power the LEDs the same way, but you also have the option of powering LEDs from unregulated 12VDC power rail.

As far as I can tell from a brief datasheet skim, the TLC5925 is pin-compatible with the '16CP05 and the TLC59282; all three work the same up to an output current of 45 mA per LED. The main difference is that '16CP05 can drive LEDs harder (up to 100 mA per LED).

You may also want to check out the chips listed at Which SIPO chip is better, 74HC4094 or 74HC595 or something else? .

Any of these chips -- the STP16CP05MTR, the TLC5925, a pair of 74hc595, a pair of 74HC4094, a pair of TPIC6595, etc. -- are more than adequate to turn LEDs full-on and full-off.

If you want the CPU to control the brightness of the LEDs to many values somewhere between full-on and full-off, you will want to look at other chips such as the TLC5940 or others in the TLC59xx family, the MAX6957, etc.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.