The Inter-Integrated Circuit (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 (EEPROM), sensors, LCDs, and so on.
The 32xx chip includes one I2C module with the following features:
- Devices on the I2C bus can be designated as either a master or a slave:
- Supports both transmitting and receiving data as either a master or a slave
- Supports simultaneous master and slave operation
- Four I2C modes:
- Master transmit
- Master receive
- Slave transmit
- Slave receive
- Supported transmission speeds:
- Standard mode (100 kbps)
- Fast mode (400 kbps)
- Master and slave interrupt generation:
- Master generates interrupts when a transmit or receive operation completes (or aborts due to an error).
- Slave generates interrupts when data has been transferred or requested by a master, or when a START or STOP condition is detected.
- Master with arbitration and clock synchronization, multimaster support, and 7-bit addressing mode
- Efficient transfers using micro-direct memory access controller (µDMA)
- Separate channels for transmit and receive
- Ability to execute single data transfers or burst
data transfers using the RX and TX FIFOs in the I2C module