i2c_dma_b2b_transfer_slave#
Overview#
The i2c_dma_b2b_transfer_slave example shows how to use i2c driver as slave to do board to board transfer with a DMA master:
In this example, one i2c instance as slave and another i2c instance on the other board as master. Master sends a piece of data to slave, and receive a piece of data from slave. This example checks if the data received from slave is correct. I2C slave works as supporting board to help demonstrate master DMA trasnfer, actually uses interrupt way.
Supported Boards#
FRDM-K32L2B
Hardware requirements
Mini USB cable
Two FRDM-K32L2B boards
Personal Computer
Board settings
I2C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I2C interface, I2C0 pins of MASTER_BOARD are connected with I2C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I2C0_SCL J4-2 I2C0_SCL J4-2
I2C0_SDA J4-4 I2C0_SDA J4-4
GND J3-14 GND J3-14
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the 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.
Running the demo
When the demo runs successfully, the following message is displayed in the terminal:
I2C board2board DMA example – Slave 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
End of I2C example .
FRDM-MCXC242
Hardware requirements
Mini USB cable
Two FRDM-MCXC242 boards
Personal Computer
Board settings
I2C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I2C interface, I2C0 pins of MASTER_BOARD are connected with I2C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I2C0_SCL J4-12 I2C0_SCL J4-12
I2C0_SDA J4-10 I2C0_SDA J4-10
GND J3-14 GND J3-14
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the 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.
Running the demo
When the demo runs successfully, the following message is displayed in the terminal:
I2C board2board DMA example – Slave 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
End of I2C example .
FRDM-MCXC444
Hardware requirements
Type-C USB cable
Two FRDM-MCXC444 boards
Personal Computer
Board settings
I2C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I2C interface, I2C0 pins of MASTER_BOARD are connected with I2C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I2C0_SCL J4-2 I2C0_SCL J4-2
I2C0_SDA J4-4 I2C0_SDA J4-4
GND J3-14 GND J3-14
Prepare the Demo
Connect a type-c USB cable between the host PC and the MCU-Link USB port (J13) 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.
Running the demo
When the demo runs successfully, the following message is displayed in the terminal:
I2C board2board DMA example – Slave 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
End of I2C example .
TWR-KM34Z50MV3
Hardware requirements
Mini USB cable
TWR-KM34Z75M board
Personal Computer
Board settings
I2C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I2C interface, I2C0 pins of MASTER_BOARD are connected with I2C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I2C0_SCL J25-12 I2C0_SCL J25-12
I2C0_SDA J25-11 I2C0_SDA J25-11
GND J25-10 GND J25-10
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.
Running the demo
When the demo runs successfully, the following message is displayed in the terminal:
I2C board2board DMA example – Slave 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
End of I2C example .
TWR-KM34Z75M
Hardware requirements
Mini USB cable
TWR-KM34Z75M board
Personal Computer
Board settings
I2C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I2C interface, I2C0 pins of MASTER_BOARD are connected with I2C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I2C0_SCL J25-12 I2C0_SCL J25-12
I2C0_SDA J25-11 I2C0_SDA J25-11
GND J25-10 GND J25-10
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.
Running the demo
When the demo runs successfully, the following message is displayed in the terminal:
I2C board2board DMA example – Slave 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
End of I2C example .
TWR-KM35Z75M
Hardware requirements
Micro USB cable
TWR-KM35Z75M board
Personal Computer
Board settings
I2C one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of I2C interface, I2C0 pins of MASTER_BOARD are connected with I2C0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
I2C0_SCL J25-12 I2C0_SCL J25-12
I2C0_SDA J25-11 I2C0_SDA J25-11
GND J25-10 GND J25-10
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.
Running the demo
When the demo runs successfully, the following message is displayed in the terminal:
I2C board2board DMA example – Slave 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
End of I2C example .