...the world's most energy friendly microcontrollers
2016-04-28 - Giant Gecko Family - d0053_Rev1.20
503
www.silabs.com
Figure 19.4. LEUART Receiver Overview
LEUn_RX
Receive shift regist er
RXENS
!RXBLOCK
d0- d8
st at us
d0
d2
d4
d6
d8
d7
d5
d3
d1
st at us
RXDATA
RXDATAX
(RXDATAXP)
Receive buffer
19.3.5.2 Blocking Incoming Data
When using hardware frame recognition, as detailed in Section 19.3.5.6 (p. 504) , Section 19.3.5.7 (p.
505) , and Section 19.3.5.8 (p. 505) , it is necessary to be able to let the receiver sample
incoming frames without passing the frames to software by loading them into the receive buffer. This is
accomplished by blocking incoming data.
Incoming data is blocked as long as RXBLOCK in LEUARTn_STATUS is set. When blocked, frames
received by the receiver will not be loaded into the receive buffer, and software is not notified by the
RXDATAV bit in LEUARTn_STATUS or the RXDATAV interrupt flag in LEUARTn_IF at their arrival.
For data to be loaded into the receive buffer, RXBLOCK must be cleared in the instant a frame is fully
received by the receiver. RXBLOCK is set by setting RXBLOCKEN in LEUARTn_CMD and disabled
by setting RXBLOCKDIS also in LEUARTn_CMD. There are two exceptions where data is loaded into
the receive buffer even when RXBLOCK is set. The first is when an address frame is received when
in operating in multi-processor mode as shown in Section 19.3.5.8 (p. 505) . The other case is when
receiving a start-frame when SFUBRX in LEUARTn_CTRL is set; see Section 19.3.5.6 (p. 504)
Frames received containing framing or parity errors will not result in the FERR and PERR interrupt flags
in LEUARTn_IF being set while RXBLOCK is set. Hardware recognition is not applied to these erroneous
frames, and they are silently discarded.
Note
If a frame is received while RXBLOCK in LEUARTn_STATUS is cleared, but stays in the
receive shift register because the receive buffer is full, the received frame will be loaded into
the receive buffer when space becomes available even if RXBLOCK is set at that time.
The overflow interrupt flag RXOF in LEUARTn_IF will be set if a frame in the receive shift
register, waiting to be loaded into the receive buffer is overwritten by an incoming frame
even though RXBLOCK is set.
19.3.5.3 Data Sampling
The receiver samples each incoming baud as close as possible to the middle of the baud-period. Except
for the start-bit, only a single sample is taken of each of the incoming bauds.
The length of a baud-period is given by 1 + LEUARTn_CLKDIV/256, as a number of 32.768 kHz clock
periods. Let the clock cycle where a start-bit is first detected be given the index 0. The optimal sampling
point for each baud in the UART frame is then given by the following equation:
Summary of Contents for Giant Gecko EFM32GG
Page 842: ......