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.

CC3220SF: GPIO state retention

Part Number: CC3220SF

Tool/software:

Hello,

I want to retain the previous state of GPIO after reset. The state of GPIO should not be changed during hibernate reset and after reset the state should be the same as before reset.

I saw this post about GPIO retention: https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/915884/cc3220mod-gpio-retention-in-hibernate-and-power-consumption

Where they mentioned by using .syscfg how pins could be selected and their pin park states can be changed according to the requirement.

I need one GPIO output state to remain high even after hibernate reset. But still it goes to low after hibernate reset (PRCMHibernateCycleTrigger())

This is my .syscfg setting for Power driver.

Please let me know the process for GPIO output state retention.

Regards,

Swapnil

  • Hi Swapnil,

     What you need to configure is gpio retention which it looks like you are doing all pins and Jtag and sflash. This will in turn set the retention for the pins whenever Power_shutdown()  is callled to hibernate using prcmhibernateenter()

    However it seems as though since you are calling hibernation outside of the Power driver context. PRCM retention call is never called thus no retention.

    You will need to call the PRCM retention API before your hibernation call in your code.

    Best,

    Rogelio

  • Hey Rogelio,

    Thank you for your reply, I am calling Power_shutdown(0, 100000), in my MCU reboot routine but chip hangs in functionPRCMIORetentionEnable() here.

    //
    // 0b'0 in bit 5 for JTAG PADS
    // 0b'0 in bit 0 for all other IOs
    //
    HWREG(OCP_SHARED_BASE + OCP_SHARED_O_GPIO_PAD_CMN_CONFIG) &= ~(0x00000023);

    Thanks and Regards,

    Swapnil

  • Hello Rogelio,

    Just an update, I tried to change HWREG command to this, HWREG(OCP_SHARED_BASE + OCP_SHARED_O_GPIO_PAD_CMN_CONFIG) &= ~(0x00000003), where it will not reset the JTAG PADS. The function went through and also did MAP_PRCMHibernateCycleTrigger(). But then the Chip is not waking up. It remain in Hibernate.

    It doesn't restart after MAP_PRCMHibernateCycleTrigger(), if I do the IO retention.

    Regards,

    Swapnil

  • Hello Rogelio,

    As mentioned in this post, https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/915884/cc3220mod-gpio-retention-in-hibernate-and-power-consumption

    Does retention is possible only with input GPIO pins and Outputs GPIO pins remains in Hi-Z state even if tried to retain their High state?

    Regards,

    Swapnil