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.

MSPM0L1105: DGS20 (VSSOP-20): I2C SCL and NRST coexistence question

Part Number: MSPM0L1105
Other Parts Discussed in Thread: BQ4050, MSPM0L1306

Tool/software:

I am looking at having the MSPM0L1105TDGS20R talk to the BQ4050 over I2C.  This is a battery-powered application, where the battery powers an LDO that supplies 3V3 to the MSPM0.  We noticed that the only option for I2C SCL pin on the DSG20 package is pin 5, which is also the NRST pin.

I am almost certain from the datasheet and TRM that once pin 5 is multiplexed to another function, like I2C SCL, then the NRST function is disabled completely (until device is reset).  Meaning holding the pin low indefinitely won't ever reset the chip.  Is this correct?

How can I go about debugging this application over JTAG?  It seems I will need to pull MSPM0 VDD low, then pull NRST pin low, and bring VDD back to 3.3V.  This is because pin 5 is mux'd to NRST at start up.  Then the debugger can flash the MSPM0.  Once the debugger halts the application at its entry point, I need to disconnect the debugger from the NRST line in order for I2C to work properly.  I'm hoping at that point I can step through the program like normal.

This also complicates production programming.  The first flash attempt will be easy since the NRST pin is never reconfigured, if we ever have to reprogram the board, we have to be able to power sequence the MSPM0 as I described above.

Am I correct in this understanding?  Or how was TI envisioning this to work?

Regards,

Charlie

  • Hello Charlie,

    NRST pin is not necessary when you do programming or debugging. Even though you disable reset function of NRST pin in your code and disconnect NRST pin from the degger you used, you can debug your code normally.

    Best Regards,

    Janz Bai

  • Janz,

    Wow, I could have sworn that NRST was necessary to debug, but I just tried launching a debug session on my LaunchPad's target MSPM0L1306 with the NRST line jumper removed, and it does debug normally.  However, I have had issues with this chip in the past where if something is in an inconsistent state, I have had the IDE prompt me about a Force Reset, which in this chip wouldn't work if NRST were configured as I2C SCL.  Honestly, just forcing a reset often doesn't work, and I have to manually pull the BSL line high first, before clicking the dialog option to Force Reset.

    That brings me to another question, is there any way in Code Composer Studio to tell the LaunchPad debugger to try to enter BSL mode?  During development in the past, I have accidentally soft-bricked the MSPM0 multiple times, and each time, I have had to manually pull the BSL Invoke line high in order to enter BSL to recover the chip.  I see the LaunchPad has a BSL jumper, so I was wondering if CCS had an option of invoking BSL in the debugger.

    Thank you,

    Charlie

  • Hello Carlie,

    Because you pull up BSL and then click force reset, MCU will enter into BSL mode in its reset, then you can download code again. But if you just force reset, MCU will still operate your current code (maybe have some error) to let you can't download code in its reset, this is my thoughts about this issue.

    There are three methods to trigger BSL: hardware invoke (PA18 default), blank chip detection and software trigger (in your code). I am sorry that I don't remember CCS have an option to trigger MCU BSL directly.

    If pull up BSL pin and force reset can help you resolve this issue, you can continue to use it. You can also use another method: factory reset. But factory reset need you connect NRST pin of MCU with NRST pin of debugger, and when operating factory reset, you need connect NRST pin to GND, which means you need connect NRST pin of MCU with NRST pin of debugger, and connect NRST pin of MCU to GND. If you are interested in this method, you can search it on E2E.

    Best Regards,

    Janz Bai