Electronic – arduino – Shift Register Programming with 8 and 16 bit drivers

74hc595arduinoledshift-register

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

Best Answer

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. :-)