Microchip Technology IC MCU OTP 4K PIC16C74B-20/L PLCC-44 MCP PIC16C74B-20/L Data Sheet

Product codes
PIC16C74B-20/L
Page of 186
PIC16C63A/65B/73B/74B
DS30605D-page 70
 1998-2013 Microchip Technology Inc.
11.2.2
USART ASYNCHRONOUS 
RECEIVER
The receiver block diagram is shown in Figure 11-4.
The data is received on the RC7/RX/DT pin and drives
the data recovery block. The data recovery block is
actually a high speed shifter operating at x16 times the
baud rate, whereas the main receive serial shifter oper-
ates at the bit rate or at F
OSC
Once Asynchronous mode is selected, reception is
enabled by setting bit CREN (RCSTA<4>).
The heart of the receiver is the receive (serial) shift reg-
ister (RSR). After sampling the STOP bit, the received
data in the RSR is transferred to the RCREG register (if
it is empty). If the transfer is complete, USART Receive
Flag bit RCIF (PIR1<5>) is set. This interrupt can be
enabled/disabled by setting/clearing the USART
Receive Enable bit RCIE (PIE1<5>).
Flag bit RCIF is a read only bit, which is cleared by the
hardware. It is cleared when the RCREG register has
been read and is empty. The RCREG is a double buff-
ered register, i.e., it is a two-deep FIFO. It is possible
for two bytes of data to be received and transferred to
the RCREG FIFO and a third byte to begin shifting to
the RSR register. On the detection of the STOP bit of
the third byte, if the RCREG register is still full, then
overrun error bit OERR (RCSTA<1>) will be set. The
word in the RSR will be lost. The RCREG register can
be read twice to retrieve the two bytes in the FIFO.
Overrun bit OERR has to be cleared in software. This
is done by resetting the receive logic (CREN is cleared
and then set). If bit OERR is set, transfers from the
RSR register to the RCREG register are inhibited,  and
no further data will be received; therefore, it is essential
to clear error bit OERR if it is set. Framing error bit
FERR (RCSTA<2>) is set if a STOP bit is detected as
clear. Bit FERR and the 9th receive bit are buffered the
same way as the receive data. Reading the RCREG
will load bits RX9D and FERR with new values, there-
fore, it is essential for the user to read the RCSTA reg-
ister before reading the RCREG register, in order not to
lose the old FERR and RX9D information. 
FIGURE 11-4:
USART RECEIVE BLOCK DIAGRAM
x64 Baud Rate CLK
SPBRG
Baud Rate Generator
RC7/RX/DT
Pin Buffer
and Control
SPEN
Data
Recovery
CREN
OERR
FERR
RSR Register
MSb
LSb
RX9D
RCREG Register
FIFO
Interrupt
RCIF
RCIE
Data Bus
8
 64
 16
or
STOP
START
(8)
7
1
0
RX9

F
OSC