I2C is a two-wire, bi-directional serial bus that provides a simple and efficient method of data exchange between devices. It is most suitable for applications requiring occasional communication over a short distance between many devices. The I2C standard is a true multi-master bus including collision detection and arbitration that prevents data corruption if two or more masters attempt to control the bus simultaneously.
The interface defines 3 transmission speeds:
- Normal: 100Kbps
- Fast: 400Kbps
- High speed: 3.5Mbps
Features:
- Compatible with Philips I2C standard
- Multimaster Operation
- Software programmable clock frequency
- Clock Stretching and Wait state generation
- Software programmable acknowledge bit
- Interrupt or bit-polling driven byte-by-byte data-transfers
- Arbitration lost interrupt, with automatic switching from master to slave
- Called as Slave interrupt
- Start/Stop/Repeated Start generation
- Acknowledge bit generation/detection
- Start/Stop detection
- Bus busy detection
- Supports 7 and 10bit addressing mode in both master and slave modes
- Operates from a wide range of input clock frequencies
- Static synchronous design
- Fully synthesizable