I send breaks (using Tx) over FTDI FT232R chipset using two ways:
a. Using the BREAK command in the operating system (Windows 7 and Ubuntu) b. Gating the Tx line for an arbitrary period
I connected the Tx pin to the Rx pin of the FT232R (loopback test) and used a variety of serial consoles to read the Rx input
I always got a binary 0 in both case. Each case individually behaved so:
- i. Using the BREAK command, I recieved binary 0 when the BREAK command was made active (BREAK is active low)
- ii. When gating the Tx line, I recieved binary 0 when I forced the Tx line low
This does not seem right to me.
The only time when the UART Rx can get "confused" between BREAK and a binary 0 transmission, is when the BREAK switches the line low for exactly 9 bits duration and then brings the line back to high (making the Rx side misinterpret as a stop bit), but this breaks a definition of BREAK which requires the line to be held low for at-least 10 bits duration.
So my questions are:
- Is this expected behaviour ?
- If you do a loopback test on your FTDI chipsets can you reproduce this behavior (implying I have bad drivers/faulty chipset)