2009 Microchip Technology Inc.
DS39636D-page 153
PIC18F2X1X/4X1X
16.0 MASTER SYNCHRONOUS
SERIAL PORT (MSSP)
MODULE
16.1
MSSP Module Overview
The Master Synchronous Serial Port (MSSP) module is
a serial interface, useful for communicating with other
peripheral or microcontroller devices. These peripheral
devices may be serial EEPROMs, shift registers,
display drivers, A/D converters, etc. The MSSP module
can operate in one of two modes:
Serial Peripheral Interface (SPI)
Inter-Integrated Circuit (I2C)
- Full Master mode
- Slave mode (with general address call)
The I2C interface supports the following modes in
hardware:
Master mode
Multi-Master mode
Slave mode
16.2
Control Registers
The MSSP module has three associated registers.
These include a status register (SSPSTAT) and two
control registers (SSPCON1 and SSPCON2). The use
of these registers and their individual Configuration bits
differ significantly depending on whether the MSSP
module is operated in SPI or I2C mode.
Additional details are provided under the individual
sections.
16.3
SPI Mode
The SPI mode allows 8 bits of data to be synchronously
transmitted and received simultaneously. All four SPI
modes are supported. To accomplish communication,
typically three pins are used:
Serial Data Out (SDO) – RC5/SDO
Serial Data In (SDI) – RC4/SDI/SDA
Serial Clock (SCK) – RC3/SCK/SCL
Additionally, a fourth pin may be used when in a Slave
mode of operation:
Slave Select (SS) – RA5/SS
module when operating in SPI mode.
FIGURE 16-1:
MSSP BLOCK DIAGRAM
(SPI MODE)
(
)
Read
Write
Internal
Data Bus
SSPSR reg
SSPM3:SSPM0
bit 0
Shift
Clock
SS Control
Enable
Edge
Select
Clock Select
TMR2 Output
TOSC
Prescaler
4, 16, 64
2
Edge
Select
2
4
Data to TX/RX in SSPSR
TRIS bit
2
SMP:CKE
RC5/SDO
SSPBUF reg
RC4/SDI/SDA
RA5/AN4/SS/
RC3/SCK/
SCL
HLVDIN/C2OUT