7. I
2
C Interface > Boot Load Sequence
173
Tsi578 User Manual
June 6, 2016
Integrated Device Technology
www.idt.com
If there are no other devices contending for bus access, a 1-byte peripheral address is used, no boot
acceleration techniques are used, and no retries are necessary for device detect, then boot time can be
estimated as follows:
Boot_Time =
50
u
s idle detect time +
(9 * ClkPer) EEPROM reset time +
(102 * (Registe 1) * ClkPer) register load time +
(1 * ClkPer) STOP time
Where:
ClkPer = clock period (resets to 10
u
s for a 100 kHz clock)
RegisterCount is the sum of number of registers from the Register Count fields in the EEPROM
(only one count field unless chaining is involved).
If a 2-byte peripheral address is used, then the “102” constant increases to “111”. The 102 constant
comes from the sum of Start + (9-bit boot address) + (9-bit peripheral address) + R (9-bit boot
address) + (9-bit data byte * 8 bytes per register = 72 bits) = 101 clocks, but the Start and Restart take
an extra 1/2 clock each, so an extra clock cycle is consumed.
For example, if 255 registers are read the boot time is:
Boot_Time = 50
u
s + (90
u
s EEPROM reset) + (10
u
s * 102 * 256 register load) + 10
u
s Stop
Boot_Time = 261,270
u
s = slightly over 1/4 second
7.8.9
Accelerating Boot Load
If boot load time is a design concern, the following techniques may accelerate the boot load sequence:
1.
If the EEPROM supports reading of a large block of data sequentially, change PAGE_MODE in
as the first register load. Depending on the page size, this reduces the
number of times the boot load re-addresses the device and resets the peripheral address. At the
limit, if the “infinite” setting was chosen and the device did not wrap on any page boundaries, the
102 constant in the boot time formula in
would be reduced to 72 cycles per
register, with only one address phase initially or per chain operation.
2.
If the EEPROM supports reading at higher than 100-kHz clock speeds, the timing parameters can
be changed during boot load. The success of this depends on the bus properties because the Tsi578
does not contain the Schmitt Triggers or slope controlled outputs needed to guarantee conformance
to the 400-kHz high-speed mode. However, it is possible that many configurations will be
interoperable at higher speeds (for information on changing timing parameters, see
Timing parameters are reloaded upon a chain operation, so the technique is to program the timing
parameters for the higher speed, set up the digital filters if required, and then invoke a chain
operation using the same EEPROM but the next peripheral address. Everything from the chain
onwards will be mastered at the higher speed.