RS-485 Polarity: Difference between revisions
No edit summary |
No edit summary |
||
Line 7: | Line 7: | ||
For the purposes of all our discussion, the A signal is the wire that, in the idle state, is at a slightly higher voltage than the 'B' signal. This difference in voltage measurements is the result of the biasing and termination resistors of the circuit. See [https://en.wikipedia.org/wiki/RS-485#/media/File:Rs485-bias-termination.svg Wikipedia] | For the purposes of all our discussion, the A signal is the wire that, in the idle state, is at a slightly higher voltage than the 'B' signal. This difference in voltage measurements is the result of the biasing and termination resistors of the circuit. See [https://en.wikipedia.org/wiki/RS-485#/media/File:Rs485-bias-termination.svg Wikipedia] | ||
'''Identifying 'Mark/Idle' and 'Space' ''' | |||
Look at the data bits. The idle condition is always the 'mark' condition. The start bit is always a 'space'. Drawings on the internet are in conflict with each other and cannot be relied upon. | |||
Revision as of 06:21, 18 September 2023
RS-485 comprises two signals, one that 'tracks' the UART logic levels (high voltage == 1, low voltage == 0). The other signal does the opposite. The meaning of these two signals has been polluted by chip and box vendors, which leads to a lot of confusion. A lot of further confusion arises when one considers the UART logic levels vs signal levels and labels. This article attempts to resolve the status, hopefully without adding to the confusion.
Identifying 'A' and 'B' signals
For the purposes of all our discussion, the A signal is the wire that, in the idle state, is at a slightly higher voltage than the 'B' signal. This difference in voltage measurements is the result of the biasing and termination resistors of the circuit. See Wikipedia
Identifying 'Mark/Idle' and 'Space'
Look at the data bits. The idle condition is always the 'mark' condition. The start bit is always a 'space'. Drawings on the internet are in conflict with each other and cannot be relied upon.
Our Terminology | Description | Data (UART) Representation |
---|---|---|
A | Tracking UART value | A is high when UART emitting 1, A is low when UART emitting 0 |
B | Non-tracking | B is low when UART emitting 1, B is high when UART emitting 0 |
Comment | Tracking | Non-tracking | Class | Manufacturer examples |
---|---|---|---|---|
Our terminology | A | B | Nominal | BITS |
Non-inverting | Inverting | |||
+ | - | Symbol | BACnet Specification | |
RT+ | RT- | EnOcean SmartServer IoT | ||
+ | - | Symbol | FT-Click, BASRouter LX | |
B+ | A- | MBS UBR-01 Mk II | ||
U+ | U- | Wikipedia | ||
B | A | Wikipedia. See, what a fiasco | ||
A+ | B- | Waveshare USB to RS-485 | ||
TI convention | A | B | TI Polarity Conventions |
TI has a very definitive document, but one that has to be read carefully in terms of terminology. Read this document with the following table in mind. Note, according to TI (and our opinion), the Wikipedia article on bus states is WRONG ! :
UART bit | Logic level | A-B (T+ - T-) result | Legacy | RS-485 state | RS-485 A volt | RS-485 B volt |
---|---|---|---|---|---|---|
1 | high | A > B | Mark/Idle | On (0) | high | low |
0 | low | A < B | Space | Off (1) | low | high |