![](http://datasheet.mmic.net.cn/260000/PIC16C63_datasheet_15942805/PIC16C63_118.png)
PIC16C6X
DS30234D-page 118
1997 Microchip Technology Inc.
12.3.2
USART SYNCHRONOUS MASTER
RECEPTION
Once Synchronous Mode is selected, reception is
enabled
by
setting
either
(RCSTA<5>) bit or enable bit CREN (RCSTA<4>).
Data is sampled on the DT pin on the falling edge of the
clock. If enable bit SREN is set, then only a single word
is received. If enable bit CREN is set, the reception is
continuous until bit CREN is cleared. If both the bits are
set then bit CREN takes precedence. After clocking the
last bit, the received data in the Receive Shift Register
(RSR) is transferred to the RCREG register (if it is
empty). When the transfer is complete, interrupt bit
RCIF (PIR1<5>) is set. The actual interrupt can be
enabled/disabled by setting/clearing enable bit RCIE
(PIE1<5>). Flag bit RCIF is a read only bit which is
reset by the hardware. In this case, it is reset when the
RCREG register has been read and is empty. The
RCREG is a double buffered 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 into the RSR register. On the
clocking of the last bit of the third byte, if the RCREG
register is still full, then overrun error bit, OERR
(RCSTA<1>) is set. The word in the RSR register will
be lost. The RCREG register can be read twice to
retrieve the two bytes in the FIFO. Overrun error bit
OERR has to be cleared in software (by clearing bit
CREN). If bit OERR is set, transfers from the RSR to
the RCREG are inhibited, so it is essential to clear bit
OERR if it is set. The 9th receive bit is buffered the
same way as the receive data. Reading the RCREG
register will load bit RX9D with a new value. Therefore
it is essential for the user to read the RCSTA register
before reading the RCREG register in order not to lose
the old RX9D bit information.
enable
bit
SREN
Steps to follow when setting up Synchronous Master
Reception:
1.
Initialize the SPBRG register for the appropriate
baud rate (Section 12.1).
2.
Enable the synchronous master serial port by
setting bits SYNC, SPEN, and CSRC.
3.
Ensure bits CREN and SREN are clear.
4.
If interrupts are desired, then set enable bit
RCIE.
5.
If 9-bit reception is desired, then set bit RX9.
6.
If a single reception is required, set enable bit
SREN. For continuous reception set enable bit
CREN.
7.
Flag bit RCIF will be set when reception is com-
plete and an interrupt will be generated if enable
bit RCIE was set.
8.
Read the RCSTA register to get the ninth bit (if
enabled) and determine if any error occurred
during reception.
9.
Read the 8-bit received data by reading the
RCREG register.
10. If any error occurred, clear the error by clearing
enable bit CREN.
TABLE 12-9:
REGISTERS ASSOCIATED WITH SYNCHRONOUS MASTER RECEPTION
Address
Name
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Value on
POR,
BOR
Value on
all other
Resets
0Ch
PIR1
PSPIF
(1)
(2)
RCIF
TXIF
SSPIF
CCP1IF
TMR2IF
TMR1IF
0000 0000
0000 0000
18h
RCSTA
SPEN
RX9
SREN
CREN
—
FERR
OERR
RX9D
0000 -00x
0000 -00x
1Ah
RCREG
USART Receive Register
PSPIE
(1)
0000 0000
0000 0000
8Ch
PIE1
(2)
RCIE
TXIE
SSPIE
CCP1IE
TMR2IE
TMR1IE
0000 0000
0000 0000
98h
TXSTA
CSRC
TX9
TXEN
SYNC
—
BRGH
TRMT
TX9D
0000 -010
0000 -010
99h
Legend:
x
= unknown,
-
= unimplemented locations read as '0'. Shaded cells are not used for Synchronous Master Reception.
Note 1:
PSPIF and PSPIE are reserved on the PIC16C63/R63/66, always maintain these bits clear.
2:
PIR1<6> and PIE1<6> are reserved, always maintain these bits clear.
SPBRG
Baud Rate Generator Register
0000 0000
0000 0000