Link Search Menu Expand Document

MCHP

SPI Driver synchronous - multi instance

This example demonstrates how to use multiple instances of the SPI driver in synchronous mode to communicate with multiple EEPROMs in an RTOS environment

Description

This example writes and reads data to and from two separate EEPROMs connected over different SPI buses by using the multi instance feature of a synchronous SPI driver. The example also demonstrates how to setup two different instance transfers at different baud rates.

The example has three RTOS threads for the purpose:

  • APP_EEPROM1_Tasks:
    • This thread performs write-read operation on the first EEPROM every 1 second
  • APP_EEPROM2_Tasks:
    • This thread performs write-read operation on the second EEPROM every 1 second
  • APP_MONITOR_Tasks:
    • This thread checks the status of transfers on both the EEPROMs and turns on the LED if the transfers are successful
    • It checks the status of the transfers every 100 milliseconds

Downloading and building the application

To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions.

Path of the application within the repository is apps/driver/spi/sync/spi_multi_instance/firmware .

To build the application, refer to the following table and open the project using its IDE.

Project Name Description
pic32mx470_curiosity_freertos.X MPLABX project for Curiosity PIC32MX470 Development Board
   

Setting up the hardware

The following table shows the target hardware for the application projects.

Project Name Board
pic32mx470_curiosity_freertos.X Curiosity PIC32MX470 Development Board
   
  • To run the demo, the following additional hardware are required:

Setting up Curiosity PIC32MX470 Development Board

  • Connect mini USB cable to the ‘Debug USB’ connector(J3) on the board to the computer
  • Install two EEPROM 4 Click boards on to the two mikroBUS sockets(J5 & J10) of Curiosity PIC32MX470 Development Board
  • Note: Ensure that the series resistors on the mikroBUS headers are of value 0 Ohms

Running the Application

  1. Build and program the application using its IDE
  2. The LED turns ON when the data read from the EEPROMs matches with the data written to the EEPROMs

Refer to the following table for LED name:

Board LED Name
Curiosity PIC32MX470 Development Board LED1
   


Copyright © 2020 Microchip Technology.