The I2C (Inter-Integrated Circuit) bus is a simple, low-bandwidth, short-distance protocol. It is often seen in systems with peripheral devices that are accessed intermittently. It is commonly used in short-distance systems, where the number of traces on the board should be minimized. The device that initiates the transmission on the I2C bus is commonly known as the Controller, while the device being addressed is called the Target.
Lattice Semiconductor general-purpose I2C Controller IP Core offers an effective way to control an I2C bus. The programmable nature of FPGA provides you with flexibility of configuring the I2C Controller device to your need, thus allowing you to customize the I2C Controller to meet your specific design requirements.
Two Modes of Operation - The I2C Controller can operate in interrupt or polling mode. This means that the host can choose to poll the I2C
Controller for a change in status at periodic intervals (Polling Mode) or wait to be interrupted by the I2C Controller when data needs to be read or written (Interrupt Mode).