4

The unsolved: when I connect power and signal lines to my Arduino - while power is on - I potentially kill it. I have fried 2 so far.

Situation:

  • I have build an DMX-controlled lighting fixture, which consists of the fixture and a Controller Box.
  • The fixture houses 2 Arduino's (5V), 2 steppers, 2 drives (36V), 2 fans (24V) and some temperature sensors.
  • The controller box houses 1 Arduino, amongst other electronics.

The controller box receives DMX and does calculations an send controls via I2C to the fixture.

There is a 8 pole connector between fixture and controller box.

1 - GND
2 - 5v
3 - 24v
4 - 36v
5 - CLK (i2c)
6 - SDA (i2c)
7 - signal line (used as charge pump)
8 - reset

All wires are shielded(but the shield is only connected AFTER the initial pins make contact)

When the power on the controller box is ON and i connect the light Fixture with the 8-pole connector my arduino goes to heaven.

My own idea's so far:

  1. Voltage spike, because the connection wires is grounded after it connects the pins.
  2. Some strange flyback? via the Arduinos in the light fixture? I connected everything straight to the 5v pins, not using the regulator.
  3. no idea

Any help on a way to search for the most likely cause of the problem would be greatly appreciated.

longneck
  • 103
  • 2

2 Answers2

1

If you ever drive an I/O more than a diode drop above or below its power supply rails, the internal ESD protection structure will begin to conduct. The internal structure is only there to keep the part alive during normal handling, i.e. in a factory but not for the situation described above. If the current in this structure is allowed to go high enough, it looks like an SCR and "Latches" up. When latch up occurs the device, like an SCR, will keep conducting as much current as the power supply rails are capable of until the current is removed and usually results in device destruction. The way around this is to limit the current that may flow into a pin, and prevent current from forward biasing the ESD structure: http://www.tayloredge.com/reference/Electronics/EMIESD/InputProtection.pdf

John Taylor
  • 417
  • 2
  • 3
0

There's usually a number of scenarios that can cause hardware to go poof when you plug it in to a live system. Most of them you have managed to identify, so I won't go into detail here.

Suffice it to say that creating hot-pluggable devices isn't as straight forward as you would at first guess.

There are two main critical things to consider when designing your system:

  • Suppression

Invest in TVS diodes to suppress ESD. All the IO pins that connect to the outside world that will be liable to be disconnected or connected at any time should be protected by adequate suppression. Any inputs should also ideally be tied to a default state with pullup or pulldown resistors so they aren't left floating.

  • Connector

The connector itself is pretty critical. Hot-plug connectors typically have different pins of different lengths so that they connect in a specific pre-determined order. Normally you want your ground and shield to connect first. Then your power supplies, and finally your IO pins. Doing it in any other order is asking for trouble - such things as back-powering through the IO pins if the supply hasn't been connected.

If you can't use a proper hot-plug connector then there are ways you can simulate it internally. You can add hardware (buffers, reed relays, FETs, whatever, depending on your signals) which normally isolate the signals from the MCU, and only when the MCU is powered up and ready does it then activate the buffers to allow the signals through. Of course, the buffers themselves have to be able to withstand any possible back-powering etc while the plug is being inserted.

One other small trick is to ensure that all your IO lines have a series resistor in them. This limits the maximum current that can ever go in or out of a pin (at a specific voltage of course) to a level that is safe for the hardware. 470Ω - 1KΩ are good values.

Majenko
  • 105,851
  • 5
  • 82
  • 139