300
8331B–AVR–03/12
Atmel AVR XMEGA AU
23.6.1
Sending Frames
A data transmission is initiated by loading the transmit buffer (DATA) with the data to be sent.
The data in the transmit buffer are moved to the shift register when the shift register is empty
and ready to send a new frame. The shift register is loaded if it is in idle state (no ongoing trans-
mission) or immediately after the last stop bit of the previous frame is transmitted. When the shift
register is loaded with data, it will transfer one complete frame.
The transmit complete interrupt flag (TXCIF) is set and the optional interrupt is generated when
the entire frame in the shift register has been shifted out and there are no new data present in
the transmit buffer.
The transmit data register (DATA) can only be written when the data register empty flag (DREIF)
is set, indicating that the register is empty and ready for new data.
When using frames with fewer than eight bits, the most-significant bits written to DATA are
ignored. If 9-bit characters are used, the ninth bit must be written to the TXB8 bit before the low
byte of the character is written to DATA.
23.6.2
Disabling the Transmitter
A disabling of the transmitter will not become effective until ongoing and pending transmissions
are completed; i.e., when the transmit shift register and transmit buffer register do not contain
data to be transmitted. When the transmitter is disabled, it will no longer override the TxDn pin,
and the pin direction is set as input automatically by hardware, even if it was configured as out-
put by the user.
23.7
Data Reception - The USART Receiver
When the receiver is enabled, the RxD pin functions as the receiver's serial input. The direction
of the pin must be set as input, which is the default pin setting.
23.7.1
Receiving Frames
The receiver starts data reception when it detects a valid start bit. Each bit that follows the start
bit will be sampled at the baud rate or XCK clock and shifted into the receive shift register until
the first stop bit of a frame is received. A second stop bit will be ignored by the receiver. When
the first stop bit is received and a complete serial frame is present in the receive shift register,
the contents of the shift register will be moved into the receive buffer. The receive complete
interrupt flag (RXCIF) is set, and the optional interrupt is generated.
The receiver buffer can be read by reading the data register (DATA) location. DATA should not
be read unless the receive complete interrupt flag is set. When using frames with fewer than
eight bits, the unused most-significant bits are read as zero. If 9-bit characters are used, the
ninth bit must be read from the RXB8 bit before the low byte of the character is read from DATA.
23.7.2
Receiver Error Flags
The USART receiver has three error flags. The frame error (FERR), buffer overflow (BUFOVF)
and parity error (PERR) flags are accessible from the status register. The error flags are located
in the receive FIFO buffer together with their corresponding frame. Due to the buffering of the
error flags, the status register must be read before the receive buffer (DATA), since reading the
DATA location changes the FIFO buffer.