SLAAEO5 September 2024 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0C1104-Q1 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1519 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3519 , MSPM0L1105
The MSPM0 is a low-power MCU that offers a dense feature set at a low cost. To balance the performance and power consumption of the peripherals, they are separated into two separate power domains (1) known as PD0 and PD1. Peripherals within the PD1 domain consist of the CPU, memories, and high performance peripherals and PD0 consist of the low speed, low-power peripherals. Upon entering a low-power mode stronger than SLEEP, PD1 peripherals are disabled to decrease power consumption. This causes the AHB bus to not be discoverable, however, within the MSPM0 contains a peripheral known as the debug subsystem that allows the AHB to be discoverable again. By having the debug subsystem separate from the M0+ core, it provides the debugger or programmer a method of regaining access to the device in scenarios of misconfiguration or low-power state. Accessing the device while in a low-power state or reconfiguring it into a "known state" is done through a set of registers known as the access ports. This application note goes in-depth with the SEC-AP and PWR-AP specifically as they are the vital components for enabling the formerly discussed features. Alongside the debug subsystem, the flashctl and its different protection scheme between devices families, and unique reset via the AIRCR is discussed as well.