Shift registers(?) failing after being left on a while

7segmentdisplaymultiplexershift-register

Resolved: SLCLR on SN74HC595 was not tied to VCC, so behavior was inconsistent.

I have a custom built board that is running seven 7-segment displays, multiplexed using SPI from an 5v Arduino Pro Micro. It's a simple device to track/display time for a kids game.

On the high side, I am using a ti 74HC595 to drive IMD10AT108 NPN/PNP (transistor pair) driver chips.

On the low side, I am using a STP08DP05MTR (shift register based) LED Driver.

When I first build a board it works great. 100% functionality. However, if I leave it plugged in running for a few days, something clearly gets fried. When it's first powered on, it will work for about 4 seconds, after which the 7-segment displays go out…sometimes with a quick flicker. They refuse to turn back on unless I physically cut power to the board…after which they will turn off again after a couple seconds. An arduino reset is not enough to get the LEDs to light…hard power reset is required.

Now, if in setup(), I shift out a single display to light (and not shift out anything more data after), that LED will stay lit without issue, leading me to believe the issue is related to either the 595 or LED Driver shift registers. Could also of course be the transistor based IMD10AT108 drivers, but I think keeping a static display lit points me in the direction of the shift registers.

Other than those components, I've got the required resistors for the LED driver, a .1uF cap next to the VCC pin of each chip, and a 10uF cap (I'm not sure it helps anything) where the power enters the board. I power everything off VCC of the Arduino Pro Micro, sourced through USB. There is also an IR receiver on the board to control the timer, but I can't see how that could be related.

I'm an experienced software engineer just learning the hardware side of things. I have built two boards…and the exact same issue has now happened to both boards. They are "toaster oven smd", so it's hard for me to pull and swap components.

The problem seems custom board related, and not hardware damage on the arduino. First board developed this problem after a week. I used the same arduino on the second board after the failure of the first board, and that second board worked fine for a week as well…before, after a week, that second board developed the same problem as the first.

Thank you for any ideas.

Best Answer

Your issue is that the SRCLR input to the 74HC595 IC is disconnected. Believe it or not, I actually had this exact same issue on an earlier circuit that I designed. What happens is that the pin will pick up random signals and clear that shift register, which subsequently clears the display. You should tie that input to high.

The other thing is that you have no resistors in your design. While the 595's do have a maximum drive capability, which keeps the LEDs safe from destruction, you should nonetheless add some sort of resistance there. It might damage the LEDs or damage the 595's.