Datasheet

2009-2012 Microchip Technology Inc. DS70594D-page 197
dsPIC33FJXXXMCX06A/X08A/X10A
18.0 SERIAL PERIPHERAL
INTERFACE (SPI)
The Serial Peripheral Interface (SPI) module is a
synchronous serial interface useful for communicating
with other peripheral or microcontroller devices. These
peripheral devices may be serial EEPROMs, shift
registers, display drivers, ADC, etc. The SPI module is
compatible with SPI and SIOP from Motorola
®
.
Each SPI module consists of a 16-bit shift register,
SPIxSR (where x = 1 or 2), used for shifting data in and
out, and a buffer register, SPIxBUF. A control register,
SPIxCON, configures the module. Additionally, a status
register, SPIxSTAT, indicates various status conditions.
The serial interface consists of 4 pins: SDIx (Serial Data
Input), SDOx (Serial Data Output), SCKx (Shift Clock
Input or Output) and SSx
(Active-Low Slave Select).
In Master mode operation, SCK is a clock output, but in
Slave mode, it is a clock input.
FIGURE 18-1: SPI MODULE BLOCK DIAGRAM
Note 1: This data sheet summarizes the features
of the dsPIC33FJXXXMCX06A/X08A/
X10A family of devices. However, it is not
intended to be a comprehensive refer-
ence source. To complement the infor-
mation in this data sheet, refer to Section
18. “Serial Peripheral Interface (SPI)”
(DS70206) in the “dsPIC33F/PIC24H
Family Reference Manual”, which is
available from the Microchip web site
(www.microchip.com).
2: Some registers and associated bits
described in this section may not be
available on all devices. Refer to
Section 4.0 “Memory Organization” in
this data sheet for device-specific register
and bit information.
Note: In this section, the SPI modules are
referred to together as SPIx, or sepa-
rately as SPI1 and SPI2. Special Function
Registers will follow a similar notation.
For example, SPIxCON refers to the
control register for the SPI1 or SPI2
module.
Internal Data Bus
SDIx
SDOx
SSx
SCKx
SPIxSR
bit 0
Shift Control
Edge
Select
F
CY
Primary
1:1/4/16/64
Enable
Prescaler
Sync
SPIxBUF
Control
Transfer
Transfer
Write SPIxBUF
Read SPIxBUF
16
SPIxCON1<1:0>
SPIxCON1<4:2>
Master Clock
Clock
Control
Secondary
Prescaler
1:1 to 1:8
SPIxRXB SPIxTXB