Datasheet
The receiver input is inverted by setting SCI_S2[RXINV]. The receiver is enabled by
setting the SCI_C2[RE] bit. Character frames consist of a start bit of logic 0, eight (or
nine) data bits (lsb first), and one (or two) stop bits of logic 1. For information about 9-bit
data mode, refer to 8- and 9-bit data modes. For the remainder of this discussion, assume
the SCI is configured for normal 8-bit data mode.
After receiving the stop bit into the receive shifter, and provided the receive data register
is not already full, the data character is transferred to the receive data register and the
receive data register full (SCI_S1[RDRF]) status flag is set. If SCI_S1[RDRF] was
already set indicating the receive data register (buffer) was already full, the overrun (OR)
status flag is set and the new data is lost. Because the SCI receiver is double-buffered, the
program has one full character time after SCI_S1[RDRF] is set before the data in the
receive data buffer must be read to avoid a receiver overrun.
When a program detects that the receive data register is full (SCI_S1[RDRF] = 1), it gets
the data from the receive data register by reading SCI_D. The SCI_S1[RDRF] flag is
cleared automatically by a two-step sequence normally satisfied in the course of the user's
program that manages receive data. Refer to Interrupts and status flags for more details
about flag clearing.
15.3.3.1 Data sampling technique
The SCI receiver uses a 16× baud rate clock for sampling. The receiver starts by taking
logic level samples at 16 times the baud rate to search for a falling edge on the RxD serial
data input pin. A falling edge is defined as a logic 0 sample after three consecutive logic
1 samples. The 16× baud rate clock divides the bit time into 16 segments labeled
SCI_D[[RT1] through SCI_D[RT16]. When a falling edge is located, three more samples
are taken at SCI_D[RT3], SCI_D[RT5], and SCI_D[RT7] to make sure this was a real
start bit and not merely noise. If at least two of these three samples are 0, the receiver
assumes it is synchronized to a receive character.
The receiver then samples each bit time, including the start and stop bits, at SCI_D[RT8],
SCI_D[RT9], and SCI_D[RT10] to determine the logic level for that bit. The logic level
is interpreted to be that of the majority of the samples taken during the bit time. In the
case of the start bit, the bit is assumed to be 0 if at least two of the samples at
SCI_D[RT3], SCI_D[RT5], and SCI_D[RT7] are 0 even if one or all of the samples
taken at SCI_D[RT8], SCI_D[RT9], and SCI_D[RT10] are 1s. If any sample in any bit
time, including the start and stop bits, in a character frame fails to agree with the logic
level for that bit, the noise flag (SCI_S1[NF]) is set when the received character is
transferred to the receive data buffer.
Chapter 15 Serial communications interface (SCI)
MC9S08PA60 Reference Manual, Rev. 1, 9/2012
Freescale Semiconductor, Inc. 419
