278
Transmitting and Receiving Serial Data Simultaneously:
Follow the procedure in figure 12.17
for transmitting and receiving serial data simultaneously. If clock output mode is selected, output
of the serial clock begins simultaneously with serial transmission.
Start
Read TDRE bit in SSR
TDRE = 1
Write transmit data
in TDR and clear TDRE
bit to 0 in SSR
RDRF = 1
Read ORER bit in SSR
End of
transmitting and
receiving
Clear TE and RE bits
to 0 in SCR
End
Error h
5.
1
2
3
No
Yes
Yes
Yes
No
Yes
4
1.
2.
3.
4.
SCI initialization: the transmit data output function of
the TxD pin and receive data input function of the
RxD pin are selected, enabling simultaneous
transmitting and receiving.
SCI status check and transmit data write: read the
serial status register (SSR), check that the TDRE bit
is 1, then write transmit data in the transmit data
register (TDR) and clear TDRE to 0. Transition of the
TDRE bit from 0 to 1 can be reported by a TXI interrupt.
SCI status check and receive data read: read the
serial status register (SSR), check that the RDRF
bit is 1, then read receive data from the receive data
register (RDR) and clear RDRF to 0. Transition of
the RDRF bit from 0 to 1 can be reported by an RXI
interrupt.
Receive error handling: if a receive error occurs, read
the ORER bit in SSR then, after executing the
necessary error handling, clear ORER to 0. Neither
transmitting nor receiving can resume while ORER
remains set to 1.
To continue transmitting and receiving serial data:
read RDR and clear RDRF to 0 before the MSB
(bit 7) of the current frame is received. Also read the
TDRE bit and check that it is set to 1, indicating that
it is safe to write; then write data in TDR and clear
TDRE to 0 before the MSB (bit 7) of the current frame
is transmitted.
ORER = 1
Read RDRF bit in SSR
5
No
No
Initialize
Read receive data
from RDR and clear
RDRF bit to 0 in SSR
Note:
In switching from transmitting or receiving to simultaneous transmitting and receiving, clear both
TE and RE to 0, then set TE and RE to 1 simultaneously using an MOV instruction. Do not use a
BEST instruction for this purpose.
Figure 12.17 Sample Flowchart for Serial Transmitting and Receiving