This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSPM0C1103: (i) RESET pin conflict with SCL and (ii) BSL

Part Number: MSPM0C1103
Other Parts Discussed in Thread: MSPM0L1304, , UNIFLASH, SYSCONFIG

Hi, 

1- In a 16 pin MSPM0C1103SDYYR, I decided to use pin 12 SWCLK as digital input after programming, but it locks me out (somehow microcontroller goes into bricking mode). I cannot perform reset factory. Please provide a set of instruction to resolve such issue.

2- In a 16 pin MSPM0C1103SDYYR, I used pins 3 as SDA and pin 4 (NRST pin as well) as SCL for I2C communication with pins 4 as SDA and pin 5 (NRST pin as well) as SCL of a 20 pin MSPM0L1304TDGS20R microcontroller. I connected 4.7k Ohm as pull up for SDA and SCL. 

Warning for MSPM0L1304:0971104b-94b7-4c67-abcf-bbac67a542eb.png

Error and warning for MSPM0C1103:

image.png


    a) Any collision or conflict to use SCL on NRST pin on MSPM0C1103 and MSPM0L1304? 
    b) can I connect a 10nF capacitor to ground for reset pin still? 
    c) or hardware reset is not possible at power up and I should remove that 10nF to SCL/NRST pin, and software reset should be performed? 
    d) Is it possible to program MSPM0L1304 through MSPM0C1103 using I2C and Flash-based secondary bootloader (BSL)? 
    e) Any example code or document or instruction for such BSL?

3- Since  MSPM0C1103 does not come with a permanent ROM-based bootloader like the larger MSPM0L or MSPM0G families, I decided to use UART (pins 9-10) to flash MSPM0C1103. I must first program a Flash-based secondary bootloader (BSL) into the device memory. I am aware that I still need to use SWD (pins 11 and 12) at least once to install this custom bootloader initially. I did, and I fell into bricking mode of MSPMOC1103 mentioned in item 1 above.

 

Thanks in advance,

Kind regards,

  • HI Mehrad,

    Repurposing the programming pins will not allow the device to connect to the debugger unless re-enabled before the application executes. The following procedure should allow you to recover the device:

    1. Disconnect power
    2. Hold NRST low
    3. Reconnect power
    4. Launch a projectless debug session within CCS
    5. Run the Factory reset manual script
    6. Release NRST when when prompted to hold it by the GEL script console

    NRST is tied to PA1 unless disabled in software. If not using NRST, the 10nF capacitor on PA1 is not required. If NRST is enabled, the capacitor should also be present. However, enabling NRST and another pin function will cause the device to reset when the pin is a logic 0. The 10nF capacitor without NRST functionality may interfere with I2C communication on the SCL line.

    The ROM bootloader on devices that include it, natively supports UART and I2C. It is possible to place a secondary Flash bootloader on both the MSPM0L1304 and MSPM0C1103. There are code examples in the SDK for both device families. We also have a MSPM0 Bootloader User Guide with a section on secondary bootloaders.

    MSPM0C1104_Flash_Bootloader_examples.zip

    MSPM0L1306_Bootloader_examples.zip

    Are you able to run the diagnostic read script in CCS? If so, what does it return?

    Best Regards,
    Brian

  • Thanks, Brian, for your patience!

    1- Please explain in more detail "4. Launch a projectless debug session within CCS". I am using CCS Theia; Version: 20.5.0.28__1.11.0; Default VS Code API: 1.102.3. And how to generate/make a projectless debug session?

    2- Please explain in more detail "5. Run the Factory reset manual script". Where to find such menu/option to run? can it be done using UniFlash?

    3- Just for double-check item "6. ....when prompted to hold it by the GEL script console", I should release NRST GEL script console at bottom of CCS window says hold it? 

    4- Right now, I do not have such locking out scenario in hand or I did not take screenshot out of it. Basically I could not reflash it, and it asked me for reset factory.

    Kind Regards,

  • BTW: How to get ride of SYSCTL warning in the above 2 screenshot since I am using NRST pin for I2C SCL? Also I remove 10nF capacitor. Since I remove hardware reset by using NRST pin for I2C SCL, how reset happens?  should I add some line of code in main.c (what should it be?) or checkmark a setting in SysConfig?

  • Here is how to launch a project-less debug session

    (I had to click the little arrow in a circle and add a configuration to get it to work)

    https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html

  • Hi Mehrad,

    You can disable NRST in the SYSCTL section of SysConfig:

    The following shows how to run the available GEL scripts for a device in CCS:

    1. How to open a projectless debug session: right-click on the .ccxml file in workspace->project->targetconfigs
    2. How to view all available device scripts: Left click on the scripts tab at the top of the IDE
    3. How to add GEL console View: Go to View->Console->GEL Output

    The Manual Factory Reset script be run in CCS and Uniflash:

    • Uniflash
    • CCS

    When executing the script NRST should be released at the indicated point below (after following the steps in my previous response):

    It should also be noted that changes to pin configurations made in Sysconfig will not take place until after SYSCFG_DL_init() runs. This means you will still have access to the programming pins and NRST pin after the device restarts from a BootRST or stronger reset, but before the application starts running.

    Best Regards,
    Brian