i3c_edma_b2b_transfer_master#
Overview#
The example shows how to use i3c driver as slave to do board to board transfer with EDMA.
In this example, one i3c instance as slave and another i3c instance on the other board as master. Master first enters dynamic address cycle to assign address to the connected slave, after success, will use I3C SDR mode to transfer data, then receive data from the connected I3C slave and check the data consistency.
Running the demo#
The following message shows in the terminal if the example runs successfully.
I3C board2board EDMA example – Master transfer. Master will send data : 0x 0 0x 1 0x 2 0x 3 0x 4 0x 5 0x 6 0x 7 0x 8 0x 9 0x a 0x b 0x c 0x d 0x e 0x f 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
I3C master do dynamic address assignment to the I3C slaves on bus. I3C master dynamic address assignment done.
Start to do I3C master transfer in I3C SDR mode.
I3C master wait for slave IBI event to notify the slave transmit size. I3C master received slave IBI event, data size 1, value 0x20.
I3C master transfer successful in I3C SDR mode.
Start to do I3C master transfer in I3C HDR mode. Receive sent data from slave : 0x 0 0x 1 0x 2 0x 3 0x 4 0x 5 0x 6 0x 7 0x 8 0x 9 0x a 0x b 0x c 0x d 0x e 0x f 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
I3C master transfer successful in I3C HDR mode.
Supported Boards#
MIMXRT1180-EVK
Hardware requirements
Micro USB cable
Two MIMXRT1180-EVK boards
Personal Computer
Board settings
Weld 1.5kΩ to R778 I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C2 pins of MASTER_BOARD are connected with I3C2 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I3C2_CLK J50-1 I3C2_CLK J50-1
I3C2_SDA J50-2 I3C2_SDA J50-2
GND J50-4 GND J50-4
Prepare the Demo
Connect a USB cable between the host PC and the OpenSDA 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 demo.
FRDM-MCXA153
Hardware requirements
Type-C USB cable
FRDM-MCXA153 board
Personal Computer
Board settings
I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C0 pins of MASTER_BOARD are connected with I3C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
P0_16 J20 P0_16 J20
P0_17 J21 P0_17 J21
GND J6-8 GND J6-8
Prepare the Demo
Connect a Type-C USB cable between the host PC and the MCU-Link port(J15) 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.
Remove jumper J43 3-4.
Press reset button to begin running the demo.
FRDM-MCXA156
Hardware requirements
Type-C USB cable
FRDM-MCXA156 board
Personal Computer
Board settings
I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C0 pins of MASTER_BOARD are connected with I3C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I3C0_SCL/P1_9 J8-3 P1_9 J8-3
I3C0_SDA/P1_8 J8-4 P1_8 J8-4
GND J5-8 GND J5-8
Prepare the Demo
Connect a USB Type-C cable between the host PC and the MCU-Link 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.
Press reset button to begin running the demo.
FRDM-MCXN236
Hardware requirements
Type-C USB cable
FRDM-MCXN236 board
Personal Computer
Board settings
I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C0 pins of MASTER_BOARD are connected with I3C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
P1_16 J9-4 P1_16 J9-4
P1_17 J9-3 P1_17 J9-3
GND J8-2 GND J8-2
Prepare the Demo
Connect a USB cable between the host PC and the OpenSDA 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 demo.
FRDM-MCXN947
Hardware requirements
Type-C USB cable
FRDM-MCXN947 board
Personal Computer
Board settings
I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C0 pins of MASTER_BOARD are connected with I3C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
P1_16 J5-3 P1_16 J5-3
P1_17 J5-4 P1_17 J5-4
GND J5-8 GND J5-8
Prepare the Demo
Connect a USB cable between the host PC and the OpenSDA 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 demo.
FRDM-MCXN947T
Hardware requirements
Type-C USB cable
FRDM-MCXN947T board
Personal Computer
Board settings
I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C0 pins of MASTER_BOARD are connected with I3C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
P1_16 J5-3 P1_16 J5-3
P1_17 J5-4 P1_17 J5-4
GND J5-8 GND J5-8
Prepare the Demo
Connect a USB cable between the host PC and the OpenSDA 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 demo.
MCX-N5XX-EVK
Hardware requirements
Micro USB cable
MCX-N5XX-EVK board
Personal Computer
Board settings
I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C0 pins of MASTER_BOARD are connected with I3C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
P1_16 J17 P1_16 J17
P1_17 J18 P1_17 J18
GND J19-8 GND J19-8
Prepare the Demo
Connect a USB cable between the host PC and the OpenSDA 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 demo.
MCX-N9XX-EVK
Hardware requirements
Micro USB cable
MCX-N9XX-EVK board
Personal Computer
Board settings
I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C0 pins of MASTER_BOARD are connected with I3C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
P1_16 J17 P1_16 J17
P1_17 J18 P1_17 J18
GND J19-8 GND J19-8
Prepare the Demo
Connect a USB cable between the host PC and the OpenSDA 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 demo.
MIMXRT700-EVK
Hardware requirements
Mini/micro USB cable
MIMXRT700-EVK board
Personal Computer
Board settings
Jumper setting:
EVK board: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MASTER(I3C3) connect to SLAVE(I3C3) Pin Name Board Location Pin Name Board Location SCL J48 pin 3 SCL J48 pin 3 SDA J48 pin 5 SDA J48 pin 5 GND J48 pin 8 GND J48 pin 8 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Other jumpers keep default configuration.
Prepare the Demo
Connect a USB cable between the host PC and the MCU-LINK 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 demo.
FRDM-MCXA266
Hardware requirements
Type-C USB cable
FRDM-MCXA266 board
Personal Computer
Board settings
I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C0 pins of MASTER_BOARD are connected with I3C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I3C0_SCL/P1_9 J2-20 P1_9 J2-20
I3C0_SDA/P1_8 J2-18 P1_8 J2-18
GND J2-14 GND J2-14
Prepare the Demo
Connect a USB Type-C cable between the host PC and the MCU-Link 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.
Press reset button to begin running the demo.
Running the demo
The log below shows the output of the hello world demo in the terminal window:
I3C board2board EDMA example -- Master transfer.
Master will send data :
0x 0 0x 1 0x 2 0x 3 0x 4 0x 5 0x 6 0x 7
0x 8 0x 9 0x a 0x b 0x c 0x d 0x e 0x f
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17
0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
I3C master do dynamic address assignment to the I3C slaves on bus.
I3C master dynamic address assignment done.
Start to do I3C master transfer in I3C SDR mode.
I3C master wait for slave IBI event to notify the slave transmit size.
I3C master received slave IBI event, data size 1, value 0x20.
I3C master transfer successful in I3C SDR mode.
FRDM-MCXA366
Hardware requirements
Type-C USB cable
FRDM-MCXA366 board
Personal Computer
Board settings
I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C0 pins of MASTER_BOARD are connected with I3C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I3C0_SCL/P1_9 J2-20 P1_9 J2-20
I3C0_SDA/P1_8 J2-18 P1_8 J2-18
GND J2-14 GND J2-14
Prepare the Demo
Connect a USB Type-C cable between the host PC and the MCU-Link 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.
Press reset button to begin running the demo.
Running the demo
The log below shows the output of the hello world demo in the terminal window:
I3C board2board EDMA example -- Master transfer.
Master will send data :
0x 0 0x 1 0x 2 0x 3 0x 4 0x 5 0x 6 0x 7
0x 8 0x 9 0x a 0x b 0x c 0x d 0x e 0x f
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17
0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
I3C master do dynamic address assignment to the I3C slaves on bus.
I3C master dynamic address assignment done.
Start to do I3C master transfer in I3C SDR mode.
I3C master wait for slave IBI event to notify the slave transmit size.
I3C master received slave IBI event, data size 1, value 0x20.
I3C master transfer successful in I3C SDR mode.
FRDM-MCXA577
Hardware requirements
Type-C USB cable
FRDM-MCXA577 board
Personal Computer
Board settings
I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C0 pins of MASTER_BOARD are connected with I3C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I3C0_SCL/P0_21 J2-20 P0_21 J2-20
I3C0_SDA/P0_20 J2-18 P0_20 J2-18
GND J2-14 GND J2-14
Prepare the Demo
Connect a USB Type-C cable between the host PC and the MCU-Link 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.
Press reset button to begin running the demo.
Running the demo
The log below shows the output of the hello world demo in the terminal window:
I3C board2board EDMA example -- Master transfer.
Master will send data :
0x 0 0x 1 0x 2 0x 3 0x 4 0x 5 0x 6 0x 7
0x 8 0x 9 0x a 0x b 0x c 0x d 0x e 0x f
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17
0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
I3C master do dynamic address assignment to the I3C slaves on bus.
I3C master dynamic address assignment done.
Start to do I3C master transfer in I3C SDR mode.
I3C master wait for slave IBI event to notify the slave transmit size.
I3C master received slave IBI event, data size 1, value 0x20.
I3C master transfer successful in I3C SDR mode.
FRDM-MCXA287
Hardware requirements
Type-C USB cable
FRDM-MCXA287 board
Personal Computer
Board settings
I3C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I3C interface, I3C0 pins of MASTER_BOARD are connected with I3C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I3C0_SCL/P0_21 J2-20 P0_21 J2-20
I3C0_SDA/P0_20 J2-18 P0_20 J2-18
GND J2-14 GND J2-14
Prepare the Demo
Connect a USB Type-C cable between the host PC and the MCU-Link 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.
Press reset button to begin running the demo.
Running the demo
The log below shows the output of the hello world demo in the terminal window:
I3C board2board EDMA example -- Master transfer.
Master will send data :
0x 0 0x 1 0x 2 0x 3 0x 4 0x 5 0x 6 0x 7
0x 8 0x 9 0x a 0x b 0x c 0x d 0x e 0x f
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17
0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
I3C master do dynamic address assignment to the I3C slaves on bus.
I3C master dynamic address assignment done.
Start to do I3C master transfer in I3C SDR mode.
I3C master wait for slave IBI event to notify the slave transmit size.
I3C master received slave IBI event, data size 1, value 0x20.
I3C master transfer successful in I3C SDR mode.