Datasheet
148
8246B–AVR–09/11
ATtiny2313A/4313
16-bit data transfer can be achieved by writing two data bytes to UDR. A UART transmit com-
plete interrupt will then signal that the 16-bit value has been shifted out.
15.5.1 USART MSPIM Initialization
The USART in MSPIM mode has to be initialized before any communication can take place. The
initialization process normally consists of setting the baud rate, setting master mode of operation
(by setting DDR_XCK to one), setting frame format and enabling the Transmitter and the
Receiver. Only the transmitter can operate independently. For interrupt driven USART opera-
tion, the Global Interrupt Flag should be cleared (and thus interrupts globally disabled) when
doing the initialization.
Note: To ensure immediate initialization of the XCK output the baud-rate register (UBRR) must be zero
at the time the transmitter is enabled. Contrary to the normal mode USART operation the UBRR
must then be written to the desired value after the transmitter is enabled, but before the first trans-
mission is started. Setting UBRR to zero before enabling the transmitter is not necessary if the
initialization is done immediately after a reset since UBRR is reset to zero.
Before doing a re-initialization with changed baud rate, data mode, or frame format, be sure that
there is no ongoing transmissions during the period the registers are changed. The TXC Flag
can be used to check that the Transmitter has completed all transfers, and the RXC Flag can be
used to check that there are no unread data in the receive buffer. Note that the TXC Flag must
be cleared before each transmission (before UDR is written) if it is used for this purpose.
The following simple USART initialization code examples show one assembly and one C func-
tion that are equal in functionality. The examples assume polling (no interrupts enabled). The