Migrating an MPLAB® Harmony CSP Application From a SAME70 MCU to a SAM9X75 Hybrid MCU Curiosity Development Board

Last modified by Microchip on 2026/01/19 11:05

Introduction

This training module explains how to migrate a QSPI read application based on MPLAB® Harmony v3 from the SAME70 Xplained Ultra board (Arm® Cortex®-M7–based MCU) to the SAM9X75 Curiosity Development Board (Arm926EJ-S™–based SiP). It provides a practical, step-by-step guide to port a QSPI-based application, covering hardware pin mapping, software/firmware changes, verification steps, and a ready-to-use pin-mapping template.

Refer to the "SAM E70 Xplained Ultra User's Guide" and the "SAM9X75 Curiosity User Guide" while preparing the migration.

Gather Required Documentation and Data

  • SAME70 Xplained Ultra:
    • Identify:
      • External flash part number and schematic details (SST26VF032BA)
      • Board signal names and their mapping to SAME70 MCU pins (in the schematics)
  • SAM9X75 Curiosity Development Board:
    • Identify:
      • External flash part number and schematic (SST26VF064BEUIT-104I/MF)
      • QSPI interface pins and the connector where they are exposed (schematics/connector section)
  • Flash Data Sheet (SST26 Family):
    • From the Microchip flash data sheet, collect:
      • Opcode set
      • Timing parameters
      • Page/Sector size
      • Quad-Enable procedure

 Hardware Pin Mapping

The following table maps the QSPI peripheral signals across both development boards and shows their mappings.

QSPI SignalSAME70 Xplained UltraSAM9X75 QSPI1 (Port B)Notes
QSPI_SCK (Clock)PA14PB19Primary clock signal
QSPI_CS (CS0)PA11PB20Chip Select
QSPI_IO0PA13PB21Data line 0
QSPI_IO1PA12PB22Dual/Quad mode data
QSPI_IO2PA17PB23Quad mode data
QSPI_IO3PD31PB24Quad mode data
Information

Migration Note: Flash Memory Upgrade

Migrating from SST26VF032BA (32 Mbit) to SST26VF064BEUIT (64 Mbit) requires rechecking all flash driver parameters based on the new data sheet.

The next section outlines the essential changes.

Migrating to SST26VF064BEUIT Flash Memory

Verify Basic Protocol Compatibility

Both devices belong to the SST26 series, so most protocols are consistent—however, validation is required.

  • Opcode Consistency
    • Confirm that Read, Write-Enable, Sector-Erase, Chip-Erase, and Quad-Mode opcodes match between the two data sheets
  • Mode Settings
    • Ensure Quad-Enable and related configuration commands are identical (Critical for high-speed graphics applications)

Update All Driver Parameters

Every parameter related to memory geometry must be updated in the driver/MCC configuration.

ParameterSST26VF032BASST26VF064BEUITImpact
Total Size32 Mbit (4 MB)64 Mbit (8 MB)Determines maximum address range
Addressing Mode3-byte addressingMay require 3-byte or 4-byte addressingIncorrect mode causes upper memory to be inaccessible
Sector/Block CountBased on 4 MBMust double for 8 MBUsed for erase/write address calculations
Page/Sector SizeCheck data sheetVerify equivalenceEnsures correct erase/write operations

Back to Top


Software/Firmware Changes in MPLAB Harmony v3

Porting from the SAME70 (Arm Cortex-M7) to the SAM9X75 (Arm926EJ-S) requires full re-initialization of peripheral drivers, pin configuration, and QSPI controller settings.

MPLAB Code Configurator (MCC)

  • Create New Project
    • Select SAM9X75D2G as target device
    • MCC will regenerate the device tree and PLIB headers accordingly
  • Clock System (PMC)
    • Reconfigure the Master Clock, PLLs, and Peripheral Clocks required for QSPI

      Information

      Note: SAM9X75D2G clocking is more complex than SAME70 MCUs.

  • GPIO Reconfiguration
    • Remove the SAME70 Pin Manager configuration
    • Add new Pin Manager settings for SAM9X75
    • Assign QSPI pins (e.g., PB19–PB24 for QSPI1) based on the pin mapping table

Replace QSPI Driver

The QSPI peripheral IP is different across SAME70 and SAM9X75.
Therefore, low-level driver code is not compatible.

  • Remove SAME70 QSPI Driver
    • Delete the old driver instance in MCC
  • Add SAM9X75 QSPI Driver
    • Configure with parameters:
      • Flash part number: SST26VF064BEUIT
      • Quad-Enable and Dummy Cycles as per data sheet
      • Memory geometry (8 MB size, page/sector size)
  • Update Application-Level API Calls
    • Harmony API names remain consistent (e.g., DRV_QSPI_Read(), DRV_QSPI_EraseSector())
    • But update the driver handle to the newly created SAM9X75 QSPI instance

Back to Top

Learn More

Back to Top

Collaterals

Back to Top