Datasheet

PIC16(L)F1824/1828
DS41419D-page 250 2010-2012 Microchip Technology Inc.
25.2.3 SPI MASTER MODE
The master can initiate the data transfer at any time
because it controls the SCK line. The master
determines when the slave (Processor 2, Figure 25-5)
is to broadcast data by the software protocol.
In Master mode, the data is transmitted/received as
soon as the SSP1BUF register is written to. If the SPI
is only going to receive, the SDO output could be
disabled (programmed as an input). The SSP1SR
register will continue to shift in the signal present on the
SDI pin at the programmed clock rate. As each byte is
received, it will be loaded into the SSP1BUF register as
if a normal received byte (interrupts and Status bits
appropriately set).
The clock polarity is selected by appropriately
programming the CKP bit of the SSP1CON1 register
and the CKE bit of the SSP1STAT register. This then,
would give waveforms for SPI communication as
shown in Figure 25-6, Figure 25-9 and Figure 25-10,
where the MSb is transmitted first. In Master mode, the
SPI clock rate (bit rate) is user programmable to be one
of the following:
•F
OSC/4 (or TCY)
•FOSC/16 (or 4 * TCY)
•FOSC/64 (or 16 * TCY)
Timer2 output/2
Fosc/(4 * (SSP1ADD + 1))
Figure 25-6 shows the waveforms for Master mode.
When the CKE bit is set, the SDO data is valid before
there is a clock edge on SCK. The change of the input
sample is shown based on the state of the SMP bit. The
time when the SSP1BUF is loaded with the received
data is shown.
FIGURE 25-6: SPI MODE WAVEFORM (MASTER MODE)
SCK
(CKP = 0
SCK
(CKP = 1
SCK
(CKP = 0
SCK
(CKP = 1
4 Clock
Modes
Input
Sample
Input
Sample
SDI
bit 7
bit 0
SDO bit 7
bit 6
bit 5 bit 4
bit 3
bit 2
bit 1 bit 0
bit 7
SDI
SSP1IF
(SMP = 1)
(SMP = 0)
(SMP = 1)
CKE = 1)
CKE = 0)
CKE = 1)
CKE = 0)
(SMP = 0)
Write to
SSP1BUF
SSP1SR to
SSP1BUF
SDO
bit 7
bit 6
bit 5 bit 4
bit 3
bit 2
bit 1 bit 0
(CKE = 0)
(CKE = 1)
bit 0