66
ATmega161(L)
1228B–09/01
SPI Control Register – SPCR
• Bit 7
–
SPIE: SPI Interrupt Enable
This bit causes the SPI interrupt to be executed if SPIF bit in the SPSR register is set
and if the global interrupt enable bit in SREG is set.
• Bit 6
–
SPE: SPI Enable
When the SPE bit is set (one), the SPI is enabled. This bit must be set to enable any SPI
operations.
• Bit 5
–
DORD: Data Order
When the DORD bit is set (one), the LSB of the data word is transmitted first.
When the DORD bit is cleared (zero), the MSB of the data word is transmitted first.
• Bit 4
–
MSTR: Master/Slave Select
This bit selects Master SPI mode when set (one), and Slave SPI mode when cleared
(zero). If SS is configured as an input and is driven low while MSTR is set, MSTR will be
cleared and SPIF in SPSR will become set. The user will then have to set MSTR to re-
enable SPI master mode.
• Bit 3
–
CPOL: Clock Polarity
When this bit is set (one), SCK is high when idle. When CPOL is cleared (zero), SCK is
low when idle. Refer to Figure 43 and Figure 44 for additional information.
• Bit 2
–
CPHA: Clock Phase
Refer to Figure 43 or Figure 44 for the functionality of this bit.
• Bits 1, 0
–
SPR1, SPR0: SPI Clock Rate Select 1 and 0
These two bits control the SCK rate of the device configured as a master. SPR1 and
SPR0 have no effect on the slave. The relationship between SCK and the Oscillator
Clock frequency (f
cl
) is shown in Table 23:
Note:
1. When the SPI is configured as slave, the SPI is only guaranteed to work at
f
cl
/4.
Bit
7
6
5
4
3
2
1
0
$0D ($2D)
SPIE
SPE
DORD
MSTR
CPOL
CPHA
SPR1
SPR0
SPCR
Read/Write
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Initial Value
0
0
0
0
0
0
0
0
Table 23.
Relationship between SCK and the Oscillator Frequency
SPI2X
SPR1
SPR0
SCK Frequency
0
0
0
f
cl
/4
0
0
1
f
cl
/16
0
1
0
f
cl
/64
0
1
1
f
cl
/128
1
0
0
f
cl
/2
1
0
1
f
cl
/8
1
1
0
f
cl
/32
1
1
1
f
cl
/64