I want to drive lots of LEDs in a spinning persistence-of-vision (POV) device.
I need one output pin per LED, because matrix techniques don't work right in spinning POV devices.
A serial-input, parallel-output (SIPO) chip is the best way to independently control lots of output pins using only a few pins on my microcontroller, right?
Which SIPO chip should I choose?
- 74HC4094 used in
- 74HC595 used in aka
- TPIC6595 used in ... (a POV device I can't find the link to right now)
- ... or perhaps something I'm overlooking?
Does one SIPO chip clearly have more capabilities or easier to use than another, or are they all more-or-less equivalent functionality?
They all can be connected in the "" configuration, right?
If I only have room for one kind of SIPO chip in my box of , which one should it be?
I hadn't looked at the 74HC4094, having always used the 74HC595, but the 74HC4094 looks like it has a couple of interesting differences:
-
The load signal is level-sensitive, rather than edge sensitive, allowing the device to be used in a "transparent" mode, where bits from the input are immediately shown on the output.
-
It has a cascading output which triggers on the same clock edge as the input, as well as a cascading output which is delayed by half a clock.
Use of this latter output will greatly improve sample and hold margins when feeding the output of the device into another one; the former may be useful in some situations when feeding a device which is known to receive the clock before the data. -
The 74HC4094 does not have the asynchronous clear function of the 74HC595.
There have been times I would have used the 74HC595's asynchronous clear if the load signal was level-sensitive (so that asserting clear and load simultaneously would clear the outputs), and times I would have used a synchronous clear (wire the cascade output to synchronous clear and synchronous load signals, and reduce communications requirement to two wires), but I don't think the signal will be missed on the 74HC4094.
Read the datasheets. TPIC6595 is for when you need more output current.
HC595 is very cheap & widely available, and would be the 'default' choice -
I think the HC4094 similar but may be some small differences - I've only used the old CMOS 4094 ages ago.
I need to implement some additional output pins for PIC MCU to switch on and off transistors which in turn ON/OFF MOSFETs via opto-couplers. I need 12 channels, so plans to cascade 2 8 bit shift registers.
I felt by reading data sheets that, I can use either 74HC164 or 74HC4094.What is the basic difference between those two chips? both are serial in parrellel outs? what is the plus point in each case?One is 'shift latch register'. How it effects practically in application?without latch, as you clock the shift register you have outputs change ... so for example if your output is"
00100110you can only change it to:10010011or00010011with latch, you can change it to "any" value as you can clock in X new inputs and then latch
Thanks arhi. Got it.
My application can't tolerate change as it clocks!So 74HC4094 is my choice.Thanks a lot!
One I/O line drives shift register with strobe
http://www.edn.com/design/systems-design/4410875/One-I-O-line-drives-shift-register-with-strobe
Today there are shift registers that have DATA and CLOCK inputs only, like , and shift registers with same inputs plus STROBE control input, like or. The shift registers without STROBE control have short-term transient states at outputs during shifting. Transients occur because shift register is directly connected to output lines. This kind of shift register can be used for driving LEDs and similar devices where short-term transient is irrelevant. For example, the human eye can't notice LED flickers shorter than 10 msec. The shift registers with STROBE control have two registers.
The shift registers shown are controlled with three lines: DATA, CLOCK, and STROBE.
One microcontroller port controls DATA and CLOCK inputs of shift registers. The STROBE input is inactive, connected to 5V (logical 1).
The RCD network enables that STROBE signal rapidly drops to zero, but slowly rise to one with time constant Rn×Cn=10.34 µsec.