SLAAE88D December   2022  – September 2025 MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0H3216 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1 Introduction
    1. 1.1 Bootloader Concept
    2. 1.2 MSPM0 Bootloader Structure
      1. 1.2.1 ROM-Based BSL
      2. 1.2.2 ROM-Based BSL With Flash-Based Plug-In Interface
      3. 1.2.3 Flash-Based Secondary BSL
    3. 1.3 MSPM0 BSL Features and Demos Summary
  5. 2BSL Host Implementation Summary
  6. 3BSL Configuration in Non-Main (Configuration NVM)
    1. 3.1 Non-Main Introduction
    2. 3.2 Example – Disable PA18 BSL Invoke Pin With Sysconfig
  7. 4Bootloader Host
    1. 4.1 MCU Host Code Introduction
      1. 4.1.1 Hardware Connection
      2. 4.1.2 TXT to Header File Conversion
      3. 4.1.3 Step-by-Step Using the Demo
    2. 4.2 PC Host Example
      1. 4.2.1 Prepare the Image File and Password File
      2. 4.2.2 Steps to Using the GUI
  8. 5Bootloader Target
    1. 5.1 Default ROM-Based BSL
      1. 5.1.1 UART Interface
      2. 5.1.2 I2C Interface
    2. 5.2 Flash-Based Plug-In Interface Demos
      1. 5.2.1 UART Interface
        1. 5.2.1.1 Step by Step Using the Demo
        2. 5.2.1.2 How to Debug the Plug-In Interface Code
      2. 5.2.2 I2C Interface
      3. 5.2.3 SPI Interface
      4. 5.2.4 CAN Interface
    3. 5.3 Secondary BSL Demo
      1. 5.3.1 Flash-Based Secondary BSL Start From 0x1000
      2. 5.3.2 Flash-Based Secondary BSL Start From 0x0000
        1. 5.3.2.1 Flash-Based 0x0 Address BSL Demo for MSPM0C
        2. 5.3.2.2 Live Firmware Update
  9. 6Common Questions
    1. 6.1 Linker File Modification
    2. 6.2 Factory Reset by CCS to Recover Device
  10. 7References
  11. 8Revision History

Step-by-Step Using the Demo

The following steps describe how to program an MSPM0 MCU using a LP-MSPM0G3507 as the host. A MSPM0G3507 is used as target device, hardware BSL invoke and UART communication are used in this demo. A similar process can be used to program other MSPM0 devices through either UART, I2C or SPI by using the proper hardware connections (see Table 4-10).

Note: When send a wrong BSL password, the device can go into sleep for 2 seconds and the interface (UART/I2C) is disabled. For UART this seems like a send a 0x00 after the core response and the host side just ignore this byte. The interface can be enabled after 2 seconds with default settings, if you change the UART baud rate before, you need to reconfigure this again.
  1. Connect the hardware signals as shown in Figure 4-3. This example uses UART, so the I2C signals do not need to be connected.
     Hardware Signal
                        Connections Figure 4-3 Hardware Signal Connections
  2. Connect the jumpers as shown in Table 4-5.
    Table 4-5 Jumper Connections
    Board Mode Jumpers to Connect Jumpers to Disconnect
    LP-MSPM0G3507 Host J101(Power and debug), J4,J7(LED) None
    LP-MSPM0G3507 Target J7,(LED) J21, J22 (UART to J101 XDS110) All in J101
    Note: If use LP-MSPM0L1306 as target board, jumper on J6 must be removed.

     

  3. Import the BSL host with UART demo that available in the folder < …\mspm0_sdk_xxxx\examples\nortos\LP_MSPM0G3507\bsl\bsl_host_mcu_to_mspm0g1x0x_g3x0x_target_uart> into CCS.
     Import Host Project Into
                        CCS Figure 4-4 Import Host Project Into CCS
  4. Modify the password in the bsl_password array in main.c, if needed. The default password are all 0xFF with 32 bytes. The target BSL password is defined in the NON-MAIN memory. For more information, see the technical reference manual [1] or [2] or the bootloader user's guide [3].
  5. If just want to run the demo and no need to make any change of the application code, the BSL host demo include default firmware file application_image_uart.h that generate from demo named bsl_software_invoke_app_demo_uart) and the step 6 to 8 can be skip.

  6. Import the application code( here can use the demo bsl_software_invoke_app_demo_uart) into CCS and generate the target device firmware in TI-TXT hex format (see Figure 4-5).
     Generate TI-TXT Hex File
                        in CCS Figure 4-5 Generate TI-TXT Hex File in CCS
  7. Run the GUI MSPM0_BSL_GUI.exe to convert the target device firmware .txt format to a header file. For more details, see Section 4.1.2.
  8. Copy the contents of the output file xxx.h file by the GUI into the host project file application_image.h.
  9. Build the host project and download to LP-MSPM0G3507.
  10. Push button S2 on the host board to initiate the firmware update. If there is an error, LED1 turns on.