Datasheet
25.7.7. Flushing the Receive Buffer
The Receiver buffer FIFO will be flushed when the Receiver is disabled (i.e., the buffer will be emptied of
its contents). Unread data will be lost. If the buffer has to be flushed during normal operation, due to for
instance an error condition, read the UDR I/O location until the RXC Flag is cleared. The following code
example shows how to flush the receive buffer.
Assembly Code Example
(1)
USART_Flush:
sbis UCSRA, RXC
ret
in r16, UDR
rjmp USART_Flush
C Code Example
(1)
void USART_Flush( void )
{
unsigned char dummy;
while ( UCSRA & (1<<RXC) ) dummy = UDR;
}
Note: 1. See About Code Examples.
The USART includes a clock recovery and a data recovery unit for handling
asynchronous data reception. The clock recovery logic is used for synchronizing the
internally generated baud rate clock to the incoming asynchronous serial frames at the
RxD pin. The data recovery logic samples and low pass filters each incoming bit, thereby
improving the noise immunity of the receiver. The asynchronous reception operational
range depends on the accuracy of the internal baud rate clock, the rate of the incoming
frames, and the frame size in number of bits.
Related Links
About Code Examples on page 20
25.8. Asynchronous Data Reception
The USART includes a clock recovery and a data recovery unit for handling asynchronous data reception.
The clock recovery logic is used for synchronizing the internally generated baud rate clock to the
incoming asynchronous serial frames at the RxD pin. The data recovery logic samples and low pass
filters each incoming bit, thereby improving the noise immunity of the Receiver. The asynchronous
reception operational range depends on the accuracy of the internal baud rate clock, the rate of the
incoming frames, and the frame size in number of bits.
25.8.1. Asynchronous Clock Recovery
The clock recovery logic synchronizes internal clock to the incoming serial frames. The figure below
illustrates the sampling process of the start bit of an incoming frame. The sample rate is 16 times the
baud rate for Normal mode, and eight times the baud rate for Double Speed mode. The horizontal arrows
illustrate the synchronization variation due to the sampling process. Note the larger time variation when
using the Double Speed mode (U2X = 1) of operation. Samples denoted zero are samples done when the
RxD line is idle (i.e., no communication activity).
Atmel ATmega64A [DATASHEET]
Atmel-8160E-ATmega64A_Datasheet_Complete-09/2015
258