MCUXpresso SDK Documentation

i3c_edma_b2b_transfer_slave

i3c_edma_b2b_transfer_slave#

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 – Slave transfer.

Check I3C master I3C SDR transfer. Slave received 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 slave request IBI event with one mandatory data byte 0x20. I3C slave request IBI event sent.

I3C master I3C SDR transfer finished.

Check I3C master I3C HDR transfer. Slave received 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 I3C HDR transfer finished.

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
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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
  1. Connect a Type-C USB cable between the host PC and the MCU-Link port(J15) on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Remove jumper J43 3-4.

  5. 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
  1. Connect a USB Type-C cable between the host PC and the MCU-Link USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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
  1. Connect a USB cable between the host PC and the MCU-LINK USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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
  1. Connect a USB Type-C cable between the host PC and the MCU-Link USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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 -- Slave transfer.

Check I3C master I3C SDR transfer.
Slave received 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 slave request IBI event with one mandatory data byte 0x20.
I3C slave request IBI event sent.

I3C master I3C SDR transfer finished.
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
  1. Connect a USB Type-C cable between the host PC and the MCU-Link USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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 -- Slave transfer.

Check I3C master I3C SDR transfer.
Slave received 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 slave request IBI event with one mandatory data byte 0x20.
I3C slave request IBI event sent.

I3C master I3C SDR transfer finished.
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
  1. Connect a USB Type-C cable between the host PC and the MCU-Link USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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 -- Slave transfer.

Check I3C master I3C SDR transfer.
Slave received 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 slave request IBI event with one mandatory data byte 0x20.
I3C slave request IBI event sent.

I3C master I3C SDR transfer finished.
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
  1. Connect a USB Type-C cable between the host PC and the MCU-Link USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. 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 -- Slave transfer.

Check I3C master I3C SDR transfer.
Slave received 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 slave request IBI event with one mandatory data byte 0x20.
I3C slave request IBI event sent.

I3C master I3C SDR transfer finished.