SNAS668E August 2015 – September 2024 LMK03328
PRODUCTION DATA
The I2C port on the LMK03328 works as a target device and supports both the 100-kHz standard mode and 400-kHz fast mode operations. Fast mode imposes a glitch tolerance requirement on the control signals. Therefore, the input receivers ignore pulses of less than 50-ns duration. The I2C timing is given in the I2C-Compatible Interface Characteristics (SDA, SCL) table. The timing diagram is given in Figure 8-31.
In an I2C bus system, the LMK03328 acts as a target device and is connected to the serial bus (data bus SDA and clock bus SCL). These are accessed through a 7-bit target address transmitted as part of an I2C packet. Only the device with a matching target address responds to subsequent I2C commands. In soft pin mode, the LMK03328 can support up to three different I2C addresses depending on the GPIO1 pins. The 7-bit I2C address is 11001xxb, where the two LSBs are determined by the GPIO1 input levels sampled at device POR and the five MSBs (11001b) are initialized from the EEPROM. The five MSBs (11001b) can be changed with new EEPROM programming to allow for more I2C address options.
The PDN pin of LMK03328 must be high before any I2C communication on the bus. The first I2C transaction after power cycling LMK03328 must be ignored.
During the data transfer through the I2C interface, one clock pulse is generated for each data bit transferred. The data on the SDA line must be stable during the high period of the clock. The high or low state of the data line can change only when the clock signal on the SCL line is low. The start data transfer condition is characterized by a high-to-low transition on the SDA line while SCL is high. The stop data transfer condition is characterized by a low-to-high transition on the SDA line while SCL is high. The start and stop conditions are always initiated by the controller. Every byte on the SDA line must be eight bits long. Each byte must be followed by an acknowledge bit and bytes are sent MSB first. The I2C register structure of the LMK03328 is shown in Figure 8-32.
The acknowledge bit (A) or non-acknowledge bit (A’) is the 9th bit attached to any 8-bit data byte and is always generated by the receiver to inform the transmitter that the byte has been received (when A = 0) or not (when A’ = 0). A = 0 is done by pulling the SDA line low during the 9th clock pulse and A’ = 0 is done by leaving the SDA line high during the 9th clock pulse.
The I2C controller initiates the data transfer by asserting a start condition which initiates a response from all target devices connected to the serial bus. Based on the 8-bit address byte sent by the controller over the SDA line (consisting of the 7-bit target address (MSB first) and an R/W’ bit), the device whose address corresponds to the transmitted address responds by sending an acknowledge bit. All other devices on the bus remain idle while the selected device waits for data transfer with the controller.
After the data transfer has occurred, stop conditions are established. In write mode, the controller asserts a stop condition to end data transfer during the 10th clock pulse following the acknowledge bit for the last data byte from the target. In read mode, the controller receives the last data byte from the target but does not pull SDA low during the 9th clock pulse. This is known as a non-acknowledge bit. By receiving the non-acknowledge bit, the target knows the data transfer is finished and enters the idle mode. The controller then takes the data line low during the low period before the 10th clock pulse, and high during the 10th clock pulse to assert a stop condition. A generic transaction is shown in Figure 8-33.
The LMK03328 I2C interface supports Block Register Write/Read, Read/Write SRAM, and Read/Write EEPROM operations. For Block Register Write/Read operations, the I2C controller can individually access addressed registers that are made of an 8-bit data byte. The offset of the indexed register is encoded in the register address, as described in Table 8-8. To change the most significant 5 bits of the I2C target address from the default value, the EEPROM byte 11 can be rewritten with the desired value and R10 provides a readback of the new target address.
OPERATING MODE | R10.7 | R10.6 | R10.5 | R10.4 | R10.3 | R10.2 | R10.1 |
---|---|---|---|---|---|---|---|
Hard pin | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
Soft pin | 1 | 0 | 1 | 0 | 1 | Controlled by GPIO1 state. | |
GPIO1 |
R10[2-1] |
||||||
0 | 0x0 | ||||||
VIM | 0x1 | ||||||
1 | 0x3 |