Author Options:

Can a shift register be too slow for multiplexing? Answered

Hi, I'm trying to figure out working with shift registers. I bought a couple of 74HCT4094's, hooked them up through my breadboard to a small matrix with some LEDs and my Arduino.

Without multiplexing everything works fine, but no matter what circuit I build (changing wires, resistors, transistors, even the Arduino code), when I start to multiplex the LEDS clearly 'flicker' (is that the correct term?).

Is it possible that some shift registers are 'too slow' for multiplexing with Arduino?


Strangely enough, one night of sleep and some new wires and the problem disappeared. My money is on the PSU issues as well.

Make sure you have lots of bypass caps on the 4094s. I'd put 100nF AT the chip between Vdd and Vss. Also a nice fat electrolytic at the power input, and midboard.

Nice, learning a lot here!

You mean I should connect the Vss and Vdd with a capacitor? Is this IC more affected by noise than others?

Can you explain what you mean by putting a capacitor "midboard"?

Put the 100nF (preferably ceramic) as close as possible to the Vdd / Vss pins of the IC. Use short PCB tracks and short wires on the capacitor.

Anything that switches needs energy in the moment of the level change. Without a capacitor nearby, the supply voltage can drop and/or the GND voltage can bounce up (locally for the IC) for a short moment, which can lead to any kind of nasty effects.

A bigger capacitor (4.7µF/10µF not critical) for every 5 to 8 ICs can't hurt as well. (Money / board space permitting)

Wot 'e says. And add. CMOS is notoriously spiky when it switches and can generate a quite a bit of cruft on the supply, as voltage is dropped in the wiring by the spikes,

I doubt it. You may have PSU issues though.
Post your code for us to see.
Human vision Flicker fusion frequency is close to 25Hz, faster than that you shouldn't really see it.

Everything's got a speed limit.....................