English
Language : 

PIC18F47J53 Datasheet, PDF (333/586 Pages) Microchip Technology – 28/44-Pin, High-Performance USB Microcontrollers with nanoWatt XLP Technology
PIC18F47J53 FAMILY
20.5.7.2 Clock Arbitration
Clock arbitration occurs when the master, during any
receive, transmit or Repeated Start/Stop condition,
deasserts the SCLx pin (SCLx allowed to float high).
When the SCLx pin is allowed to float high, the BRG is
suspended from counting until the SCLx pin is actually
sampled high. When the SCLx pin is sampled high, the
BRG is reloaded with the contents of SSPxADD<6:0>
and begins counting. This ensures that the SCLx 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 20-20).
FIGURE 20-20: BAUD RATE GENERATOR TIMING WITH CLOCK ARBITRATION
SDAx
SCLx
BRG
Value
BRG
Reload
DX
DX – 1
SCLx deasserted but slave holds
SCLx low (clock arbitration)
SCLx allowed to transition high
BRG decrements on
Q2 and Q4 cycles
03h
02h
01h
00h (hold off)
03h
02h
SCLx is sampled high, reload takes
place and BRG starts its count
20.5.8
I2C MASTER MODE START
CONDITION TIMING
To initiate a Start condition, the user sets the Start
Enable bit, SEN (SSPxCON2<0>). If the SDAx and
SCLx pins are sampled high, the BRG is reloaded with
the contents of SSPxADD<6:0> and starts its count. If
SCLx and SDAx are both sampled high when the Baud
Rate Generator times out (TBRG), the SDAx pin is
driven low. The action of the SDAx being driven low
while SCLx is high is the Start condition and causes the
Start bit (SSPxSTAT<3>) to be set. Following this, the
BRG is reloaded with the contents of SSPxADD<6:0>
and resumes its count. When the BRG times out
(TBRG), the SEN bit (SSPxCON2<0>) will be
automatically cleared by hardware. The BRG is
suspended, leaving the SDAx line held low and the Start
condition is complete.
Note:
If, at the beginning of the Start condition, the
SDAx and SCLx pins are already sampled
low, or if during the Start condition, the
SCLx line is sampled low before the SDAx
line is driven low, a bus collision occurs.
The Bus Collision Interrupt Flag, BCLxIF, is
set, the Start condition is aborted and the
I2C module is reset into its Idle state.
20.5.8.1 WCOL Status Flag
If the user writes the SSPxBUF when a Start sequence
is in progress, the WCOL bit is set and the contents of
the buffer are unchanged (the write does not occur).
Note:
Because queueing of events is not
allowed, writing to the lower five bits of
SSPxCON2 is disabled until the Start
condition is complete.
FIGURE 20-21: FIRST START BIT TIMING
Write to SEN bit occurs here
SDAx = 1,
SCLx = 1
Set S bit (SSPxSTAT<3>)
At completion of Start bit,
hardware clears SEN bit
and sets SSPxIF bit
TBRG
TBRG
Write to SSPxBUF occurs here
SDAx
1st bit
TBRG
2nd bit
SCLx
TBRG
S
 2010 Microchip Technology Inc.
Preliminary
DS39964B-page 333