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