
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. The MachXO2 offers the user the ability to employ the primary I2C core and program the MachXO2 Configuration Flash in the offline or transparent modes.
Features
This reference design provides readable and easy to modify C code that can be ported to a microcontroller to perform the following operations using the I2C bus:
- Program the MachXO2 configuration flash with a JEDEC file
- Read MachXO2 user code & device registers
- Read and write pages in User Flash Memory (UFM)
- Load and update EBR initialization values in UFM
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








