Electronic – arduino – Protecting RS-232 from overvoltages

arduinoprotectionrs232serial

I am using Some arduinos (5V Pro-Mini, but planing to move to actual ATMEGA chip) over a distance of few metres.
These are connected using standard Alarm cable (I had problems with Ethernet cable and 12 volts leaking between cores)
In mine set-up the cabling caries DC~12V (bit bigger closer to the source and backup car battery)I am protecting mine inputs using resistive divider (all the inputs where designed to be around 12VDC(then dropped to around 4.3VDC when HIGH) ground is connected through diode to protect polarity.

Problem is How to protect the RS-232 from being either shorted to or connected to 12DC (or ground) incorrectly.
I am planning the possibility when cabling may extend up-to 60-70 metres.

I have been considering the Zener diodes, but I am not sure how effective would 5.1V + margin be. while the 4.7 model might be too low and short the standard communication
Although I do not know what level the internal protection has from over-curent against ground.

Edit:
I am using UART on a chip (directly on a logic level)
the baud rate is intentionally slow and data send (including self-diagnostic for data corruption)is minimal generally less then 2 bytes per second.

Best Answer

RS-232 transceivers such as MAX232 are guaranteed to survive connection (inputs or outputs) to +/-25V without damage. That's what they are designed for.

If you're using CMOS levels direct from the MCU chip, the limits are more like Vss - 0.3 to Vdd + 0.3V. You may be able to protect them by adding some series resistance (a few K) and operating at a relatively low baud rate to compensate for the resulting more sluggish waveforms. The added resistance limits the current, but does not clamp the voltage (except via the on-chip protection networks, so it will exceed the voltages but current is limited), which may be acceptable. You could add unidirectional TVS diodes to the pins and a bit of series resistance for more protection.