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.

CC3220MODA: Hibernate current consumption and pin parking

Part Number: CC3220MODA

Hi,

I have a few question regarding hibernate and pin parking on our custom board which is using the CC3220MODASF.

I'm using TI-RTOS, based on the httpget example. I use Power_shutdown trigger hibernate. As far as I understand the call to MAP_PRCMIORetentionEnable in it is enough to activate the pin parking.

I just added the call to PowerCC32XX_disableIORetention(PowerCC32XX_config.ioRetentionShutdown) upon hibernate exit, and the call to Power_enablePolicy()

Here is what I get:

Hibernate with ioRetentionShutdown = PRCM_IO_RET_GRP_1 | PRCM_IO_RET_GRP_2 | PRCM_IO_RET_GRP_3 I get the expected low consumption ~30uA (with a few other components on the board )

However when adding  PRCM_IO_RET_GRP_0 and setting all pins in the parkInfo structure to PowerCC32XX_DONT_PARK or PowerCC32XX_NO_PULL_HIZ. This rise to ~350uA.

I would expect both to have the same consumption as the datasheet specifies: "By default, all I/Os float in the Hibernate state. However, the default state can be changed by SW"

Is there something I am missing?

See config below:

PowerCC32XX_ParkInfo parkInfo[] = {
/*          PIN                    PARK STATE              PIN ALIAS (FUNCTION)
     -----------------  ------------------------------     -------------------- */
    {PowerCC32XX_PIN01, PowerCC32XX_DONT_PARK},    /* GPIO10              */
    {PowerCC32XX_PIN02, PowerCC32XX_DONT_PARK},    /* GPIO11 NFC_WAKEUP              */
    {PowerCC32XX_PIN03, PowerCC32XX_DONT_PARK},    /* GPIO12              */
    {PowerCC32XX_PIN04, PowerCC32XX_DONT_PARK},    /* GPIO13              */
    {PowerCC32XX_PIN05, PowerCC32XX_DONT_PARK},    /* I2C              */
    {PowerCC32XX_PIN06, PowerCC32XX_DONT_PARK},    /* I2C              */
    {PowerCC32XX_PIN07, PowerCC32XX_DONT_PARK},    /* GPIO16 (UC_UART_TX) */
    {PowerCC32XX_PIN08, PowerCC32XX_DONT_PARK},    /* GPIO17 (UC_UART_RX) */
    {PowerCC32XX_PIN13, PowerCC32XX_DONT_PARK},    /* FLASH_SPI_DIN       */
    {PowerCC32XX_PIN15, PowerCC32XX_DONT_PARK},    /* GPIO22              */
    {PowerCC32XX_PIN16, PowerCC32XX_DONT_PARK},    /* TDI (JTAG DEBUG)    */
    {PowerCC32XX_PIN17, PowerCC32XX_DONT_PARK},    /* TDO (JTAG DEBUG)    */
    {PowerCC32XX_PIN19, PowerCC32XX_DONT_PARK},    /* TCK (JTAG DEBUG)    */
    {PowerCC32XX_PIN20, PowerCC32XX_DONT_PARK},    /* TMS (JTAG DEBUG)    */
    {PowerCC32XX_PIN18, PowerCC32XX_DONT_PARK},    /* GPIO28              */
    {PowerCC32XX_PIN21, PowerCC32XX_DONT_PARK},    /* SOP2                */
    {PowerCC32XX_PIN29, PowerCC32XX_DONT_PARK},    /* ANTSEL1             */
    {PowerCC32XX_PIN30, PowerCC32XX_DONT_PARK},    /* ANTSEL2             */
    {PowerCC32XX_PIN45, PowerCC32XX_DONT_PARK},    /* DCDC_ANA2_SW_P      */
    {PowerCC32XX_PIN50, PowerCC32XX_DONT_PARK},    /* GPIO0               */
    {PowerCC32XX_PIN52, PowerCC32XX_DONT_PARK},             /* RTC_XTAL_N          */
    {PowerCC32XX_PIN53, PowerCC32XX_DONT_PARK},    /* GPIO30              */
    {PowerCC32XX_PIN55, PowerCC32XX_DONT_PARK},           /* GPIO1 (FLASH_UART_RX) */
    {PowerCC32XX_PIN57, PowerCC32XX_DONT_PARK},           /* GPIO2 (FLASH_UART_TX) */
    {PowerCC32XX_PIN58, PowerCC32XX_DONT_PARK},    /* GPIO3  UC RESET            */
    {PowerCC32XX_PIN59, PowerCC32XX_DONT_PARK},           /* GPIO4  UC_WAKEUP           */
    {PowerCC32XX_PIN60, PowerCC32XX_DONT_PARK},           /* GPIO5  UC_TEST             */
    {PowerCC32XX_PIN61, PowerCC32XX_DONT_PARK},    /* GPIO6  NFC_ENABLE          */
    {PowerCC32XX_PIN62, PowerCC32XX_DONT_PARK},    /* GPIO7  uC_ALERT            */
    {PowerCC32XX_PIN63, PowerCC32XX_DONT_PARK},    /* GPIO8               */
    {PowerCC32XX_PIN64, PowerCC32XX_DONT_PARK},    /* GPIO9               */
};


const PowerCC32XX_ConfigV1 PowerCC32XX_config = {
    .policyInitFxn = &PowerCC32XX_initPolicy,
    .policyFxn = &PowerCC32XX_sleepPolicy,
    .enterLPDSHookFxn = NULL,
    .resumeLPDSHookFxn = NULL,
    .enablePolicy = false,
    .enableGPIOWakeupLPDS = true,
    .enableGPIOWakeupShutdown = true,
    .enableNetworkWakeupLPDS = true,
    .wakeupGPIOSourceLPDS = PRCM_LPDS_GPIO13,
    .wakeupGPIOTypeLPDS = PRCM_LPDS_FALL_EDGE,
    .wakeupGPIOFxnLPDS = NULL,
    .wakeupGPIOFxnLPDSArg = 0,
    .wakeupGPIOSourceShutdown = PRCM_HIB_GPIO4 | PRCM_HIB_GPIO11,
    .wakeupGPIOTypeShutdown = PRCM_HIB_FALL_EDGE,
    .ramRetentionMaskLPDS = PRCM_SRAM_COL_1 | PRCM_SRAM_COL_2 |
        PRCM_SRAM_COL_3 | PRCM_SRAM_COL_4,
    .keepDebugActiveDuringLPDS = false,
    .ioRetentionShutdown = PRCM_IO_RET_GRP_0 | PRCM_IO_RET_GRP_1 | PRCM_IO_RET_GRP_2 | PRCM_IO_RET_GRP_3, //PRCM_IO_RET_GRP_0 | PRCM_IO_RET_GRP_1 | PRCM_IO_RET_GRP_2 | PRCM_IO_RET_GRP_3 ,
    .pinParkDefs = parkInfo,
    .numPins = sizeof(parkInfo) / sizeof(PowerCC32XX_ParkInfo)
};

Thanks,

Cédric