The receiver timeout mechanism enables the receiver to detect an inactive RxD signal (a persistent High level). The timeout period is programmed by writing to the uart.Rcvr_timeout [RTO] bit field. The timeout mechanism uses a 10-bit decrementing counter. The counter is reloaded and starts counting down whenever a new start bit is received on the RxD signal, or whenever software writes a 1 to uart.Control [TORST] (regardless of the previous [TORST] value).
If no start bit or reset timeout occurs for 1,023 bit periods, a timeout occurs. The Receiver timeout error bit [TOUT] will be set in the interrupt status register, and the [TORST] bit in the Control register should be written with a 1 to restart the timeout counter, which loads the newly programmed timeout value.
The upper 8 bits of the counter are reloaded from the value in the [RTO] bit field and the lower 2 bits are initialized to zero. The counter is clocked by the UART bit clock. As an example, if [RTO] = 0xFF, then the timeout period is 1,023 bit clocks (256 x 4 minus 1). If 0 is written into the [RTO] bit, the timeout mechanism is disabled.
When the decrementing counter reaches 0, the receiver timeout occurs and the controller sets the timeout interrupt status bit uart.Chnl_int_sts [TOUT] = 1. If the interrupt is enabled (uart.Intrpt_mask [TOUT] = 1), then the IRQ signal to the PS interrupt controller is asserted.
Whenever the timeout interrupt occurs, it is cleared with a write back of 1 to the Chnl_int_sts [TOUT] bit. Software must set uart.Control [TORST] = 1 to generate further receive timeout interrupts.