Serial Pin Protection between Arduinos

I am working on an Underwater ROV using two Arduinos. One for Topside Control and one on ROV for motor control. I am using serial communication connecting TX to RX. Power for both topside and ROV controller is from 12V DC Battery. A 50 ft tether is used so power is first up converted to 48VDC with non-isolated DC converter then down converted to 12VDC at ROV. The tether also have the serial communication lines via twisted pair. See attached image. I'm having an issue with power protection of the serial pins. When I connect the TX-RX line 10 seconds after applying power to the ROV everything works fine. If I apply ROV power when TX-RX is connected then the RX and TX pins on either or both of the Arduinos are damaged. Any suggestions.

The Arduino will be damaged if a pin is exposed to a voltage greater than Vcc+0.5V or less than -0.5V.

In such a situation you can try to limit the current into or out of the pin with a series resistor (5K to 10K) but that will also adversely affect serial communications, especially over long wires.

If so, try lower Baud rates (e.g. 1200 Baud).

Well I can think two issues that could cause this. The TX pin topside supplies power to the ROV side circuits before the down converted power is available resulting in over current thru the TX RX pins. Or the power surge induces a transient in the tether with the power and serial lines when ROV power is supplied. As I said I can just not connect the serial comm line until 10 secs after ROV power is sent down using a switch but I don't think a manual power sequence is a reliable safeguard. Any suggestions is appreciated.

The attached (and not displayed) Google image is an incomplete Fritzing picture (!= a circuit diagram).

What sort of cable, which pairs are twisted, what motor currents, etc.

There will be a ground potential difference between both Arduinos because of motor currents.
Uno ground could be several volts higher than Mega ground.

Maybe you should use an opto coupler on the receiver end of the comm line.
Leo..

It would help if you protected each processor from being powered from the serial pin. The reason this is an issue is than each pin has a (body) diode to Vcc and Gnd. These are for protection from this sort of thing and to some extent ESD.

I think you can safely protect the devices with a 1k resistor. My reasoning is experience with Microchip processors which can easily handle 10 ma through the body diodes, I'm assuming the AVR processors are similar. BTW the reason I call them body diodes is they are part of the processor substrate, not a separate diode built on the substrate.

So my recommendation is:

  1. 5V or 5.5V zener ( one that doesn't draw current at your 5V power supply voltage) at the serial pin of processor each processor.

  2. Install a 500 ohm in series with each serial pin located near the serial pin. I'm not positive splitting the resistance will really be that much more effective but theoretically it has the benefit of providing some impedance if the zener has to clip a spike.

JohnRob:

  1. 5V or 5.5V zener ( one that doesn't draw current at your 5V power supply voltage) at the serial pin of processor each processor.

Zeners are useless if the Arduino is not powered up yet (VCC= 0volt).
Leo..

The standard protection everyone uses is series resistor and schottky diodes to bolster the on-chip protection diodes (depending
on the process they might be rated for < 1mA, note)

Schottky diodes have a lower on voltage so conduct before the on-chip diodes, and discrete schottkys can
easily handle brief pulses of 100's of mA.

Given your long tether and large supply voltages you must use opto-isolation in your serial
comms because you could have large (> 10V) offsets between topside and ROV grounds.

This is why you fry things, you are getting large voltages coming down the serial wires.

Althernatively you could float the topside Arduino supply separate from the 48V, so its referenced
to signal ground in the tether.

HI,

@Wawa,

The zeners were of course not for the un-powered state, put for secondary protection from voltage spikes etc.

My argument for zeners vs sckottky is the zener will (attempt) to limit the absolute voltage where a schottky simply raises the Vdd of the device. But in the end it is a design decision.

Regarding the voltage allowed by the zener, I concede it will be above the arduino maximum, however I'm sure we've all accidentally applied 6 or 7 volts or our arduino's and had them survive. After all it is to protect a transient condition.

Is there a GND ( 0 volt) wire between the 2 Arduinos?

Yes both arduinos share a common ground because the up and down voltage converters are non-isolated. 12VDC from battery powers topside arduino and in parallel the 12 to 48 VDC upconverter. 48 volts down the tether at up to 2 amps max along with twisted pair serial line (separate conductors for power and serial). Then 48 Volts to down converter to make 12 VDC to power ROV arduino, motor controllers, and motors. ROV arduino uses a separate DC regulator to make 9 volts then routed to Vin. All power shares common ground from Topside to ROV.

I am going to try a PC817 Photo Coupler tomorrow with 220 ohm resistors. I am only using 9600 baud so I think they will be OK with the slower baud rate. One question is how to test without a scope or burning up arduinos.