The I2C interface (Inter-Integrated Circuit) also known as two-wire interface is a multi-master serial single-ended bus invented by Philips. I2C is widely used for communications between devices on the same board. Every MachXO2 device contains two hardened I2C IP cores designated as “Primary” and “Secondary” I2C cores. Each core can operate as an I2C master or as an I2C slave.
This reference design provides a ready to use RTL code segment that implements intuitive interface between:
- An external I2C master and the XO2 internal registers (user logic)
- An external I2C master and memory extension in XO2
The I2C slave interface is used to received commands and data from an external I2C master. A typical application of this design would be to provide GPIO expansion to an I2C compliant micro-controller master or interfacing the I2C micro-controller to the Embedded Block RAM (EBR) in the XO2.
Benefits
- Ready to use RTL code
- Prevents user from learning I2C and Wishbone Protocol; Shortens Development Time
- Programmable Slave Interrupts