English
Language : 

PIC16F882 Datasheet, PDF (200/288 Pages) Microchip Technology – 28/40/44-Pin, Enhanced Flash-Based 8-Bit CMOS Microcontrollers with nanoWatt Technology
PIC16F882/883/884/886/887
FIGURE 13-18: STOP CONDITION RECEIVE OR TRANSMIT MODE
Write to SSPCON2
Set PEN
SCL = 1 for TBRG, followed by SDA = 1 for TBRG
after SDA sampled high, P bit (SSPSTAT) is set
Falling edge of
9th clock
SCL
TBRG
PEN bit (SSPCON2) is cleared by
hardware and the SSPIF bit is set
SDA
ACK
TBRG
TBRG
P
TBRG
SCL brought high after TBRG
SDA asserted low before rising edge of clock
to set up Stop condition
Note: TBRG = one Baud Rate Generator period.
13.4.12 CLOCK ARBITRATION
Clock arbitration occurs when the master, during any
receive, transmit or Repeated Start/Stop condition,
de-asserts the SCL pin (SCL allowed to float high).
When the SCL pin is allowed to float high, the Baud
Rate Generator (BRG) is suspended from counting
until the SCL pin is actually sampled high. When the
SCL pin is sampled high, the Baud Rate Generator is
reloaded with the contents of SSPADD<6:0> and
begins counting. This ensures that the SCL high time
will always be at least one BRG rollover count, in the
event that the clock is held low by an external device
(Figure 13-19).
13.4.13 SLEEP OPERATION
While in Sleep mode, the I2C module can receive
addresses or data, and when an address match or
complete byte transfer occurs, wake the processor
from Sleep (if the MSSP interrupt is enabled).
13.4.14 EFFECT OF A RESET
A Reset disables the MSSP module and terminates the
current transfer.
FIGURE 13-19: CLOCK ARBITRATION TIMING IN MASTER TRANSMIT MODE
BRG overflow,
Release SCL,
If SCL = 1, load BRG with
SSPADD<6:0>, and start count
to measure high time interval
BRG overflow occurs,
Release SCL, Slave device holds SCL low
SCL = 1, BRG starts counting
clock high interval
SCL
SCL line sampled once every machine cycle (TOSC*4),
Hold off BRG until SCL is sampled high
SDA
TBRG
TBRG
TBRG
DS41291D-page 198
Preliminary
© 2007 Microchip Technology Inc.