English
Language : 

AT89C51ED2-SMRUM Datasheet, PDF (66/137 Pages) ATMEL Corporation – 8-bit Flash Microcontroller
Figure 16-3. Full-Duplex Master-Slave Interconnection
8-bit Shift register
SPI
Clock Generator
Master MCU
MISO
MOSI
SCK
SS VDD
MISO
MOSI
SCK
SS
VSS
8-bit Shift register
Slave MCU
16.3.1.1
Master Mode
The SPI operates in Master mode when the Master bit, MSTR (1), in the SPCON register is set.
Only one Master SPI device can initiate transmissions. Software begins the transmission from a
Master SPI Module by writing to the Serial Peripheral Data Register (SPDAT). If the shift register
is empty, the Byte is immediately transferred to the shift register. The Byte begins shifting out on
MOSI pin under the control of the serial clock, SCK. Simultaneously, another Byte shifts in from
the Slave on the Master’s MISO pin. The transmission ends when the Serial Peripheral transfer
data flag, SPIF, in SPSTA becomes set. At the same time that SPIF becomes set, the received
Byte from the Slave is transferred to the receive data register in SPDAT. Software clears SPIF
by reading the Serial Peripheral Status register (SPSTA) with the SPIF bit set, and then reading
the SPDAT.
16.3.1.2
Slave Mode
The SPI operates in Slave mode when the Master bit, MSTR (2), in the SPCON register is
cleared. Before a data transmission occurs, the Slave Select pin, SS, of the Slave device must
be set to ’0’. SS must remain low until the transmission is complete.
In a Slave SPI Module, data enters the shift register under the control of the SCK from the Mas-
ter SPI Module. After a Byte enters the shift register, it is immediately transferred to the receive
data register in SPDAT, and the SPIF bit is set. To prevent an overflow condition, Slave software
must then read the SPDAT before another Byte enters the shift register (3). A Slave SPI must
complete the write to the SPDAT (shift register) at least one bus cycle before the Master SPI
starts a transmission. If the write to the data register is late, the SPI transmits the data already in
the shift register from the previous transmission. The maximum SCK frequency allowed in slave
mode is FCLK PERIPH /4.
16.3.2
Transmission Formats
Software can select any of four combinations of serial clock (SCK) phase and polarity using two
bits in the SPCON: the Clock Polarity (CPOL (4)) and the Clock Phase (CPHA4). CPOL defines
the default SCK line level in idle state. It has no significant effect on the transmission format.
CPHA defines the edges on which the input data are sampled and the edges on which the out-
put data are shifted (Figure 16-4 and Figure 16-5). The clock phase and polarity should be
identical for the Master SPI device and the communicating Slave device.
1.
The SPI Module should be configured as a Master before it is enabled (SPEN set). Also, the Mas-
ter SPI should be configured before the Slave SPI.
2.
The SPI Module should be configured as a Slave before it is enabled (SPEN set).
3.
The maximum frequency of the SCK for an SPI configured as a Slave is the bus clock speed.
4.
Before writing to the CPOL and CPHA bits, the SPI should be disabled (SPEN = ’0’).
66 AT89C51RD2/ED2
4235K–8051–05/08