Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

arduino in car , crashes on load dumps, although dc-dc converter used..

Status
Not open for further replies.

settra

Member
Hello forum. i have the following problem .
On my car, i am building a network of can-bus connected arduinos. (the car does not have any can bus on its own) 3 of them atm. when the car is running normally, everything works as expected. but i have the following problem. when a load dump happens (etc when i turn on the lights (HID) , or use the power windows) the arduinos usually hang..
the two arduinos i am using are wired as follows:
1) This one can either be connected to the car directly to the 12v (and use the onboard regulator), or not be connected at all (powered via usb connection to a tablet). it also is wired in the cars can bus. on both cases, when a load dump happens, it hangs..

2) the other ones power supply is shown bellow:
Untitled.jpg

Ffven

Ffven

input capacitor is ~2000μF . there is also one , next to the arduino , ~100μF
DC-DC converter is a 12v to 5v step down.
https://grobotronics.com/step-down-dc-dc-converter-5v-3a-usb.html

this one crashes SOME times when i use the power windows, and always when i switch on the headlights. it also crashes even if i disconnected the can bus signal wires...

Any ideas that could help?? thanks !
 
High value electrolytic caps need supplementing with lower value non-electrolytic caps wired as close to the MCU supply pins as possible. You probably need some TVS devices across the power rails too, and reverse polaarity protection.
 
It's sometimes what you don't see that is important. The link for grobotronics step down converter has a lot of specification info. Where is the line regulation spec? How does it react to the input voltage stepping?
I can answer that: too much to reliably power an Arduino. :)

Solutions? Well, if you are not using all those amps that the down converter is able to supply (It seems to spec 2.5, 3 and 4 amps...which one is right??!),
I would attack the input to the step down converter first. It's quite possible you need better filtering from the car's DC to the input of the converter. Nip the problem at the source, not after it's stepped down.
Filters on the output of the converter could degrade the load regulation ability.

alek_t's suggestion to add smaller (ceramic) caps would be a quick band-aid. I would try at least 0.1uF to 1uF. I would also consider adding another stage of inductor/capacitor to see if that works.
Smaller and cheaper might be to add an RC filter which can work wonders - IF you are not drawing a lot of current. Since you are stepping down from 12 to 5, you have at least 7 volts to work with,
so maybe a resistor that gives a drop of maybe 2 volts combined with another large electrolytic capacitor. The normal 2/i = resistor ohms formula should work. For power rating, I'd use 2*ohms*i^2 = resistor watts.
If you have an inductor, that might work well too, but finding a very low resistance inductor may not work noticeably better since resistance here would help the filter.
 
What DC-DC converter? You could have ripple issues. You could try some lof Linear Technologies surge stopper devices.

First, I would try a 200 PRV reverse biased diode, and 18 V bidirectional transorb on the input.
 
Normally the term "load dump" refers to the Joules of energy dumped back into the battery causing a voltage spike due to an inductive load like the ACU clutch. Thus is often protected by a suitable MOV disc or TVS diodes on all interface power and signals.

A "supply dip" may be caused by an excessive surge current starting a motor or a charging a HV DCDC converter such as in an HiD supply, which is what you describe. but this also causes a transient EMI pulse, (both magnetic inductive coupled and capitively E field coupled), hence the name "Electromagnetic" pulse.

More likely the cause of the problem is an "EMI pulse" caused by dI/dt of any source and the spreading of that coupled field to the wire bundles may require filtering in either or both your Arduino power source or data IO cables.

For power source with conducted noise pulse, an LC filter is more effective than just an RC filter with the minimal wire resistance, R and inductance L for "glitch" noise suppression. The L must be rated for the max DC current. The C must be rated for sufficient low ESR to attenuate the transient spectrum.

But usually the problem is causes inductive coupling to the signal cables. The most effective solution is a high inductance CM (twin coil) choke in series with the IO signals (like ethernet has) or a clam-shell ferrite core around the cable (like all VGA cables have) or the thin IO cable wires wrapped around a large torroid or an SMT CM choke on the IO signal, power and ground lines as a bundle anywhere along the cable.


https://en.m.wikipedia.org/wiki/Choke_(electronics)#Common-mode_chokes
 
thanks for all your responses guys ! I tried the following:
installed 40 ohm resistor in series with the +12v before the DC-DC power supply.
soldered 0.15uF ceramic capacitors, literally on the MCU's pins...
installed TVS diode
installed 15v zener diode...
no iput / output signlas connected...

all the above failed... and ofcourse they did!

becouse i figured out, that even this configuration : Tablet conencted via usb to an arduino, with no connection to the car whatsoever, will "restart" whenever i turn on the lights, or the power windows !! BUUUUT only when the tablet or the arduino themselfs are near the cars "ground plane". wtf

so... whats the deal here?? is there an EMP being produced, so strong that it messes up the microcontrollers?
 
read my answer again about need for CM choke
 
Hey. so :
i decided to get rid of my power supply all together, and use a M2-ATX power supply that i had for my car PC.its a very good PSU designed for car/boar use.. it survives car cranks etc. now, if i have only the power + the can_bus wires, connected, the MCU dosen't freeze.... BUT. take a look on the following diagram :
Untitled.jpg

the resistors are not 12ohm but 1K :p

firstly:
can_bus controller is controlled via SPI.
i/o expander that controls i/o is controlled by I2C.. :p

the above diagram is how i intend to control the power windows. the relays are interlocked (via the 12v line) and are connected directly to the PW motor. if i have the above connectors connected to my board, then the MCU will freeze when etc i turn on the lights... (not to mention power windows :p ) ... One thing that is sure a problem is the different grounds... but i fear that even if i try, i wont be able to get them in the same spot..

Tony Stewart. how does common noise work in this situation?? (having just a ground as an output).. how could i filter this??
also, would bypass capacitors (0.1uF ceramic), do any good on the CAN_BUS lines and/or other i/o s??

thanks again !
 
Try a temp lashup powering the arduino stuff direct from the battery. both + and - from the battery, if that works you can put a relay inline and switch it on with the ignition to power the arduino stuff.
I wonder if you have a ground fault, is it an older vehicle?, maybe theres a ground connection or strap that has oxidised, I've had weird stuff like this on cars & plant vehicles that have turned out to be a ground, sometimes they hide them away out of sight.
 
Why not opto-isolate that circuit? dr pepper has a good point. Grounds may not have been thought out.

Ideally, you want to keep the high current grounds separate from logic grounds and ground them at one point only. Older cars had grounds everywhere.
 
Why not opto-isolate that circuit? dr pepper has a good point. Grounds may not have been thought out.
Nice idea! something like that ? :

.
Untitled.jpg

(sorry for the awfull schemantic but i cant make anythign better where i am atm :p )

To do this i would need, one more wire of GND from within the door... one from EACH door. (becouse the above diagram is x2 for 2 doors). if i gnd both in one door, would i make things worwst? (my current connector only has 5 pins)

edit: the car is pretty old... audi of 1992.
edit 2: Would , grounding the power window mechanisms, outside the door, in the same spot as the MCU, be the same as optoisolating?? (since then the isoalted ground would be in the same place as the original one)
 
Last edited:
Hey. so :



Tony Stewart. how does common noise work in this situation?? (having just a ground as an output).. how could i filter this??
also, would bypass capacitors (0.1uF ceramic), do any good on the CAN_BUS lines and/or other i/o s??

thanks again !

Adding ground connection improves the floating frame ground of the car to absorb common mode noise.
All currents flow in loops not just a single wire.

The common mode choke raises impedance to reduce stray inductive pulse currents. The imbalanced impedance on each line creates a voltage drop difference and causes your reset.

This is why we use good grounds and or in the case of floating automobile ground, use CM chokes where needed.
 
Normally the term "load dump" refers to the Joules of energy dumped back into the battery causing a voltage spike due to an inductive load like the ACU clutch. Thus is often protected by a suitable MOV disc or TVS diodes on all interface power and signals.
...

Actually, "a load dump" is caused by the alternator itself when a big load (head lights, AC clutch) turns off. It comes from the fact that at one instant (just before the big load is disconnected), the alternator field current is large enough to produce (say, 45A) at the alternator output. The instant after the load shuts off, the alternator output may be only 20A, with an eventual corresponding reduction in field current. What does it take to get from 45A alternator output to 20A output?

The problem is that the inductance of the alternator field is high (~0.5H) while its resistance is a few Ω, making for a time-constant of a few seconds. Because the field current is 2.5X what it needs to be to sustain 20A output, the alternator puts out 45A decaying to 20A as the field current decays to that implied by 20A load current.

The extra 25A alternator output current has no place to go except into the battery. It is the dynamic battery impedance that "holds down" its terminal voltage. In the scenario described above, if the battery is fully-charged to begin with, the battery voltage might jump from 14.4V to over 15.5V with a fast turn-on and a slow decay. This has nothing to do with energy being stored in the clutch magnetics...

The advice to connect voltage-sensitive electronics directly to the auto-battery is usually wrong-headed, and actually makes the problem worse, because it introduces ground-loops into the power distribution system for the added electronics that weren't there before.
 
Last edited:
Why not use the optos to control transistor base current instead of collector current?
 
The optocoupler may not have enough current to drive the relay. The standard automotive relays need about 160 mA. You might try an OPTOMOS relay.

oh yes, crap.... well. would grounding the PW circuit, outside of the door, and in the same spot as the rest of the electronics do any difference??
also : what if instead of grounding the "signals" through the NPN transistors, inside the board, i just re-wire them to be grounded back on one of the doors?

Why not use the optos to control transistor base current instead of collector current?

To do that i would need to get two more wires from the doors.. 12v and gnd (i think)... that would add even more i/o in the board, and i am already out of space... :/

edit: will bypass capacitors do anything in the CAN_BUS lines?? becouse i dont think i can get my hands on a small enough common-mode noise filter choke :(
 
Last edited:
To do that i would need to get two more wires from the doors.. 12v and gnd (i think)... that would add even more i/o in the board, and i am already out of space... :/

I don't think so. Isolate at the 5 V side. I probably would have looked at the ULN200x series of relay drivers if you were concerned with space. e.g. ULN2003
 
Actually, "a load dump" is caused by the alternator itself when a big load (head lights, AC clutch) turns off. It comes from the fact that at one instant (just before the big load is disconnected), the alternator field current is large enough to produce (say, 45A) at the alternator output. The instant after the load shuts off, the alternator output may be only 20A, with an eventual corresponding reduction in field current. What does it take to get from 45A alternator output to 20A output?

The problem is that the inductance of the alternator field is high (~0.5H) while its resistance is a few Ω, making for a time-constant of a few seconds. Because the field current is 2.5X what it needs to be to sustain 20A output, the alternator puts out 45A decaying to 20A as the field current decays to that implied by 20A load current.

The extra 25A alternator output current has no place to go except into the battery. It is the dynamic battery impedance that "holds down" its terminal voltage. In the scenario described above, if the battery is fully-charged to begin with, the battery voltage might jump from 14.4V to over 15.5V with a fast turn-on and a slow decay. This has nothing to do with energy being stored in the clutch magnetics...

The advice to connect voltage-sensitive electronics directly to the auto-battery is usually wrong-headed, and actually makes the problem worse, because it introduces ground-loops into the power distribution system for the added electronics that weren't there before.
I think the energy stored in the alternator is greater than the headlight, so this transient response is due to the alternator, but in general, the largest magnetic load is the AC clutch which determines the Joule rating in car specs for stored energy that is dumped in the battery and low ESR caps on any electronic unit when switched off, not the alternator power rating. This is why all DC peripherals must be load dump tested for cars and trucks.

The implication is induced current in any path this takes on common mode (radiated) and differential mode (conducted) devices. Thus both DC supply filter shunting and CM signal rejection are essential.
 
Last edited:
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top