cmsis_spi_dma_b2b_transfer_master#
Overview#
The spi_dma_b2b_transfer example shows how to use SPI CMSIS driver in dma way:
In this example , we need two boards, one board used as SPI master and another board used as SPI slave. The file ‘spi_dma_b2b_transfer_master.c’ includes the SPI master code.
SPI master send/received data to/from SPI slave in dma .
Supported Boards#
FRDM-K32L2B
Hardware requirements
Mini USB cable
Two FRDM-K32L2B boards
Personal Computer
Board settings
SPI board to board: Transfers data through SPI interface. SPI0 pins of the master board are connected to the SPI1 pins of the slave board.
MASTER BOARD CONNECTS TO SLAVE BOARD
Pin Name Board Location Pin Name Board Location
MISO J1 pin 11 MISO J2 pin 10
MOSI J1 pin 9 MOSI J2 pin 8
SCK J1 pin 15 SCK J2 pin 12
PCS0 J1 pin 7 PCS0 J2 pin 6
GND J2 pin 14 GND J2 pin 14
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
##### Prepare the Demo
1. Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
2. Open a serial terminal on PC for OpenSDA serial device with these settings:
- 115200 baud rate
- 8 data bits
- No parity
- One stop bit
- No flow control
3. Download the program to the target board.
4. Reset the SoC and run the project.
##### Running the demo
When the demo runs successfully, the log would be seen on the OpenSDA terminal like:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SPI CMSIS DMA transfer example start.
This example use one spi instance as master and another as slave on one board.
Master use DMA way , slave uses interrupt.
Please make sure you make the correct line connection. Basically, the connection is:
SPI_master -- SPI_slave
CLK -- CLK
PCS -- PCS
MISO -- MISO
MOSI -- MOSI
Master transmit:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
SPI transfer all data matched!
Master received:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FRDM-MCXC242
Hardware requirements
Mini USB cable
Two FRDM-MCXC242 boards
Personal Computer
Board settings
SPI board to board: Transfers data through SPI interface. SPI0 pins of the master board are connected to the SPI1 pins of the slave board.
MASTER BOARD CONNECTS TO SLAVE BOARD
Pin Name Board Location Pin Name Board Location
MOSI J2 pin 8 MOSI J2 pin 18
MISO J2 pin 10 MISO J2 pin 20
SCK J2 pin 12 SCK J1 pin 11
PCS0 J2 pin 6 PCS0 J1 pin 9
GND J2 pin 14 GND J2 pin 14
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
##### Prepare the Demo
1. Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
2. Open a serial terminal on PC for OpenSDA serial device with these settings:
- 115200 baud rate
- 8 data bits
- No parity
- One stop bit
- No flow control
3. Download the program to the target board.
4. Reset the SoC and run the project.
##### Running the demo
When the demo runs successfully, the log would be seen on the OpenSDA terminal like:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SPI CMSIS DMA transfer example start.
This example use one spi instance as master and another as slave on one board.
Master use DMA way , slave uses interrupt.
Please make sure you make the correct line connection. Basically, the connection is:
SPI_master -- SPI_slave
CLK -- CLK
PCS -- PCS
MISO -- MISO
MOSI -- MOSI
Master transmit:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
SPI transfer all data matched!
Master received:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FRDM-MCXC444
Hardware requirements
Type-C USB cable
Two FRDM-MCXC444 boards
Personal Computer
Board settings
SPI board to board: Transfers data through SPI interface. SPI0 pins of the master board are connected to the SPI1 pins of the slave board.
MASTER BOARD CONNECTS TO SLAVE BOARD
Pin Name Board Location Pin Name Board Location
MISO J1 pin 11 MISO J2 pin 10
MOSI J1 pin 9 MOSI J2 pin 8
SCK J1 pin 15 SCK J2 pin 12
PCS0 J1 pin 7 PCS0 J2 pin 6
GND J2 pin 14 GND J2 pin 14
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
##### Prepare the Demo
1. Connect a type-c USB cable between the host PC and the MCU-Link USB port (J13) 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. Reset the SoC and run the project.
##### Running the demo
When the demo runs successfully, the log would be seen on the terminal like:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SPI CMSIS DMA transfer example start.
This example use one spi instance as master and another as slave on one board.
Master use DMA way , slave uses interrupt.
Please make sure you make the correct line connection. Basically, the connection is:
SPI_master -- SPI_slave
CLK -- CLK
PCS -- PCS
MISO -- MISO
MOSI -- MOSI
Master transmit:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
SPI transfer all data matched!
Master received:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TWR-KM34Z50MV3
Hardware requirements
Mini USB cable
Two TWR-KM34Z50MV3 board
Personal Computer
Two Elevator Tower
Board settings
SPI one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of SPI interface, SPI0 pins of MASTER_BOARD are connected with SPI0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
MOSI B-10 MOSI B-10
MISO B-11 MISO B-11
SCK B-7 SCK B-7
PCS0 B-9 PCS0 B-9
GND B-2 GND B-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.
Reset the SoC and run the project.
Running the demo
When the example runs successfully, the following message is displayed in the terminal:
SPI CMSIS driver board to board dma example.
This example use one board as master and another as slave.
Master and slave uses EDMA way. Slave should start first.
Please make sure you make the correct line connection. Basically, the connection is:
SPI_master -- SPI_slave
CLK -- CLK
PCS -- PCS
SOUT -- SIN
SIN -- SOUT
GND -- GND
Master transmit:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
SPI transfer all data matched!
Master received:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
TWR-KM34Z75M
Hardware requirements
Mini USB cable
Two TWR-KM34Z75M board
Personal Computer
Two Elevator Tower
Board settings
SPI one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of SPI interface, SPI0 pins of MASTER_BOARD are connected with SPI0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
MOSI B-10 MOSI B-10
MISO B-11 MISO B-11
SCK B-7 SCK B-7
PCS0 B-9 PCS0 B-9
GND B-2 GND B-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.
Reset the SoC and run the project.
Running the demo
When the example runs successfully, the following message is displayed in the terminal:
SPI CMSIS driver board to board dma example.
This example use one board as master and another as slave.
Master and slave uses EDMA way. Slave should start first.
Please make sure you make the correct line connection. Basically, the connection is:
SPI_master -- SPI_slave
CLK -- CLK
PCS -- PCS
SOUT -- SIN
SIN -- SOUT
GND -- GND
Master transmit:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
SPI transfer all data matched!
Master received:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
TWR-KM35Z75M
Hardware requirements
Micro USB cable
Two TWR-KM35Z75M board
Personal Computer
Two Elevator Tower
Board settings
SPI one board:
Transfer data from MASTER_BOARD to SLAVE_BOARD of SPI interface, SPI0 pins of MASTER_BOARD are connected with SPI0 pins of SLAVE_BOARD
MASTER_BOARD CONNECTS TO SLAVE_BOARD
Pin Name Board Location Pin Name Board Location
MOSI B-10 MOSI B-10
MISO B-11 MISO B-11
SCK B-7 SCK B-7
PCS0 B-9 PCS0 B-9
GND B-2 GND B-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.
Reset the SoC and run the project.
Running the demo
When the example runs successfully, the following message is displayed in the terminal:
SPI CMSIS driver board to board dma example.
This example use one board as master and another as slave.
Master and slave uses EDMA way. Slave should start first.
Please make sure you make the correct line connection. Basically, the connection is:
SPI_master -- SPI_slave
CLK -- CLK
PCS -- PCS
SOUT -- SIN
SIN -- SOUT
GND -- GND
Master transmit:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
SPI transfer all data matched!
Master received:
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F