...the world's most energy friendly microcontrollers
2016-04-28 - Giant Gecko Family - d0053_Rev1.20
463
www.silabs.com
Figure 17.11. USART Reception of Large Frames
St at us
RX buffer elem ent 0
RX buffer elem ent 1
Shift regist er
Peripheral Bus
St at us
St at us
0
1
2
3
4
5
6
7
0
1
2
0
1
2
0
1
2
3
4
5
6
7
The two buffer elements can be read at the same time using the USARTn_RXDOUBLE or
USARTn_RXDOUBLEX register. RXDATA0 then refers to buffer element 0 and RXDATA1 refers to
buffer element 1.
Large frames can be used in both asynchronous and synchronous modes.
17.3.2.8 Multi-Processor Mode
To simplify communication between multiple processors, the USART supports a special multi-processor
mode. In this mode the 9th data bit in each frame is used to indicate whether the content of the remaining
8 bits is data or an address.
When multi-processor mode is enabled, an incoming 9-bit frame with the 9th bit equal to the value of
MPAB in USARTn_CTRL is identified as an address frame. When an address frame is detected, the
MPAF interrupt flag in USARTn_IF is set, and the address frame is loaded into the receive register. This
happens regardless of the value of RXBLOCK in USARTn_STATUS.
Multi-processor mode is enabled by setting MPM in USARTn_CTRL, and the value of the 9th bit in
address frames can be set in MPAB. Note that the receiver must be enabled for address frames to be
detected. The receiver can be blocked however, preventing data from being loaded into the receive
buffer while looking for address frames.
Example 17.1 (p. 463) explains basic usage of the multi-processor mode:
Example 17.1. USART Multi-processor Mode Example
1. All slaves enable multi-processor mode and, enable and block the receiver. They will now not receive
data unless it is an address frame. MPAB in USARTn_CTRL is set to identify frames with the 9th bit
high as address frames.
2. The master sends a frame containing the address of a slave and with the 9th bit set.
3. All slaves receive the address frame and get an interrupt. They can read the address from the receive
buffer. The selected slave unblocks the receiver to start receiving data from the master.
4. The master sends data with the 9th bit cleared.
5. Only the slave with RX enabled receives the data. When transmission is complete, the slave blocks
the receiver and waits for a new address frame.
When a slave has received an address frame and wants to receive the following data, it must make
sure the receiver is unblocked before the next frame has been completely received in order to prevent
data loss.
Summary of Contents for Giant Gecko EFM32GG
Page 842: ......