7. I
2
C Interface > Bus Timing
186
Tsi578 User Manual
June 6, 2016
Integrated Device Technology
www.idt.com
7.13.4
I2C_SCLK Nominal and Minimum Periods
These parameters are used by the Tsi578 as a master to generate the I2C_SCLK clock. The master must
obey the minimum times to conform to the
I
2
C Specification
, and must also attempt to regulate the
overall I2C_SCLK frequency to a defined period. From
, it can be seen that the logic
measures the minimum periods high/low from the detected rising/falling edges of the I2C_SCLK
signal to the point where I2C_SCLK is driven low or released high to generate the opposing edge. In
conjunction, a separate nominal period timer measures from driven low to released high, and released
high to driven low. Both timers must expire if unaffected by external devices. If another device pulls
the I2C_SCLK signal low prematurely in the high period, the high period timers are expired and the
lower period timers restart for the low period, so the actual low period may be stretched by the nominal
timer. If another device holds the I2C_SCLK signal low longer in the low period than the nominal low
period, the high period nominal timer will likely expire early and the minimum high period timer will
control the high period when the clock is finally released.
7.13.5
Idle Detect Period
This is a master-only parameter that is used in two cases. First, upon exit from reset it is unknown if
another master is active. The Idle Detect timeout determines if the I2C_SCLK signal remains high long
enough (roughly 50 microseconds) that it is unlikely another master is active. If I2C_SCLK is seen low
during this period, it is assumed another master is active, and the master enters the Wait for Bus Idle
phase. If the idle detect period expires without I2C_SCLK seen low, then it is assumed the bus is idle
and the master is free to generate a Start Condition if needed.
Second, during the Wait for Bus Idle phase, it is possible that an external master that has claimed the
bus ceases activity without issuing a STOP condition. When a master operation is started but the bus is
currently seen busy, the idle detect timer monitors the I2C_SCLK and I2C_SD signals. If the
I2C_SCLK and I2C_SD signals both remain high longer than the idle detect period, the bus is then
assumed idle even though a STOP had not been seen, and the master logic will attempt the requested
transaction.