SNAS669E September 2015 – April 2018 LMK03318
PRODUCTION DATA.
The I2C port on the LMK03318 works as a slave 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 I2C-Compatible Interface Characteristics (SDA, SCL) I2C-Compatible Interface Characteristics (SDA, SCL). The timing diagram is given in Figure 71.
In an I2C bus system, the LMK03318 acts as a slave device and is connected to the serial bus (data bus SDA and clock bus SCL). These are accessed through a 7-bit slave address transmitted as part of an I2C packet. Only the device with a matching slave address responds to subsequent I2C commands. In soft pin mode, the LMK03318 allows up to three unique slave devices to occupy the I2C bus based on the pin strapping of GPIO1 (tied to VDD_DIG, GND or VIM). The device slave address is 10100xx (the two LSBs are determined by the GPIO1 pin).
NOTE
The PDN pin of LMK03318 should be high before any I2C communication on the bus. The first I2C transaction after power cycling LMK03318 should 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 master. 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 LMK03318 is shown in Figure 72.
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 master initiates the data transfer by asserting a start condition which initiates a response from all slave devices connected to the serial bus. Based on the 8-bit address byte sent by the master over the SDA line (consisting of the 7-bit slave 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 master.
After the data transfer has occurred, stop conditions are established. In write mode, the master asserts a stop condition to end data transfer during the 10th clock pulse following the acknowledge bit for the last data byte from the slave. In read mode, the master receives the last data byte from the slave 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 slave knows the data transfer is finished and enters the idle mode. The master 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 transation is shown in Figure 73.
The LMK03318 I2C interface supports “Block Register Write/Read”, “Read/Write SRAM”, and “Read/Write EEPROM” operations. For “Block Register Write/Read” operations, the I2C master can individually access addressed registers that are made of an 8-bit data byte. The offset of the indexed register is encoded in R10 and part of the EEPROM, as described in Table 9 below. To change the most significant 5 bits of the I2C slave address from its default value, the EEPROM byte 11 can be re-written with the desired value and R10 provides a read-back of the new slave address.
Operating Mode | R10.7 | R10.6 | R10.5 | R10.4 | R10.3 | R10.2 | R10.1 |
---|---|---|---|---|---|---|---|
Hard pin | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
Soft pin | 1 | 0 | 1 | 0 | 0 | Controlled by GPIO1 state. | |
GPIO1 | R10[2-1] | ||||||
0 | 0x0 | ||||||
VIM | 0x1 | ||||||
1 | 0x3 |