Electronic – RS485 noise problems: signal ground / common ground / isolation

noisers485

I'm experiencing a lot of noise in an RS485 network I've put together using ST485 chips. The cable lengths are very short (<1m total cable length), I'm properly biasing the A and B signals and I've tried both with and without a terminator (seems to make no difference), and I'm only running at 19200 baud.

I suspect the problem is ground noise, as I'm using the RS485 input signals to set PWM levels for high-power LEDs (up to 1000mA momentarily at 3.8V). I'm using a four-wire connection between each node (+12V, GND, RS485-A, RS485-B, with the RS485-A & -B a self-twisted pair of hookup wire).

Although it's not suggested in the ST485 datasheet, would it be enough to add a signal ground wire between the RS485 device ground inputs, with 100Ω resistors in series between the RS485 device ground and the signal ground wire? Or should I think about adding full isolation to the RS485 device, including a transformer for floating power supply and opto-isolators on the A and B signal lines? Or is this excessive?

Thanks in advance.

EDIT I know I'm getting noise because in order to get the desired effect (particular brightnesses of particular LED lights), I have to use a CRC-8 on each packet (to drop bad packets at the receiving end) and send every message twice (to make up for dropped bad packets), and even then I'm still getting incorrect packets showing up on the receiving end.

EDIT Removed baud-rate error comments, as baud rate is in fact very accurate.

Best Answer

I'm guessing that the pulsed current draw on the +12v supply is what is putting the noise into the RS-485 signals. For debugging purposes, try disconnecting the LEDs. If your noise issues go away then you know that it's that pulsed 1 amp current. Assuming that's the case, then your job will be to reduce the current spikes on the +12v wire (which are also on the GND wire). A filter using an inductor+large_cap would help. Using a different cable where the power is isolated from the data could help too.

Related Topic