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 (100 kbps) and fast (400 kbps)
- 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 50 ns on both SDA and SCL