English
Language : 

ATMEGA128RFR2_14 Datasheet, PDF (403/611 Pages) ATMEL Corporation – Microcontroller with Low Power
ATmega256/128/64RFR2
UCPOLn
1
UCPHAn
1
SPI Mode
3
Leading Edge
Setup (Falling)
Trailing Edge
Sample (Rising)
24.4 Frame Formats
A serial frame for the MSPIM is defined to be one character of 8 data bits. The USART
in MSPIM mode has two valid frame formats:
• 8-bit data with MSB first
• 8-bit data with LSB first
A frame starts with the least or most significant data bit. Then the next data bits, up to a
total of eight, are succeeding, ending with the most or least significant bit accordingly.
When a complete frame is transmitted, a new frame can directly follow it, or the
communication line can be set to an idle (high) state.
The UDORDn bit in UCSRnC sets the frame format used by the USART in MSPIM
mode. The Receiver and Transmitter use the same setting. Note that changing the
setting of any of these bits will corrupt all ongoing communication for both the Receiver
and Transmitter.
16-bit data transfer can be achieved by writing two data bytes to UDRn. A UART
transmit complete interrupt will then signal that the 16-bit value has been shifted out.
24.4.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_XCKn to one), setting frame format and
enabling the Transmitter and the Receiver. Only the transmitter can operate
independently. For interrupt driven USART operation, the Global Interrupt Flag should
be cleared (and thus interrupts globally disabled) when doing the initialization.
Note:
To ensure immediate initialization of the XCKn output the baud-rate register
(UBRRn) must be zero at the time the transmitter is enabled. Contrary to the
normal mode USART operation the UBRRn must then be written to the desired
value after the transmitter is enabled, but before the first transmission is
started. Setting UBRRn to zero before enabling the transmitter is not necessary
if the initialization is done immediately after a reset since UBRRn 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 TXCn Flag can be used to check that the Transmitter has completed all transfers,
and the RXCn Flag can be used to check that there are no unread data in the receive
buffer. Note that the TXCn Flag must be cleared before each transmission (before
UDRn is written) if it is used for this purpose.
The following simple USART initialization code examples show one assembly and one
C function that are equal in functionality. The examples assume polling (no interrupts
enabled). The baud rate is given as a function parameter. For the assembly code, the
baud rate parameter is assumed to be stored in the r17:r16 registers.
8393C-MCU Wireless-09/14
403