SLAAEO5 September   2024 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0L1105

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction to the Debug Subsystem and MSPM0
    1. 1.1 Access Ports of MSPM0
      1. 1.1.1 Advance High-Performance Bus Access Port
      2. 1.1.2 Configuration Access Port
      3. 1.1.3 Security Access Port
      4. 1.1.4 EnergyTrace Access Port
      5. 1.1.5 Power Access Port
    2. 1.2 Behaviors With the MSPM0 in a Blank/Low-Power State
  5. 2Proper SWD Initialization Sequence
  6. 3PWR-AP
    1. 3.1 Enabling Low-Power Mode Debugging With MSPM0
    2. 3.2 Modifying the Reset Behavior of MSPM0
      1. 3.2.1 Wait for Debug
      2. 3.2.2 Halt on Reset
      3. 3.2.3 INRST Behavior
    3. 3.3 Register View
  7. 4SEC-AP
    1. 4.1 DSSM Commands
      1. 4.1.1 Factory Reset
      2. 4.1.2 Mass Erase
      3. 4.1.3 Password Authentication
      4. 4.1.4 Data Exchange
      5. 4.1.5 Wait for Debug
      6. 4.1.6 Custom DSSM Command
    2. 4.2 DSSM Flow
    3. 4.3 Register View
  8. 5Understanding Flash in MSPM0
    1. 5.1 Protection of Flash Memory Across MSPM0
    2. 5.2 Clearing the STATCMD Register
    3. 5.3 Ideal Programming Flow for MSPM0
  9. 6The Resets of MSPM0
  10. 7Summary
  11. 8References

Clearing the STATCMD Register

As the MSPM0 device family expands with newer SOCs, the best practice when adding support for flash evolves as well. With all variants of the MSPM0, it is best practice to clear the STATCMD register before any flash operation is performed. The register is cleared by writing the clear status command (0x00000005h) to the CMDTYPE register and then executing it. Upon execution of the command, any previous content in the STATCMD register will be cleared. It is important to note that clearing the STATCMD register will also reset the CMDWEPROTx registers previously discussed.

An example of clearing the STATCMD register when attempting to perform a sector erase can be seen in the following steps:

  1. Write the clear status (0x00000005h) command to the CMDTYPE register.
  2. Execute the command by writing the execute key (0x00000001h) to the CMDEXEC register.
  3. Poll for completion by checking the STATCMD register.
    1. Upon completion STATCMD will be empty.
  4. Unprotect the sector of memory by setting the desired bit within CMDWEPROTx to zero.
  5. Set the CMDTYPE register perform an erase that is a sector in size (0x00000042h).
  6. Set the CMDADDR register equal to the desired address of operation.
  7. Execute the command by writing the execute key (0x00000001h) to the CMDEXEC register.
  8. Poll for completion by checking the STATCMD register.