Microchip Technology AC244045 Data Sheet

Page of 302
© 2009 Microchip Technology Inc.
DS41341E-page 177
PIC16F72X/PIC16LF72X
17.2
I
2
C Mode
The SSP module, in I
2
C mode, implements all slave
functions, except general call support. It provides
interrupts on Start and Stop bits in hardware to facilitate
firmware implementations of the master functions. The
SSP module implements the I
2
C Standard mode
specifications:
• I
2
C Slave mode (7-bit address)
• I
2
C Slave mode (10-bit address)
• Start and Stop bit interrupts enabled to support 
firmware Master mode
• Address  masking
Two pins are used for data transfer; the SCL pin (clock
line) and the SDA pin (data line). The user must
configure the two pin’s data direction bits as inputs in
the appropriate TRIS register. Upon enabling I
2
C
mode, the I
2
C slew rate limiters in the I/O pads are
controlled by the SMP bit of SSPSTAT register. The
SSP module functions are enabled by setting the
SSPEN bit of SSPCON register.
Data is sampled on the rising edge and shifted out on
the falling edge of the clock. This ensures that the SDA
signal is valid during the SCL high time. The SCL clock
input must have minimum high and low times for proper
operation. Refer to Section 23.0 “Electrical
Specifications”
.
FIGURE 17-7:
I
2
C™ MODE BLOCK 
DIAGRAM
FIGURE 17-8:
TYPICAL I
2
C™ 
CONNECTIONS
The SSP module has six registers for I
2
C operation.
They are:
• SSP Control (SSPCON) register
• SSP Status (SSPSTAT) register
• Serial Receive/Transmit Buffer (SSPBUF) register
• SSP Shift Register (SSPSR), not directly 
accessible
• SSP Address (SSPADD) register
• SSP Address Mask (SSPMSK) register
17.2.1
HARDWARE SETUP
Selection of I
2
C mode, with the SSPEN bit of the
SSPCON register set, forces the SCL and SDA pins to
be open drain, provided these pins are programmed as
inputs by setting the appropriate TRISC bits. The SSP
module will override the input state with the output
data, when required, such as for Acknowledge and
slave-transmitter sequences.
Read
Write
SSPSR Reg
Match Detect
SSPADD Reg
Start and
Stop bit Detect
SSPBUF Reg
Internal
Data Bus
Addr Match
SCL
SDA
Shift
Clock
MSb
LSb
SSPMSK Reg
Note:
Pull-up resistors must be provided
externally to the SCL and SDA pins for
proper operation of the I
2
C module.
Slave 1
Master
SDA
SCL
V
DD
V
DD
SDA
SCL
Slave 2
SDA
SCL
(optional)