12 UART (UART3)
12-6
Seiko Epson Corporation
S1C17M20/M21/M22/M23/M24/M25
TECHNICAL MANUAL (Rev. 1.0)
12.5.3 Data Reception
A data receiving procedure and the UART3 Ch.
n
operations are shown below. Figures 12.5.3.1 and 12.5.3.2 show a
timing chart and flowcharts, respectively.
Data receiving procedure (read by one byte)
1. Wait for a UART3 interrupt when using the interrupt.
2. Check to see if the UA
n
INTF.RB1FIF bit is set to 1 (receive buffer one byte full).
3. Read the received data from the UA
n
RXD register.
4. Repeat Steps 1 to 3 (or 2 and 3) until the end of data reception.
Data receiving procedure (read by two bytes)
1. Wait for a UART3 interrupt when using the interrupt.
2. Check to see if the UA
n
INTF.RB2FIF bit is set to 1 (receive buffer two bytes full).
3. Read the received data from the UA
n
RXD register twice.
4. Repeat Steps 1 to 3 (or 2 and 3) until the end of data reception.
UART3 data receiving operations
The UART3 Ch.
n
starts data receiving operations when a start bit is input to the USIN
n
pin.
After the receive circuit has detected a low level as a start bit, it starts sampling the following data bits and
loads the received data into the receive shift register. The UA
n
INTF.RBSY bit is set to 1 when the start bit is
detected.
The UA
n
INTF.RBSY bit is cleared to 0 and the receive shift register data is transferred to the receive data buf-
fer at the stop bit receive timing.
The receive data buffer consists of a 2-byte FIFO and receives data until it becomes full. When the receive data
buffer receives the first data, it sets the UA
n
INTF.RB1FIF bit to 1 (receive buffer one byte full). If the second
data is received without reading the first data, the UA
n
INTF.RB2FIF bit is set to 1 (receive buffer two bytes full).
USINn
UAnINTF.RB1FIF
UAnINTF.RB2FIF
UAnINTF.RBSY
Software operations
st D0
···
p sp st D0
···
p sp st D0
···
p sp st D0
···
p sp
(st: start bit, sp: stop bit, p: parity bit)
data 1
data 2
data 3
data 4
UAnRXD
→
data 1 (R)
UAnRXD
→
data 3 (R)
UAnRXD
→
data 2 (R)
Figure 12.5.3.1 Example of Data Receiving Operations
Data reception (1 byte read)
End
Wait for an interrupt request
(UAnINTF.RB1FIF = 1)
Read receive data (1 byte) from
the UAnRXD register
NO
YES
Receive data remained?
Data reception (2 bytes read)
End
Wait for an interrupt request
(UAnINTF.RB2FIF = 1)
Read receive data (1 byte) from
the UAnRXD register
Read receive data (1 byte) from
the UAnRXD register
NO
YES
Receive data remained?
Figure 12.5.3.2 Data Reception Flowcharts