MCUXpresso SDK Documentation

spi_transfer_interrupt_slave

spi_transfer_interrupt_slave#

Overview#

The spi_interrupt_transfer_slave example shows how to use spi driver as slave to receive data from master.

In this example, one spi instance as slave and another spi instance on 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 master is correct. This example should work with spi_interrupt_transfer_master example. And this example should start first.

Supported Boards#

LPC845BREAKOUT
Hardware requirements
  • Micro USB cable

  • Two LPC845 Breakout boards

  • Personal Computer

Board settings

Pin connecting:
Connect SPI master on board to SPI slave on other board

    Master - SPI0                        Slave - SPI0
Pin Name   Board Location            Pin Name   Board Location
MISO       CN1 pin 12 (PIO0_26)      MISO       CN1 pin 12 (PIO0_26)
MOSI       CN1 pin 13 (PIO0_27)      MOSI       CN1 pin 13 (PIO0_27)
SCK        CN1 pin 6  (PIO0_21)      SCK        CN1 pin 6  (PIO0_21)
SSEL0      CN1 pin 5  (PIO0_20)      SSEL0      CN1 pin 5  (PIO0_20)
GND        CN1 pin 20                GND        CN1 pin 20
Prepare the demo
  1. Connect a micro USB cable between the PC host and the CMSIS DAP USB port on the board.

  2. Open a serial terminal with the following settings:

    • 9600 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.

Running the demo

The log below shows the output of the SPI transfer using interrupt slave driver example in the terminal window:

This is SPI interrupt transfer slave example.

Slave is working....

The received data are:
  0x00  0x01  0x02  0x03  0x04  0x05  0x06  0x07  0x08  0x09  0x0A  0x0B  0x0C  0x0D  0x0E  0x0F
  0x10  0x11  0x12  0x13  0x14  0x15  0x16  0x17  0x18  0x19  0x1A  0x1B  0x1C  0x1D  0x1E  0x1F
  0x20  0x21  0x22  0x23  0x24  0x25  0x26  0x27  0x28  0x29  0x2A  0x2B  0x2C  0x2D  0x2E  0x2F
  0x30  0x31  0x32  0x33  0x34  0x35  0x36  0x37  0x38  0x39  0x3A  0x3B  0x3C  0x3D  0x3E  0x3F
Slave interrupt transfer succeed!

LPCXpresso802
Hardware requirements
  • Mini/micro USB cable

  • Two LPCXpresso802 boards

  • Personal Computer

Board settings

Run with: system_clk = 30 MHz. SPI0CLK = 30 MHz.

Pin connecting:
Connect SPI master on board to SPI slave on other board

    Master - SPI0                  Slave - SPI0   
Pin Name   Board Location      Pin Name   Board Location            
MISO       CN3 pin 19          MISO       CN3 pin 19
MOSI       CN3 pin 21          MOSI       CN3 pin 21
SCK        CN3 pin 15          SCK        CN3 pin 15                
SSEL0      CN3 pin 22          SSEL0      CN3 pin 22
Prepare the Demo
  1. Connect a micro USB cable between the PC host and the CMSIS DAP USB port on the board

  2. Open a serial terminal with the following settings:

    • 9600 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.

Running the demo

The log below shows the output of the hello world demo in the terminal window:

This is SPI interrupt transfer slave example.

Slave is working....

The received data are:
  0x00  0x01  0x02  0x03  0x04  0x05  0x06  0x07  0x08  0x09  0x0A  0x0B  0x0C  0x0D  0x0E  0x0F
  0x10  0x11  0x12  0x13  0x14  0x15  0x16  0x17  0x18  0x19  0x1A  0x1B  0x1C  0x1D  0x1E  0x1F
  0x20  0x21  0x22  0x23  0x24  0x25  0x26  0x27  0x28  0x29  0x2A  0x2B  0x2C  0x2D  0x2E  0x2F
  0x30  0x31  0x32  0x33  0x34  0x35  0x36  0x37  0x38  0x39  0x3A  0x3B  0x3C  0x3D  0x3E  0x3F
Slave interrupt transfer succeed!

LPCXpresso804
Hardware requirements
  • Mini/micro USB cable

  • Two LPCXpresso804 boards

  • Personal Computer

Board settings

Run with: system_clk = 30 MHz. SPI0CLK = 30 MHz.

Pin connecting:
Connect SPI master on board to SPI slave on other board

    Master - SPI0                  Slave - SPI0   
Pin Name   Board Location      Pin Name   Board Location
MISO       CAN8 pin 2            MISO       CAN8 pin 2
MOSI       CAN3 pin 10           MOSI       CAN3 pin 10
SCK        CAN3 pin 9            SCK        CAN3 pin 9
SSEL0      CAN8 pin 5            SSEL0      CAN8 pin 5
GND        CAN3 pin 4            GND        CAN3 pin 4
Prepare the Demo
  1. Connect a micro USB cable between the PC host and the CMSIS DAP USB port on the board

  2. Open a serial terminal with the following settings:

    • 9600 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.

Running the demo

The log below shows the output of the hello world demo in the terminal window:

This is SPI interrupt transfer slave example.

Slave is working....

The received data are:
  0x00  0x01  0x02  0x03  0x04  0x05  0x06  0x07  0x08  0x09  0x0A  0x0B  0x0C  0x0D  0x0E  0x0F
  0x10  0x11  0x12  0x13  0x14  0x15  0x16  0x17  0x18  0x19  0x1A  0x1B  0x1C  0x1D  0x1E  0x1F
  0x20  0x21  0x22  0x23  0x24  0x25  0x26  0x27  0x28  0x29  0x2A  0x2B  0x2C  0x2D  0x2E  0x2F
  0x30  0x31  0x32  0x33  0x34  0x35  0x36  0x37  0x38  0x39  0x3A  0x3B  0x3C  0x3D  0x3E  0x3F
Slave interrupt transfer succeed!

LPCXpresso824MAX
Hardware requirements
  • Mini/micro USB cable

  • Two LPCXpresso824MAX boards

  • Personal Computer

Board settings

Run with: system_clk = 30 MHz. SPI0CLK = 30 MHz.

Pin connecting:
Connect SPI master on board to SPI slave on other board

    Master - SPI0                  Slave - SPI0   
Pin Name   Board Location      Pin Name   Board Location            
MISO       J1 pin 6            MISO       J1 pin 6                     
MOSI       J1 pin 7            MOSI       J1 pin 7                
SCK        J1 pin 5            SCK        J1 pin 5                 
SSEL0      J1 pin 8            SSEL0      J1 pin 8
GND        J1 pin 4            GND        J1 pin 4
Prepare the Demo
  1. Connect a micro USB cable between the PC host and the CMSIS DAP USB port on the board

  2. Open a serial terminal with the following settings:

    • 9600 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.

Running the demo

The log below shows the output of the hello world demo in the terminal window:

This is SPI interrupt transfer slave example.

Slave is working....

The received data are:
  0x00  0x01  0x02  0x03  0x04  0x05  0x06  0x07  0x08  0x09  0x0A  0x0B  0x0C  0x0D  0x0E  0x0F
  0x10  0x11  0x12  0x13  0x14  0x15  0x16  0x17  0x18  0x19  0x1A  0x1B  0x1C  0x1D  0x1E  0x1F
  0x20  0x21  0x22  0x23  0x24  0x25  0x26  0x27  0x28  0x29  0x2A  0x2B  0x2C  0x2D  0x2E  0x2F
  0x30  0x31  0x32  0x33  0x34  0x35  0x36  0x37  0x38  0x39  0x3A  0x3B  0x3C  0x3D  0x3E  0x3F
Slave interrupt transfer succeed!

LPCXpresso845MAX
Hardware requirements
  • Mini/micro USB cable

  • Two LPCXpresso845MAX boards

  • Personal Computer

Board settings

Run with: system_clk = 30 MHz. SPI0CLK = 30 MHz.

Pin connecting:
Connect SPI master on board to SPI slave on other board

    Master - SPI0                  Slave - SPI0   
Pin Name   Board Location      Pin Name   Board Location            
MISO       J2 pin 6            MISO       J2 pin 6                     
MOSI       J2 pin 7            MOSI       J2 pin 7                
SCK        J2 pin 5            SCK        J2 pin 5                 
SSEL0      J2 pin 8            SSEL0      J2 pin 8
GND        J1 pin 4            GND        J1 pin 4
Prepare the Demo
  1. Connect a micro USB cable between the PC host and the CMSIS DAP USB port on the board

  2. Open a serial terminal with the following settings:

    • 9600 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.

Running the demo

The log below shows the output of the hello world demo in the terminal window:

This is SPI interrupt transfer slave example.

Slave is working....

The received data are:
  0x00  0x01  0x02  0x03  0x04  0x05  0x06  0x07  0x08  0x09  0x0A  0x0B  0x0C  0x0D  0x0E  0x0F
  0x10  0x11  0x12  0x13  0x14  0x15  0x16  0x17  0x18  0x19  0x1A  0x1B  0x1C  0x1D  0x1E  0x1F
  0x20  0x21  0x22  0x23  0x24  0x25  0x26  0x27  0x28  0x29  0x2A  0x2B  0x2C  0x2D  0x2E  0x2F
  0x30  0x31  0x32  0x33  0x34  0x35  0x36  0x37  0x38  0x39  0x3A  0x3B  0x3C  0x3D  0x3E  0x3F
Slave interrupt transfer succeed!

LPCXpresso860MAX
Hardware requirements
  • Micro USB cable

  • Two LPCXpresso860MAX boards

  • Personal Computer

Board settings

Pin connecting:
Connect SPI master on board to SPI slave on other board

    Master - SPI0                  Slave - SPI0   
Pin Name   Board Location      Pin Name   Board Location            
MISO       J1 pin 10           MISO       J1 pin 10                     
MOSI       J1 pin 8            MOSI       J1 pin 8                
SCK        J1 pin 12           SCK        J1 pin 12                 
SSEL0      J1 pin 6            SSEL0      J1 pin 6
GND        J1 pin 14           GND        J1 pin 14
Prepare the Demo
  1. Connect a micro USB cable between the PC host and the CMSIS DAP USB port on the board

  2. Open a serial terminal with the following settings:

    • 9600 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.

Running the demo

The log below shows the output of the hello world demo in the terminal window:

This is SPI interrupt transfer slave example.

Slave is working....

The received data are:
  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
  0x20  0x21  0x22  0x23  0x24  0x25  0x26  0x27  0x28  0x29  0x2A  0x2B  0x2C  0x2D  0x2E  0x2F
  0x30  0x31  0x32  0x33  0x34  0x35  0x36  0x37  0x38  0x39  0x3A  0x3B  0x3C  0x3D  0x3E  0x3F
Slave interrupt transfer succeed!