Microchip Technology AC244045 Ficha De Dados

Página de 448
PIC16(L)F1825/1829
DS41440C-page 254
 2010-2012 Microchip Technology Inc.
25.4
I
2
C
 MODE OPERATION
All MSSPx I
2
C communication is byte oriented and
shifted out MSb first. Six SFR registers and two
interrupt flags interface the module with the PIC
®
microcontroller and user software. Two pins, SDAx
and SCLx, are exercised by the module to
communicate with other external I
2
C devices.
25.4.1
BYTE FORMAT
All communication in I
2
C is done in 9-bit segments. A
byte is sent from a master to a slave or vice-versa,
followed by an Acknowledge bit sent back. After the
8th falling edge of the SCLx line, the device outputting
data on the SDAx changes that pin to an input and
reads in an acknowledge value on the next clock
pulse. 
The clock signal, SCLx, is provided by the master.
Data is valid to change while the SCLx signal is low,
and sampled on the rising edge of the clock. Changes
on the SDAx line while the SCLx line is high define
special conditions on the bus, explained below.
25.4.2
DEFINITION OF I
2
C TERMINOLOGY
There is language and terminology in the description
of I
2
C communication that have definitions specific to
I
2
C. That word usage is defined below and may be
used in the rest of this document without explanation.
This table was adapted from the Philips I
2
C
specification.
25.4.3
SDAx AND SCLx PINS
Selection of any I
2
C mode with the SSPEN bit set,
forces the SCLx and SDAx pins to be open-drain.
These pins should be set by the user to inputs by
setting the appropriate TRIS bits.
25.4.4
SDAx HOLD TIME
The hold time of the SDAx pin is selected by the
SDAHT bit of the SSPxCON3 register. Hold time is the
time SDAx is held valid after the falling edge of SCLx.
Setting the SDAHT bit selects a longer 300 ns
minimum hold time and may help on buses with large
capacitance.
TABLE 25-2:
I
2
C BUS TERMS
25.4.5
START CONDITION
The I
2
C specification defines a Start condition as a
transition of SDAx from a high to a low state while
SCLx line is high. A Start condition is always
generated by the master and signifies the transition of
the bus from an Idle to an Active state. 
shows waveforms for Start and Stop conditions.
Note:
Data is tied to output zero when an I
2
C
mode is enabled.
TERM
Description
Transmitter
The device which shifts data out 
onto the bus.
Receiver
The device which shifts data in 
from the bus.
Master
The device that initiates a transfer, 
generates clock signals and 
terminates a transfer.
Slave
The device addressed by the 
master.
Multi-master
A bus with more than one device 
that can initiate data transfers.
Arbitration
Procedure to ensure that only one 
master at a time controls the bus. 
Winning arbitration ensures that 
the message is not corrupted.
Synchronization Procedure to synchronize the 
clocks of two or more devices on 
the bus.
Idle
No master is controlling the bus, 
and both SDAx and SCLx lines are 
high.
Active
Any time one or more master 
devices are controlling the bus.
Addressed 
Slave
Slave device that has received a 
matching address and is actively 
being clocked by a master.
Matching 
Address
Address byte that is clocked into a 
slave that matches the value 
stored in SSPxADD.
Write Request
Slave receives a matching 
address with R/W bit clear, and is 
ready to clock in data.
Read Request
Master sends an address byte with 
the R/W bit set, indicating that it 
wishes to clock data out of the 
Slave. This data is the next and all 
following bytes until a Restart or 
Stop.
Clock Stretching When a device on the bus hold 
SCLx low to stall communication.
Bus Collision
Any time the SDAx line is sampled 
low by the module while it is 
outputting and expected high 
state.