Техническая Спецификация для Atmel ATmega328P Xplained Mini MEGA328P-XMINI MEGA328P-XMINI

Модели
MEGA328P-XMINI
Скачать
Страница из 657
199
ATmega48A/PA/88A/PA/168A/PA/328/P [DATASHEET]
Atmel-8271H-AVR- ATmega-Datasheet_08/2014
21.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_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.