1.13 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 NameDescription
pic32mx470_curiosity_freertos.XMPLABX project for Curiosity PIC32MX470 Development Board

Setting Up the Hardware

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

Project NameDescription
pic32mx470_curiosity_freertos.XCuriosity PIC32MX470 Development Board

Setting Up Curiosity PIC32MX470 Development Board

  • To run the demo, the following additional hardware are required:
  • 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: