At What UART Baud Rate Is Hardware Flow Control Required?


Answer :

It is not data rate that matters; we use CTS / RTS (or XON / XOFF for software flow control) where a possibility of a receiver overflow exists, although admittedly that is more likely at higher data rates.

If a receiver cannot empty its buffers quickly enough, then it should deassert CTS (in response to which, the transmitter will assert RTS if there is more data to transmit).

Note that the transmitter may experience a buffer underrun in which case it should deassert RTS (because there is no valid data to send).

So it comes down to how fast the buffers can be moved - that is more likely to be an issue at higher data rates but it is completely implementation dependent; there is no single speed.


You require some form of flow control (be that hardware or XON/XOFF) when you are transferring data at a speed greater than you can process it. It's as simple as that.

Flow control is used for one end to tell the other end "wait a moment, I am still thinking". Usually it is tied to a buffer being almost full (known as a "high water mark").


Hardware flow control allows the communicating pieces of equipment to synchronize with each other. It allows the receiving piece of equipment to indicate that it is ready to receive the data that is being sent. If data is sent when the receiver is not 'listening', this will cause data errors.

The data rate that this occurs at will depend on a number of other things, including the type of device and software on the device. If you are connecting two PCs at 115.2K, they will likely be able to run fine. If it is two microcontrollers with other software load, they may not.

If you specify what type of devices are sending and receiving, you will receive better advice.


Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?