Bus line
SCL from
SCL from
SCL
device #2
device #1
Wait
State
Start HIGH
period
Bus line
I2C Module Integrity
1777
SPNU563A – March 2018
Copyright © 2018, Texas Instruments Incorporated
Inter-Integrated Circuit (I2C) Module
31.4.2 I2C Clock Generation and Synchronization
Under normal conditions only one master device generates the clock signal; the SCL. During the
arbitration procedure, however, there are two or more master devices and the clock must be synchronized
so that the data output can be compared.
illustrates clock synchronization. The wired-AND
property of the SCL line means that a device that first generates a low period on the SCL overrules the
other devices. At this high-to-low transition, the clock generators of the other devices are forced to start
their own low period. The SCL line is held low by the device with the longest low period. The other devices
that finish their low periods must wait for the SCL line to be released before starting their high periods. A
synchronized signal on the SCL is obtained where the slowest device determines the length of the low
period and the fastest device determines the length of the high period.
If a device pulls down the clock line for a longer time, the result is that all clock generators must enter the
wait state. In this way, a slave slows down a fast master and the slow device creates enough time to store
a received byte or to prepare a byte to be transmitted.
NOTE:
I2C Protocol Fault
The following conditions violate the clock spec as defined in the Philips I
2
C bus specification,
v2.1 (
The I2C Specification,
Philips document number 9398 393 40011), and will result in an
I2C protocol fault: I2CCLKH = 2 I2CCLKL = 2I2CPSC = 2. This will cause the SDA data
transition to occur while the SCL is high.
Figure 31-12. Synchronization of Two I2C Clock Generators During Arbitration
31.4.3 Prescaler
The I2C module is operated by the module clock. This clock is generated by way of the I2C prescaler
block. The prescaler block consists of a 8-bit register, I2CPSC, used for dividing down the device
peripheral clock (VBUS_CLK) to obtain a module clock between 6.7 MHz and 13.3 MHz.
31.4.4 Noise Filter
The noise filter is used to suppress any noises that are 50ns or less. It is designed to suppress noise with
one module clock, assuming the lower and upper limits of the module clock are 6.7MHz and 13.3MHz,
respectively.