5.18 I2C Serial Control BusPin | | Name | | Direction | | Function |
| | | | | | |
29 | | SDA | | In/Out | | I2C data |
30 | | SCL | | Output | | I2C clock |
The I2C interface comprises two signals; data (SDA) and clock (SCL). Both SDA and SCL have pull-up resistors. Therefore, when the bus is free, both SDA and SCL are in a HIGH state.
The GR64 implementation of I2C supports only a single master mode, with the module being the master. The output stages of SDA and SCL must have an open- drain or open-collector to perform a wired-AND function. The wired-AND function provides the I2C bus ability to perform clock synchronization on the SCL line. Due to the wired-AND function, the SCL line will be held LOW by the device with the longest LOW period. Therefore, the device with the shorter LOW period will be in a HIGH wait-state during this time.
Clock synchronization can be used as a handshaking mechanism, to enable receivers to cope with fast data transfers. On a byte level, a slave (host application-side) I2C device may be able receive a data transfer, but need time to store the byte received before it is ready to receive another byte. The slave/receiver will therefore hold the SCL line low, after sending the acknowledge bit following the byte received, thereby forcing the master into a wait state. Once the SCL is released by the slave/receiver, the wait state of the master will end. This feature of the I2C standard is known as clock-stretchingand is supported by the GR64.
The I2C interface supports Standard-mode (100kbps) and Fast-mode (400kbps). It also supports Normal (7-bit) addressing and Extended (10-bit) addressing.
Fast-mode signal characteristics
Parameter | | Min | | Typ | | Max | | Unit |
| | | | | | | | |
SCL clock frequency | | 0 | | | | 400 | | kHz |
LOW period of the SCL clock | | 1.3 | | | | | | ∝s |
HIGH period of the SCL clock | | 0.6 | | | | | | ∝s |
Data hold time | | 0 | | | | 0.9 | | ∝s |
Capacitive load for each bus line | | | 400 | | pF |