hi
can any one pls explain me how to detect a start bit in uart. i am trying to write a vhdl code for uart. ideally a transition from 1 to 0 is a indication of start bit but there can be a similar condition in the data stream also.
so can any one pls help me.
thanks
tama
The start bit is detected when the UART is not collecting bits for data. This is either after reset (power up or control signal) or after the stop bit(s). It cannot be detected when the UART is in the state of reading the input as data.
If the UART is reset in the middle of data, it will synchronize properly after a sufficiently long idle time between data.
To detect the start bit to go into your receiver FSM, on detection of a low, sample 16x, then if more of 8 of those are low then you can consider it a start bit, if not clear the counter (false start bit) and resample again on next low detection.
The best way is detect the fall transition with a fall detector, start to count whit a clock 16x respect your baud rate and when your counter is 8 then sample the state of the line, if you detect zero then you have a real start bit otherwise your fall edge was a spike. if you detect a start bit you can sample the data every 16 times with the clock 16x starting from this point.
Bye