Jump to main content

##

# 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 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 | Description
--- | ---
pic32mx470_curiosity_freertos.X | Curiosity PIC32MX470 Development Board

### Setting Up Curiosity PIC32MX470 Development Board

- To run the demo, the following additional hardware are required:
  - Two EEPROM 4 Click boards
- 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