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.

MSPM0G1105: Can all the GPIO be configured as edge trigger ?

Part Number: MSPM0G1105

Hi team,

My customer is evaluating MSPM0G1105TPTR. They ask if all the 44 GPIO can be configured as edge trigger ? They want to use this feature to detect button.

  • Hi Jerry,

    Is the desired behavior to just fire a CPU interrupt when any of the GPIOs sees an edge? If so the answer is yes, you can configure all of the GPIOs in a  given port to cause a CPU interrupt using the CPU_INT IMASK register. Setting any of the 32 bits in that register causes the corresponding GPIO number in that port (Px0 to Px31), to trigger the associated CPU interrupt. 

    Set the bit fields in the POLARITY register for the GPIOs they wish to use to 0x3, to cause it to trigger an event or interrupt on both rising and falling edges.

    There are two main points of concern with using every single GPIO:

    1. The SWDIO and SWCLK pins will be reprogrammed, which means you won't be able to access debug on the device unless you force a reset and hold the device there (because your application code will disable the SWD pin functionality, and on reset the IOMUX is returned to SWD mode). This also means that the device always powers up with the internal pullup/pulldown resistors enabled, so they need to be sure that won't be an issue for their application. 
    2. PA18 is by default BSL invoke. If this is being used as an actual GPIO, they should be cautious that BSL invocation is not left enabled, unless they can assure that this pin will be low during device startup. By default, if PA18 is high at startup, it will boot the device in BSL mode. NONMAIN memory in the MSPM0 offers the option to set this to a different pin, change the polarity, or disable this feature entirely. 

    Best Regards,
    Brandon Fisher