Rev. 1.10
168
October 23, 2020
Rev. 1.10
169
October 23, 2020
BC66F5652
2.4GHz RF Transceiver A/D Flash MCU
BC66F5652
2.4GHz RF Transceiver A/D Flash MCU
The read-only TXIF flag is set by the UART hardware and if set indicates that the TXR_RXR
register is empty and that other data can now be written into the TXR_RXR register without
overwriting the previous data. If the TEIE bit is set then the TXIF flag will generate an interrupt.
During a data transmission, a write instruction to the TXR_RXR register will place the data into the
TXR_RXR register, which will be copied to the shift register at the end of the present transmission.
When there is no data transmission in progress, a write instruction to the TXR_RXR register will
place the data directly into the shift register, resulting in the commencement of data transmission,
and the TXIF bit being immediately set. When a frame transmission is complete, which happens
after stop bits are sent or after the break frame, the TIDLE bit will be set. To clear the TIDLE bit the
following software sequence is used:
1. A USR register access
2. A TXR_RXR register write execution
Note that both the TXIF and TIDLE bits are cleared by the same software sequence.
Transmiting Break
If the TXBRK bit is set high and the state keeps for a time greater than [(BRG+1)×t
H
] while
TIDLE=1, then break characters will be sent on the next transmission. Break character transmission
consists of a start bit, followed by 13×N ‘0’ bits and stop bits, where N=1, 2, etc. If a break
character is to be transmitted then the TXBRK bit must be first set by the application program, and
then cleared to generate the stop bits. Transmitting a break character will not generate a transmit
interrupt. Note that a break condition length is at least 13 bits long. If the TXBRK bit is continually
kept at a logic high level then the transmitter circuitry will transmit continuous break characters.
After the application program has cleared the TXBRK bit, the transmitter will finish transmitting the
last break character and subsequently send out one or two stop bits. The automatic logic highs at the
end of the last break character will ensure that the start bit of the next frame is recognized.
UART Receiver
The UART is capable of receiving word lengths of either 8 or 9 bits. If the BNO bit is set, the word
length will be set to 9 bits with the MSB being stored in the RX8 bit of the UCR1 register. At the
receiver core lies the Receive Serial Shift Register, commonly known as the RSR. The data which
is received on the RX external input pin is sent to the data recovery block. The data recovery block
operating speed is 16 times that of the baud rate, while the main receive serial shifter operates at the
baud rate. After the RX pin is sampled for the stop bit, the received data in RSR is transferred to the
receive data register, if the register is empty. The data which is received on the external RX input pin
is sampled three times by a majority detect circuit to determine the logic level that has been placed
onto the RX pin. It should be noted that the RSR register, unlike many other registers, is not directly
mapped into the Data Memory area and as such is not available to the application program for direct
read/write operations.
Receiving Data
When the UART receiver is receiving data, the data is serially shifted in on the external RX input
pin, LSB first. In the read mode, the TXR_RXR register forms a buffer between the internal bus
and the receiver shift register. The TXR_RXR register is a two byte deep FIFO data buffer, where
two bytes can be held in the FIFO while a third byte can continue to be received. Note that the
application program must ensure that the data is read from TXR_RXR before the third byte has been
completely shifted in, otherwise this third byte will be discarded and an overrun error OERR will be
subsequently indicated. The steps to initiate a data transfer can be summarized as follows:
•
Make the correct selection of BNO, PRT and PREN bits to define the word length, parity type.
• Setup the BRG register to select the desired baud rate.
• Set the RXEN bit to ensure that the RX pin is used as a UART receiver pin.