Low Power Application on SAM E54 Using MPLAB® Harmony v3 Peripheral Libraries: Step 4

Last modified by Microchip on 2023/11/09 09:08

Configure Power Manager (PM) Peripheral Library

Click on the Resource Management [MCC] tab. In the Device Resources, expand Harmony > Peripherals > PM.

Double click or drag and drop PM to add the PM peripheral library to the project graph.

add PM


Back to top

Select the PM peripheral library in the Project Graph window and verify the default configuration as shown below.

Configuration Options pane

This completes the configuration of the PM peripheral library. In Standby mode, the CPU as well as the peripherals (except those which are configured to run in Standby mode) are stopped. The Standby Sleep mode provides very low power consumption with little overhead on wake-up time. CPU enters Standby mode by executing the Wait for Interrupt (WFI) instruction and exits from the Standby mode when an interrupt is generated.


Back to top

Configure SUPC Peripheral Library

Click on the Resource Management [MCC] tab. In the Device Resources, expand Harmony > Peripherals > SUPC.

Double-click or drag and drop SUPC to add the Supply Controller (SUPC) peripheral library to the project graph.

add SUPC

Select the SUPC peripheral library in the Project Graph window and verify the default configuration as shown below.

SUPC configuration options

This completes the configuration of the SUPC peripheral library. The SUPC manages the voltage reference and power supply of the device. It also controls the voltage regulators for the core domain. Voltage regulators need to be configured for low power applications, which helps in reducing power consumption.


Back to top

Configure Non-volatile Memory Controller (NVMCTRL) Peripheral Library

The NVMCTRL is added by default to the project graph. Select the NVMCTRL peripheral library and configure it as shown below.

  • Set the Power Reduction Mode During Sleep to FULLAUTO. This bit configures the NVMCTRL to wake-up the Flash memory when the CPU wakes up from Standby mode, which allows it to reduce device wake-up time.
  • Disable the NVM Line Cache for AHB0 and AHB1 to reduce the device's wake-up time. When the cache is enabled, the device will look for an instruction to fetch upon interrupt in the cache at first. If the instruction is found, the device wakes up quicker, but if not, a cache miss occurs and wake-up time is longer. This option is good to enable when the instruction to fetch upon an interrupt is always stored in the cache memory, which is not the case here, as we have different interrupt sources.

NVMCTRL  configuration options

This completes the configuration of the NVMCTRL peripheral library. The NVMCTRL is set to optimize the performances for waking the device up while keeping the power consumption as low as possible.


Back to top

Configure LED and Wake-up Test Pins

Open the Pin Configuration tabs by clicking Project Graph > Plugins > Pin Configuration.

Tools > Pin Configuration menu

Once the MPLAB® Code Configurator (MCC) Pin Settings window is opened, scroll-down to pin number PC18, and then configure the pin as shown below:

  • Set the Pin Number #72 as GPIO:

    • Pin ID = PC18
    • Custom Name = LED0
    • Function = GPIO
    • Direction = Out
    • Latch = High

Pin Settings window

In the above step, the user LED is configured as per the following USER_LED design schematic on the SAM E54 Xplained Ultra Evaluation Kit.

user led schematic


Back to top

Rename the Default main File

Under the Project Graph tab, click on System, and configure as below to give a name of your liking to the default template main file generated by MCC.

main file name setup

The name of the default main.c is changed to main_e54.c to indicate that the referred main.c is for the Low Power application on SAM E54.

Back to top