
XC886/888CLM
Serial Interfaces
User’s Manual
12-35
V1.3, 2010-02
Serial Interfaces, V 1.0
The slaves use open drain output on MRST. This forms a wired-AND connection. The
receive line needs an external pull-up in this case. Corruption of the data on the
receive line sent by the selected slave is avoided when all slaves not selected for
transmission to the master send ones only. Because this high level is not actively
driven onto the line, but only held through the pull-up device, the selected slave can
pull this line actively to a low-level when transmitting a zero bit. The master selects
the slave device from which it expects data either by separate select lines or by
sending a special command to this slave.
After performing the necessary initialization of the SSC, the serial interfaces can be
enabled. For a master device, the clock line will now go to its programmed polarity. The
data line will go to either 0 or 1 until the first transfer starts. After a transfer, the data line
will always remain at the logic level of the last transmitted data bit.
When the serial interfaces are enabled, the master device can initiate the first data
transfer by writing the transmit data into register TB. This value is copied into the shift
register (assumed to be empty at this time), and the selected first bit of the transmit data
will be placed onto the TXD line on the next clock from the baud-rate generator
(transmission starts only if CON.EN = 1). Depending on the selected clock phase, a
clock pulse will also be generated on the MS_CLK line. At the same time, with the
opposite clock edge, the master latches and shifts in the data detected at its input line
RXD. This “exchanges” the transmit data with the receive data. Because the clock line
is connected to all slaves, their shift registers will be shifted synchronously with the
master’s shift register—shifting out the data contained in the registers, and shifting in the
data detected at the input line.
With the start of the transfer, the busy flag CON.BSY is set and the TIR will be activated
to indicate that register TB may be reloaded again. After the preprogrammed number of
clock pulses (via the data width selection), the data transmitted by the master is
contained in all the slaves’ shift registers, while the master’s shift register holds the data
of the selected slave. In the master and all slaves, the contents of the shift register are
copied into the receive buffer RB and the RIR is activated. If no further transfer is to take
place (TB is empty), CON.BSY will be cleared at the same time. Software should not
modify CON.BSY, as this flag is hardware controlled.
When configured as a slave device, the SSC will immediately output the selected first bit
(MSB or LSB of the transfer data) at the output pin once the contents of the transmit
buffer are copied into the slave's shift register. Bit CON.BSY is not set until the first clock
edge at SS_CLK appears.
Note: On the SSC, a transmission and a reception take place at the same time,
regardless of whether valid data has been transmitted or received.
Note: The initialization of the CLK pin on the master requires some attention in order to
avoid undesired clock transitions, which may disturb the other devices. Before the
clock pin is switched to output via the related direction control register, the clock
output level will be selected in the control register CON and the alternate output