4
\$\begingroup\$

enter image description here

I'm familiar with connecting a RS485 transceiver with a separate DE wire. However, on this pi hat, they used just Rx and Tx, and I'm not quite sure how it works. (or does it work?)

Looks like the transceiver switches to Tx with each transmitted 0, and then immediately goes back to Rx mode? Wouldn't the bus enter some kind of 3-state mode then, instead of sending 1? Or is this some hack with the gate capacitance?

\$\endgroup\$
2
  • \$\begingroup\$ The time constant is in the order of 360 ns (18 kOhm* 20 pF), so probably the hack with gate capacitance would work only for very high data rates (in excess of 2 MBit/s). I guess it is something else (if it works). \$\endgroup\$ – Arsenal Apr 16 '18 at 14:12
  • \$\begingroup\$ And to be a monostable there should be some assymetry (a diode) somewhere. I don't have much trust in this circuit. \$\endgroup\$ – Wouter van Ooijen Apr 16 '18 at 16:46
2
\$\begingroup\$

This circuit indeed transmits a zero as a RS-485 zero signal and a one as an idle state.

Most RS-485 receivers have a (built-in or discrete) fail-safe circuit that reads the idle state as "1". So in most cases, this hat will appear to work.

However, without an actively-driven "1" signal, there is no noise margin (which would be the whole point of using a differential bus like RS-485). So when you move your device from the lab bench to the real world, it's much more likely that the transmitted data will be corrupted by noise.


If you know the baud rate of the UART, it would be possible to construct a circuit that detects the start bit and then enables DE for the exact time needed to transmit the entire byte. But in the general case, a RS-485 transceiver requires a separately conntrolled DE/R̅E̅ signal.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.