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.

MSPM0G3107: About PIN settings for communication

Part Number: MSPM0G3107
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi team,

In MSPM0G3107SDGS20R, we confirmed that UART×2, I2C×1, and SPI×1 can be used simultaneously.

However, with the following pin settings, the I2C and BSL_invoke use pins [15] are covered, and it seems that they cannot be used together.

Is there a pin setting that can simultaneously implement UART×2 (×1 if BSL can be used together), I2C×1, SPI×1, and BSL_invorke?

If so, please let me know.

Thank you,

Kenley

  • Hi,

    On the other thread, the BSL and application UART can share the same port. Will it solve your issue here?

    Best regards,

    Cash Hao

  • Hi Cash,

    We understand that BSL and UART can be used together.


    They would like to ask if BSL_invoke and I2C can be used together at pin [15].
    BSL_invoke requires a pulldown so that it goes low when there is no external input, while I2C requires an external pullup.

    It seems difficult to use this combination, but is it possible?

    If not, is there a pin setting that can simultaneously implement UART × 1, SPI × 1, I2C × 1, and BSL_invoke?

    Is there a pin that can reassign BSL_invoke?

    Best regards,

    Kenley

  • Hi Kenley,

    In the NON-MAIN registers BSLCONFIG0 you can configure the BSL. Here you can change BSL Invoke pins or change the invoke level. If you change this status then you can have the I2C pull-up on the device (the device will need to be reprogrammed for non-main and a POR/BOOTRST will need to happen for non-main changes to take effect)

    Regards,
    Luke

  • Hi Luke,

    Thank you for your support.

    1. Does the need to reprogram the non-main device mean that the application needs to be reprogrammed in order to access the non-main register and change the BSL_invoke from a user-created application?


    2. Also, if customer enable non-main change with POR/BOOTRST and then turn the power on again, is the changed BSL_invoke content retained? 

    Thank you.

    Regards,

    Kenley

  •  Hi,

    1. It does not need to program the device twice. If customer need to program MAIN and NONMAIN at the same time. On the programmer side, they need to configure the Erase configuration to "erase both MAIN and NONMAIN memory". Then customer can program their chip with both MAIN and NONMAIN information at one programming process.

    2. After you program the NONMAIN with new configuration. The MCU will need a POR/BOOTRST to let the new configuration take effect. The content in the NONMAIN is not going to be changed until next erase and program cycle. 

    Best regards,

    Cash Hao

  • Hi Cash,

    Thank you for your reply.

    Seems like customer is confused how to set the BSL configuration in the non-main.

    Is it possible to use sysconfig or they should change the code directly to write to the registers?

    If they have to change the code, could you share to us how to do it ?

    Thank you,

    Kenley

  • Hi,

    Sysconfig can be used for NONMAIN configuration. 

    Best regards,

    Cash Hao

  • Hi Cash,

    Thank you.

    However, i could not find any settings regarding the following.

    Such as logic level, GPIO port/pin and etc.
      

    Best regards,

    Kenley

  • Hi,

    These setting is all in Sysconfig NVM configuration which is the page I showed before. 

    Best regards,

    Cash Hao

  • Hi Cash,

    Found it. Thank you.

    By the way, is it possible to change the sysconfig configuration and re-program the device and do the BOOTRST to activate the new configuration of the NONMAIN ?
    Or customer should always need to erase the NONMAIN memory before changing the configuration and re-program it ?

    Regards,

    Kenley

  • Hi Kenley,

    I do not get your point. 

    If customer want to change NONMAIN memory, they need to select erase NONMAIN on the programmer side first. So, the programmer will erase the NONMAIN and download the new image with NONMAIN information to the MCU. After the programming, the new NONMAIN configuration is not taking effect yet. It still requires the MCU at least runs a BOOTRST to let the new NONMAIN configuration take effect. 

    Best regards,

    Cash Hao