|
||
---|---|---|
.. | ||
armgcc | ||
board.c | ||
board.h | ||
clock_config.c | ||
clock_config.h | ||
cmsis_spi_dma_b2b_transfer_master_v3_14.xml | ||
cmsis_spi_dma_b2b_transfer_master.c | ||
pin_mux.c | ||
pin_mux.h | ||
readme.md | ||
RTE_Device.h |
Overview
CMSIS-Driver defines generic peripheral driver interfaces for middleware making it reusable across a wide range of supported microcontroller devices. The API connects microcontroller peripherals with middleware that implements for example communication stacks, file systems, or graphic user interfaces. More information and usage method please refer to http://www.keil.com/pack/doc/cmsis/Driver/html/index.html.
The cmsis_spi_dma_b2b_transfer_master example shows how to use spi driver as master to do board to board transfer with DMA:
In this example, one spi instance as master and another spi instance on the other board as slave. 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.
SDK version
- Version: 2.15.000
Toolchain supported
- IAR embedded Workbench 9.40.1
- Keil MDK 5.38.1
- GCC ARM Embedded 12.2
- MCUXpresso 11.8.0
Hardware requirements
- Micro USB cable
- Two LPCXpresso55s69 boards
- Personal Computer
Board settings
Connect SPI master on board to SPI slave on other board
Master_board(SPI7) Slave_board(SPI7)
Pin Name Board Location Pin Name Board Location
MISO P17 pin 12 MISO P17 pin 12
MOSI P17 pin 10 MOSI P17 pin 10
SCK P17 pin 14 SCK P17 pin 14
SSEL1 P17 pin 1 SSEL1 P17 pin 1
GND P17 pin 7 GND P17 pin 7
Prepare the Demo
Note: MCUXpresso IDE project default debug console is semihost
- Connect a micro USB cable between the PC host and the LPC-Link USB port (P6) on the board.
- Open a serial terminal on PC for JLink serial device with these 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
The following message shows in the terminal if the example runs successfully.
SPI CMSIS driver board to board dma example.
This example use one board as master and another as slave.
Master and slave uses DMA 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
MOSI -- MOSI
MISO -- MISO
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