The I2C bus provides bidirectional data transfer through a 2-wire design (a serial data line SDA and a serial clock line SCL). The I2C bus interfaces to external I2C devices such as serial memory (RAM and ROM), networking devices, LCDs, tone generators, and so on. The I2C bus can also be used for system testing and diagnostic purposes in product development and manufacturing.
The CC23xx device includes an I2C module with the following features:
- Devices on the I2C bus can be designated as either a controller or target:
- Supports both transmitting and receiving data as either a controller or a target
- Supports simultaneous controller and target operation
- Four I2C modes:
- Controller transmit
- Controller receive
- Target transmit
- Target receive
- Two transmission speeds:
- Standard (100kbps)
- Fast (400kbps)
- Controller and target interrupt generation:
- Controller generates interrupts when a TX or RX operation completes (or aborts due to an error)
- Target generates interrupts when data is transferred or requested by a controller or when a START or STOP condition is detected.
- Controller with arbitration and clock synchronization, multicontroller support, and 7-bit addressing mode