The features of the I2C controllers include the following:
- Programmable bus data rates
- Normal
- Fast
- 16-byte FIFO
- Management mode
- Transmit and receive with 8 or 10-bit addressing
- Clock stretching by allowing hold for slow processor service
- Timeout interrupt flag to avoid stall condition
- Repeated start
- Management monitor mode
- Response mode
- Transmit and receive with 7-bit addressing
- Fully programmable address response
- Transaction hold bit helps to prevent the overflow condition
- Timeout interrupt flag to avoid stall condition
- Clock stretching helps to delay communication if data is not readily available
- Software driven controller
- Status polling
- Interrupt driven with programmability