Calculate RS422 signal to travel time from one side to another

I want to calculate the time take to transfer command from one uC side to another, this is the architecture:

the Baudrate is 115200, the number of bits is 8.

I would like to hear explain not just an answer but how you got to this result.

Edit : try to understand if my calculation is correct: 10 bit / 115200 = 86.8 μs?

I'm not sure if it slew rate, the signal comes from stm32 "UART" and then translate with the transceiver to RS422 to make it differential because the long way (5 meters), I want to send 1 bit for example: HIGH or LOW that all.

• Unless you know the size of the command message, you can't work out the time. Also, if there are a acknowledgements or other protocol overhead. And it's good if you start with how you worked it out or tried to. Sep 18, 2022 at 13:16
• I just only want to transfer some logic bit 1/0 to other side Sep 18, 2022 at 13:18
• Why don't you try to calculate this time and post your answer, and your work, here? Don't take this personally, but we generally frown upon posts like "do my work for me." Sep 18, 2022 at 13:20
• @SteveSh I had edited the question with my thoughts Sep 18, 2022 at 13:24
• If you're just using the RS422 driver as a line driver, your question is about slewing rates and you need to talk about what driver chips you're using. (and there is no baudrate or bits/byte). If you're sending some kind of message (perhaps an ASCII "1" or "0") then it's about how long your message is. It will help if you clarify your question. Sep 18, 2022 at 13:24

The UART works in frames so all you can calculate with just the ideal baud rate is the ideal time when MCU A starts data transmission and when MCU B signals data is received.

So typically 8N1 framing is used so 10 bits per frame. So it takes ideally 86.81 microseconds delay for the recever to see the transmitted byte.

If the baud rate of the receiver is 1% slower, which is still within tolerance, it adds 0.868 microseconds.

Due to the typical 16x oversampling of the receiver, there can be a delay of up to one sixteenth of a bit or 540ns before receiver can detect start of transmission, just because the clocks are asynchronous.

Everything else can be estimated from datasheets.

There will be a propagation delay at the RS-422 transmitter. And on the receiver.

And the bits travel on the wire at speeds slower than speed of light, a good approximation might be 0.66*c. For a 5 meter cable, this would be about 25ns.

But these will generally be quite small delays compared to the delay just coming from the bit rate.

I want to send 1 bit for example : HIGH or LOW that all

If you are just looking to send a high or low signal to the receiver, there is no need to send a whole byte, you can just use an output of CPU 1 and connect it to an input of CPU 2. The differential driver keeps the noise down over the 5 m (or potentially much longer) line. You're not using it to send a serial signal, you're just using it as a line driver from a single bit of GPIO to another.

Over 5m you probably don't even need any biasing or termination -- here's a blog post about that.

The pair between the two driver chips is supposed to be twisted, of course, but again, at 5m it isn't going to matter. You can use any driver chips, pretty much, the ones shown here (75176) are the dominant pinout, with very many pin-compatible devices, and will work fine for you (if you have 5V). (Here's a Maxim Application Note about how to choose driver chips if you have any challenges such as long lines or high speeds: you have neither.)

In software terms, the output will be "instant". In hardware terms, it will probably be something faster than 100 ns, but it depends on a lot of things (mostly the exact driver chip, whether there is biasing, and the length and properties of the cable).