BACRouter had built in a software noise filter for RS485. Here we will investigate its performance on ARC156.
Performance Of Reference Devices
The reference devices are ZN551 and AAR modules which utilize microchip COM20019I to handle ARC156 communication.
From testing, the reference devices only care about the falling edge of signals which corresponds to differential voltage of RS485 bus. Signal width does not participate to decode, unless the width is less than 0.52us which will be ignored. The mechanism is described in following paragraph.
These reference devices have a hardware noise filter built on SN74HC164 and SN74AHC1G32. On 10M clock base, only input signal levels from RS485 transceiver are low both on 1th and 5th clock, COM20019l will receive a low signal, so low level pulses shorter than 0.5us will be filtered.
Idle RS485 bus is more vulnerable to noise, because the biasing current is only a few Milli-amperes, it will take much longer to recover from noise signal than a driven bus which one node is in sending state.
On an idle bus, noise signals wider than 0.52us will be recognized by COM20019l as a starting pulse of a new frame.
On a driven bus, when a bit 1 is being sent, there should be a falling edge of differential voltage, if falling edge of noise is in the range of +/- 3.2us of valid signal’s falling edge, COM20019l will detect multiple falling edges, duplicated edges will be ignored.
When a bit 0 is being sent, there is no falling edge, but if there is noise of which falling edge is in the range of +/- 3.2us, COM20019l will incorrectly decode to bit 1.
Performance Of BACRouter
On and idle bus, BACRouter can tolerate noise signals shorter than 2.1us.
On a driven bus, if there is continuous bit 1s being sent, the pulse width is 3.2us, BACRouter can only tolerate noise signal shorter than 1.05us. If there is bit 0 being sent, the pulse width will be greater than 6.4us, then BACRouter can tolerate noise signal shorter than 2.1us.
Conclusion
BACRouter has a much better noise immunity than reference devices, except there is continuous bit 1s being sent, in such situation, noise can not affect reference devices, but noise signals wider than 1.05us may corrupt data for BACRouter.