64
ATmega161(L)
1228B–09/01
The interconnection between master and slave CPUs with SPI is shown in Figure 42.
The PB7(SCK) pin is the clock output in the master mode and is the clock input in the
slave mode. Writing to the SPI data register of the master CPU starts the SPI clock gen-
erator, and the data written shifts out of the PB5(MOSI) pin and into the PB5(MOSI) pin
of the slave CPU. After shifting one byte, the SPI clock generator stops, setting the end-
of-transmission flag (SPIF). If the SPI interrupt enable bit (SPIE) in the SPCR register is
set, an interrupt is requested. The Slave Select input, PB4(SS), is set low to select an
individual slave SPI device. The two shift registers in the master and the slave can be
considered as one distributed 16-bit circular shift register. This is shown in Figure 42.
When data is shifted from the master to the slave, data is also shifted in the opposite
direction, simultaneously. This means that during one shift cycle, data in the master and
the slave are interchanged.
Figure 42.
SPI Master-slave Interconnection
The system is single-buffered in the transmit direction and double-buffered in the
receive direction. This means that bytes to be transmitted cannot be written to the SPI
Data Register before the entire shift cycle is completed. When receiving data, however,
a received byte must be read from the SPI Data Register before the next byte has been
completely shifted in. Otherwise, the first byte is lost.
When the SPI is enabled, the data direction of the MOSI, MISO, SCK and SS pins is
overridden according to Table 22.
Note:
1. See “Alternate Functions of Port B” on page 90 for a detailed description of how to
define the direction of the user defined SPI pins.
SS Pin Functionality
When the SPI is configured as a master (MSTR in SPCR is set), the user can determine
the direction of the SS pin. If SS is configured as an output, the pin is a general output
pin, which does not affect the SPI system. If SS is configured as an input, it must be held
high to ensure Master SPI operation. If the SS pin is driven low by peripheral circuitry
when the SPI is configured as master with the SS pin defined as an input, the SPI sys-
Table 22.
SPI Pin Overrides
Pin
Direction, Master SPI
Direction, Slave SPI
MOSI
User Defined
Input
MISO
Input
User Defined
SCK
User Defined
Input
SS
User Defined
Input