XDMAC with QSPI Application on SAM E70 Xplained Ultra Evaluation Kit
Download
Description:
This application demonstrates the usage of Direct Memory Access Controller (XDMAC) with QSPI on Cortex-M7 based MCU (SAM E70). The application writes and reads 80KB data into the External Serial Flash memory using the QSPI, with and without using XDMAC.
Modules/Technology Used:
- Peripheral Modules
- EFC
- MPU
- QSPI
- XDMAC
- SYSTICK
Hardware Used:
- SAM E70 Xplained Ultra Evaluation Kit
- Logic Analyzer or Oscilloscope
Software/Tools Used:
This project has been verified to work with the following versions of software tools:
Refer Project Manifest present in harmony-manifest-success.yml under the project folder firmware/src/config/sam_e70_xult
- Refer the Release Notes to know the MPLAB X IDE and MCC Plugin version. Alternatively, Click Here.
- Any Serial Terminal application like Tera Term terminal application.
Because Microchip regularly update tools, occasionally issue(s) could be discovered while using the newer versions of the tools. If the project doesn’t seem to work and version incompatibility is suspected, It is recommended to double-check and use the same versions that the project was tested with. To download original version of MPLAB Harmony v3 packages, refer to document How to Use the MPLAB Harmony v3 Project Manifest Feature
Setup:
- Connect the micro USB to the Host computer
- Connect the Saleae Logic Analyzer and establish a connection with the Host PC
- Configure the four channels to measure the QSPI throughput as follows
- Channel 0 is PA19, which is configured to Set and Clear the pin before and after the QSPI Write without DMA
- Channel 1 is PB2, which is configured to Set and Clear the pin before and after the QSPI Read without DMA
- Channel 2 is PC31, which is configured to Set and Clear the pin before and after the QSPI Write with DMA
- Channel 3 is PB3, which is configured to Set and Clear the pin before and after the QSPI Read with DMA
Programming hex file:
The pre-built hex file can be programmed by following the below steps.
Steps to program the hex file
- Open MPLAB X IDE
- Close all existing projects in IDE, if any project is opened.
- Go to File -> Import -> Hex/ELF File
- In the “Import Image File” window, Step 1 - Create Prebuilt Project, Click the “Browse” button to select the prebuilt hex file.
- Select Device has “ATSAME70Q21B”
- Ensure the proper tool is selected under “Hardware Tool”
- Click on Next button
- In the “Import Image File” window, Step 2 - Select Project Name and Folder, select appropriate project name and folder
- Click on Finish button
- In MPLAB X IDE, click on “Make and Program Device” Button. The device gets programmed in sometime
- Follow the steps in “Running the Demo” section below
Programming/Debugging Application Project:
- Open the project (qspi_xdmac_read_write/firmware/sam_e70_xult.X) in MPLAB X IDE
- Ensure “SAM E70 Xplained Ultra” is selected as hardware tool to program/debug the application
- Build the code and program the device by clicking on the “Make and Program Device” button in MPLAB X IDE tool bar
- Follow the steps in “Running the Demo” section below
Running the Demo:
- Start capturing samples using the Logic Analyzer Software
- Reset the hardware to start the application run from the beginning
- Stop capturing the sample in the Logic Analyzer Software
- Verify the the above mentioned four GPIO Pin waveforms and timestamps to see the QSPI performance with and without using the XDMAC for the following cases
- Write 80KB of data to external serial Flash without using the DMA
- Read 80KB of data from the external serial Flash without using the DMA
- Write 80KB of data to external serial Flash using the DMA
- Read 80KB of data from the external serial Flash using the DMA
- LED1 toggles on success else turns ON if any error
Comments:
- Reference Application Note: Using XDMAC with QSPI on CORTEX-M7 MCUs Using MPLAB Harmony v3
- Getting Started Training Module: Getting Started with Harmony v3 Peripheral Libraries on SAM E70 MCUs
- This application demo builds and works out of box by following the instructions above in “Running the Demo” section. If you need to enhance/customize this application demo, you need to use the MPLAB Harmony v3 Software framework. Refer links below to setup and build your applications using MPLAB Harmony
- How to Setup MPLAB Harmony v3 Software Development Framework
- How to Build an Application by Adding a New PLIB, Driver, or Middleware to an Existing MPLAB Harmony v3 Project
- MPLAB Harmony v3 is also configurable through MPLAB Code Configurator (MCC). Refer to the below links for specific instructions to use MPLAB Harmony v3 with MCC.
Revision:
- v1.6.0 - Regenerated and tested the application
- v1.5.0 Removed MHC support, Regenerated and tested application.
- v1.4.0 Added MCC support, Regenerated and tested application.
- v1.3.0 regenerated and tested the application
- v1.2.0 regenerated and tested the application
- v1.1.0 regenerated and tested the application
- v1.0.0 released demo application