...the world's most energy friendly microcontrollers
2014-07-02 - Gecko Family - d0001_Rev1.30
259
www.silabs.com
byte transfers and 9 bit data + control/status bits transfers both to and from the LEUART. The DMA will
start up the HFRCO and run from this when it is waken by the LEUART in EM2. The HFRCO is disabled
once the transaction is done.
A request for the DMA controller to read from the receive buffer can come from one of the following
sources:
• Receive buffer full
A write request can come from one of the following sources:
• Transmit buffer and shift register empty. No data to send.
• Transmit buffer empty
In some cases, it may be sensible to temporarily stop DMA access to the LEUART when a parity or
framing error has occurred. This is enabled by setting ERRSDMA in LEUARTn_CTRL. When this bit is
set, the DMA controller will not get requests from the receive buffer if a framing error or parity error is
detected in the received byte. The ERRSDMA bit applies only to the RX DMA.
When operating in EM2, the DMA controller must be powered up in order to perform the transfer. This
is automatically performed for read operations if RXDMAWU in LEUARTn_CTRL is set and for write
operations if TXDMAWU in LEUARTn_CTRL is set. To make sure the DMA controller still transfers bits
to and from the LEUART in low energy modes, these bits must thus be configured accordingly.
Note
When RXDMAWU or TXDMAWU is set, the system will not be able to go to EM2/EM3
before all related LEUART DMA requests have been processed. This means that if
RXDMAWU is set and the LEUART receives a frame, the system will not be able to go to
EM2/EM3 before the frame has been read from the LEUART. In order for the system to go
to EM2 during the last byte transmission, LEUART_CTRL_TXDMAWU must be cleared in
the DMA interrupt service routine. This is because TXBL will be high during that last byte
transfer.
18.3.10 Pulse Generator/ Pulse Extender
The LEUART has an optional pulse generator for the transmitter output, and a pulse extender on the
receiver input. These are enabled by setting PULSEEN in LEUARTn_PULSECTRL, and with INV in
LEUARTn_CTRL set, they will change the output/input format of the LEUART from NRZ to RZI as shown
in Figure 18.7 (p. 259) .
Figure 18.7. LEUART - NRZ vs. RZI
S
0
1
2
3
4
5
6
7
P
St op
Idle
Idle
NRZ
RZI
If PULSEEN in LEUARTn_PULSECTRL is set while INV in LEUARTn_CTRL is cleared, the output
waveform will like RZI shown in Figure 18.7 (p. 259) , only inverted.
The width of the pulses from the pulse generator can be configured using PULSEW in
LEUARTn_PULSECTRL. The generated pulse width is 1 cycles of the 32.768 kHz clock,
which makes pulse width from 31.25µs to 500µs possible.
Summary of Contents for EFM32G
Page 505: ......