Hardware requirements

  • Micro USB cable

  • MIMX8ULP-EVK/EVK9 board

  • J-Link Debug Probe

  • 5V power supply

  • Personal Computer

Board settings

The example requires doing connection between FLEXIO0(as master) pins and LPI2C0(as slave) pins. Please use two dupont line to connect pins on MIMX8ULP-EVK base board as following:

  • PTA8_LPI2C0_SCL(J20,10), ARDU_D3/PTB0/FLEXIO0_D16/SCL(J21,4) connected

  • PTA9_LPI2C0_SDA(J20,9), ARDU_D2/PTB1/FLEXIO0_D17/SDA(J21,3) connected

Please note this application can’t support running with Linux BSP!

Please note this application can only run well with RAM link file! If run it in QSPI flash in place, there’s high latency when instruction fetch cache miss. The FlexIO I2C has critical timing requirement that I2C data must be read/write in time, otherwise the state machine works abnormally.

Prepare the Demo

  1. Connect 5V power supply and J-Link Debug Probe to the board, switch SW10 to power on the board.

  2. Connect a micro USB cable between the host PC and the J17 USB port on the target board.

  3. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  4. Download the program to the target board.

  5. Either press the reset button on your board or launch the debugger in your IDE to begin running the example

Running the demo

When the example runs successfully, you can see the similar information from the terminal as below.

FlexIO I2C interrupt - LPI2C interrupt
Master will send data :
0x00  0x01  0x02  0x03  0x04  0x05  0x06  0x07
0x08  0x09  0x0A  0x0B  0x0C  0x0D  0x0E  0x0F
0x10  0x11  0x12  0x13  0x14  0x15  0x16  0x17
0x18  0x19  0x1A  0x1B  0x1C  0x1D  0x1E  0x1F

Slave received data :
0x00  0x01  0x02  0x03  0x04  0x05  0x06  0x07
0x08  0x09  0x0A  0x0B  0x0C  0x0D  0x0E  0x0F
0x10  0x11  0x12  0x13  0x14  0x15  0x16  0x17
0x18  0x19  0x1A  0x1B  0x1C  0x1D  0x1E  0x1F