0
\$\begingroup\$

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.

\$\endgroup\$
  • 3
    \$\begingroup\$ Can you show us the schematic. Also make sure you do not have something shorting out. \$\endgroup\$ – deathismyfriend Jul 22 '14 at 14:09
  • \$\begingroup\$ Are any of the chips getting hotter than normal in this failure mode? \$\endgroup\$ – Spehro Pefhany Jul 22 '14 at 14:54
  • \$\begingroup\$ Did not think to feel the chips. Short term, no, but I'll leave it "failed" for a bit and see if I can feel any heat. I don't think it's shorting, at least not with any wires or solder. \$\endgroup\$ – starvingmind Jul 22 '14 at 15:13
  • \$\begingroup\$ 5v version of Arduino Pro Micro. Unless someone can lead me to believe otherwise, because Serial and other board functions continue to work, I do not believe the issue is power regulator related. \$\endgroup\$ – starvingmind Jul 22 '14 at 15:19
  • 1
    \$\begingroup\$ Thank you for finally providing the schematic. That wasn't so hard, was it? It's a terrible schematic, with unnatural signal flow, nonstandard pin names, missing part types, pin numbers and reference designators, etc., but it does show that you've left the SRCLR input of the shift register that controls the digit drivers (presumably, that's the 74HC595) open. Allowing CMOS inputs of any sort to float is very bad practice, and it's possible that accumulated surface contamination of your homemade PCB is what's causing the symptoms you're seeing. Tie that input high if you don't need it. \$\endgroup\$ – Dave Tweed Jul 22 '14 at 16:13
3
\$\begingroup\$

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.

\$\endgroup\$
  • 1
    \$\begingroup\$ Sometimes charge can accumulate and stay there. If you, for example, touch it with a finger, that could cause the charge to drain away and the display to clear. \$\endgroup\$ – fuzzyhair2 Jul 22 '14 at 16:26
  • \$\begingroup\$ Yup. That's it! A click tap of a wire to VCC turned the displays back on for few seconds. I will mark this as the accepted answer, but thank you Dave Tweed as well for reaching the answer in the above comment. Thank you all. \$\endgroup\$ – starvingmind Jul 22 '14 at 16:30
  • \$\begingroup\$ Interesting comment. Where does this build-up charge come from? \$\endgroup\$ – sherrellbc Jul 22 '14 at 19:00
  • \$\begingroup\$ The air, maybe? You can actually build a device that will detect charge from far away attaching an antenna or a long wire to the floating gate of a mosfet. \$\endgroup\$ – fuzzyhair2 Jul 24 '14 at 14:28
-1
\$\begingroup\$

The Arduinos in general, and "micro" versions in particular, have a notoriously tiny capacity to supply current to external circuits without overheating their on-board regulators. When the regulator overheats, it shuts down in order to protect itself.

The fix would be to power the LED driver circuits directly from the USB power bus, either by using a separate regulator with an adequate heatsink, or by making appropriate adjustments to the circuit design to accomodate the higher voltage.

\$\endgroup\$
  • \$\begingroup\$ He's sourcing power through USB. The regulator you mention regulates the power from the higher voltage \$V_{IN}\$ (barrel jack on Uno, etc), so is not in the equation in this situation. \$\endgroup\$ – Majenko Jul 22 '14 at 14:29
  • \$\begingroup\$ All other function of the board, like Serial, continue to work. \$\endgroup\$ – starvingmind Jul 22 '14 at 14:30
  • \$\begingroup\$ @Majenko: Since the OP states, "I power everything off VCC of the Arduino Pro Micro", that depends on whether we're talking about a 5V Pro Micro or a 3.3V Pro Micro. That's why we need details like these in order to answer this sort of question. \$\endgroup\$ – Dave Tweed Jul 22 '14 at 15:08
  • \$\begingroup\$ @starvingmind: You should put that information into your question. Details are important! \$\endgroup\$ – Dave Tweed Jul 22 '14 at 15:08
  • \$\begingroup\$ @DaveTweed true, but as he says here in these comments, all the other functions keep working, so even if it's a 3.3V Pro Mini then the 3.3V regulator must still be working. \$\endgroup\$ – Majenko Jul 22 '14 at 15:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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