ULN2803A & 74HC595 Wiring

I am trying to control some solenoids with ULN2803A Darlington Sink Driver & a 74595 shift register to control the inputs. The ULN2803 have a input base resistor and a flyback diode built in. So I wired them as this: |500x324

The boards was working great for a long time with any problem, Today most of 595 compactly burnt ! |401x500

Am I wrong wiring them this way ? or the problem somewhere else ? a Bad 5V power source maybe ?

Show us an image of the PCB/wiring that those chips came from.

Don’t see a decoupling capacitor on the 595.

Here's the full wiring for the board. |500x276

Yes, There's no decoupling capacitor for the 595, Would this be the case ?

Probably not, but it prevents signal flow problems.

Let’s see the actual wiring of your cct.

This is the circut: |500x276

Using 24v to drive the solenoids, And arduino with SMPS 5v power source.

Any idea how I can prevent this from happening again ?

Let’s see the ‘ACTUAL’ circuit with the wires, power supply, PCB etc.

Well no 5V to the '595 and no decoupling, clearly it was going to fail, but I am worried by the damage - that suggests the ULN2803 burnt out and put 24V on the '595 which caused the die to explode.

You need to use decoupling on the 5V, 0.1uF, ceramic, on pin 16 to ground.

You need 100uF or more electrolytic decoupling on the 24V line to prevent overvoltage spiking and thus protect the output transistors of the ULN2803.

Have you checked the individual and total current limitations of the ULN2803 aren't being exceeded?

Is the incoming data cable long?

larryd: Let’s see the ‘ACTUAL’ circuit with the wires, power supply, PCB etc.

I'll draw it and post it today. Thanks

MarkT: Well no 5V to the '595 and no decoupling, clearly it was going to fail, but I am worried by the damage - that suggests the ULN2803 burnt out and put 24V on the '595 which caused the die to explode.

You need to use decoupling on the 5V, 0.1uF, ceramic, on pin 16 to ground.

You need 100uF or more electrolytic decoupling on the 24V line to prevent overvoltage spiking and thus protect the output transistors of the ULN2803.

Have you checked the individual and total current limitations of the ULN2803 aren't being exceeded?

Is the incoming data cable long?

I am only using about 0.25 Amp per channel. But the data cable is very Long ! About 4 meters. Could this be the cause ?

Yes, you can't reliably send raw CMOS logic signals down a long cable. Its possible to get double clocking or other odd effects if you try. Adding 270 ohm resistors to both ground and Vcc at the receiving end for each logic signal may improve matters by better matching the cable impedance.

But what kind of cable are you using?

“I'll draw it and post it today. Thanks”

“draw” NO.

WE NEED TO SEE A PICTURE THAT YOU TAKE WITH A CAMERA, THE WIRES GOING TO THE PCB, HOW THE PCB IS SOLDERED, AND THE PHYSICAL RELATIONSHIP OF ALL THE COMPONENTS.

MarkT: Yes, you can't reliably send raw CMOS logic signals down a long cable. Its possible to get double clocking or other odd effects if you try. Adding 270 ohm resistors to both ground and Vcc at the receiving end for each logic signal may improve matters by better matching the cable impedance.

But what kind of cable are you using?

I am using Ethernet cable from Arduino to the First board, And a 20cm connector between every board like the photos below.

larryd: “I'll draw it and post it today. Thanks”

“draw” NO.

WE NEED TO SEE A PICTURE THAT YOU TAKE WITH A CAMERA, THE WIRES GOING TO THE PCB, HOW THE PCB IS SOLDERED, AND THE PHYSICAL RELATIONSHIP OF ALL THE COMPONENTS.

Here's my setup 3x 24v power supply for Solenoids |375x500

24 board to drive 192 Solenoid, Each one have 8 output. connected to each other with a 20cm connector. |500x375

Control signal is coming from Arduino Uno board right now, connected to the first board with 4 Meter of Ethernet cable.

Also I discovered that the Atmega328 chip burnt too !

What was the case ? How I can prevent that from occurs again ? Any ideas ?

If it wasn’t a result of a short in the wiring, it’s my guess transients caused a breakthrough from the 2803 to the latch to the Arduino.

Personally, I would put 1N4001-1N4007 kickback diodes at the loads themselves rather than using the ones built into the 2803s. Possibly a loose screw on one of load terminals helped precipitated the problem.

Also put decoupling on the latch.

larryd:
If it wasn’t a result of a short in the wiring, it’s my guess transients caused a breakthrough from the 2803 to the latch to the Arduino.

Personally, I would put 1N4001-1N4007 kickback diodes at the loads themselves rather than using the ones built into the 2803s.
Possibly a loose screw on one of load terminals helped precipitated the problem.

Also put decoupling on the latch.

Should I put a optocoupler (Like 4N25) Between low voltage side (595) and the high volt side (2803s)?
Will this protect the rest of the circuit if something happens again ?

Albatroon: I am only using about 0.25 Amp per channel.

Not all eight channels 'on' at the same time I hope. The ULN2803 can't have more than two channels 'on' at that current. Leo..

larryd: Personally, I would put 1N4001-1N4007 kickback diodes at the loads themselves rather than using the ones built into the 2803s.

Its arguable both ways - diodes at the load mean high dI/dt in the wiring which could contribute EMI. Both ways get rid of the high voltage pulses.

Wawa: Not all eight channels 'on' at the same time I hope. The ULN2803 can't have more than two channels 'on' at that current. Leo..

Really !? the 8 channels was working and all on for about 3 month :D Now I have to change all the boards !

Thank you

At 250mA, and a typical volt drop of ~1.2volt across the switch transistor, there is 1.2*0.25= 0.3watt per channel generated inside that ULN chip. With eight channels 'on', that's 2.4watt... That will push the temp of silicon inside the IC up with about 175C (see datasheet). When the chip cracks under that stress, it could well take out the drive chip, and that could take out the Arduino. Leo..

Wawa: At 250mA, and a typical volt drop of ~1.2volt across the switch transistor, there is 1.2*0.25= 0.3watt per channel generated inside that ULN chip. With eight channels 'on', that's 2.4watt... That will push the temp of silicon inside the IC up with about 175C (see datasheet). When the chip cracks under that stress, it could well take out the drive chip, and that could take out the Arduino. Leo..

And That's Exactly what happens ! All 595's & the atmega chip gone away !

Thanks for your help

Are these solenoids always 'on', or is there some pattern that you haven't explained yet. The TPIC6A595 (shift register and driver in one), mentioned in your cross-post, is a good replacement for the two chips, but it will get hot with eight solenoids always 'on'. Can only just support eight 250mA solenoids if you keep the ambient temp under control. Another solution is 74HC595 chips with TIP120 darlingtons on each output, with 1k base resistor and kickback diodes across each solenoid. Leo..

Yes, There's some times that they all stay one for couple of secs. I'll go with the 74HC595 with TIP 122's. And U are welcome in this board design post :) http://forum.arduino.cc/index.php?topic=601144.0

Thank you for your help !