User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 610
UG585 (v1.11) September 27, 2016
Chapter 20: I2C Controller
The frequency of the clock_enable signal is defined by the frequency of the CPU_1x clock and the
values of divisor_a and divisor_b using Equation 20-1
Equation 20-1
Note: As seen from the above calculation, the SCL clock frequency range is limited by the cpu_1x
clock. This means that for some cpu_1x clock rates there will be some SCL frequencies that are not
possible.
See I2C register map in Appendix B, Register Details for details of register fields.
Table 20-1 lists the calculated values for standard and high speed SCL clock values. A programming
example is provided in Section 20.3.2.
I2C SCL Clock = CPU_1X_Clock / (22 * (divisor_a + 1) * (divisor_b + 1))
20.2.6 Multi-Master Operation
In I2C multi master mode, the bus is shared with other masters. In this mode, the I2C clock
(I2C_SCL)is driven by the device that acts as the master.
X-Ref Target - Figure 20-3
Figure 20-3: I2C Clock Generator
Table 20-1: Calculated Values for Standard and High Speed SCL Clock Values
I2C SCL Clock CPU_1X_Clock divisor_a divisor_b
100 KHz 111 MHz 2 16
400 KHz 111 MHz 0 12
100 KHz 133 MHz 0 60
400 KHz 133 MHz 2 4
100 KHz 166 MHz 3 16
1 to 4
divider
divisor_a
CPU_1x Clock
Clock_Enable
1 to 64
divider
divisor_b
UG585_c20_03_022912
FreqClock_Enable
FreqCPU_1x
divisor_a 1+()divisor_b 1+()×
-----------------------------------------------------------------------
=