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
Connect 5V power supply and J-Link Debug Probe to the board, switch SW10 to power on the board.
Connect a micro USB cable between the host PC and the J17 USB port on the target board.
Open a serial terminal with the following settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
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