The I2C bus provides bidirectional data transfer through a 2-wire design, a serial data line (SDA) and a serial clock line (SCL), and 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 manufacture.
The I2C module has following features:
- Devices on the I2C bus can be designated as either a controller or a 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) and fast (400kbps)
- Controller and target interrupt generation:
- Controller generates interrupts when a transmit or receive operation completes (or aborts due to an error).
- Target generates interrupts when data has been 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
- Glitch filter to suppress glitches lesser than 50ns on both SDA and SCL