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-LAUNCHXL:休眠模式

Guru**** 2589280 points
Other Parts Discussed in Thread: CC3220SF

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/779180/cc3220sf-launchxl-hibernate-mode

器件型号:CC3220SF-LAUNCHXL
主题中讨论的其他器件:CC3220SF

您好!

我需要对 CC3220中的休眠模式进行一些澄清。

我们可以使用多个 GPIO 从休眠模式唤醒 CC3220、还是只能配置其中一个可用的 GPIO 来唤醒 CC3220?

在2017 年12月7日下午7:48的以下主题中、Mark81注释 看起来他可以使用多个 GPIO 从休眠模式唤醒。

e2e.ti.com/.../648404

如果我们可以配置多个 GPIO、请建议如何配置。

谢谢、

Kishore。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Kishore、

    检查这是否起作用:

    PRCMHibernateWakeupSourceEnable (PRCM_HIB_GPIOX | PRCM_HIB_GPIOY);
    PRCMHibernateEnter (); 

    这些函数直接来自 driverlib。 您可以在我们 TRM 的第15.3.10章中了解有关它们的更多信息。 确保您决定使用的 GPIO 未用于应用中的其他外设、并且可用作唤醒源-请在 LAUNCHXL.c 中进行验证 此外、请确保调用 Board_init_general、以初始化电源管理器。

    最后包括以下头文件:

    #include 
    #include 

    如果这对您有用、请报告。

    Jesu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jesu、

    我尝试了上述方法、  

    在我的代码中、当我唤醒时、我将立即将 GPIO 变为高电平、并 通过将 GPIO11和 GPIO13配置为唤醒源来将 MCU 发送到休眠模式。

    现在、我为两个引脚提供了中断、不知怎么说、GPIO13上的中断会将 CC3220SF 从休眠模式唤醒。

     对于其他引脚(我的示例中的 PIN2 (GPIO11))、CC3220SF 不会 从休眠模式唤醒。

    我尝试了引脚17 (GPIO24)来代替 PIN2 (GPIO11)、它 也不起作用。

    我将代码片段和输出放在下面、请帮我解决这个问题。

    在 main_tirtos.c 中

    #include

    #include

    int main (空)

      Board_initGeneral();

      GPIO_init();

      GPIO_WRITE (CC3220SF_LAUNCHXL_GPIO_14_SPI_CLK、Board_GPIO_HIGH);

      PRCMHibernateWakeupSourceEnable (PRCM_HIB_GPIO13 | PRCM_HIB_GPIO11);      

      PRCMHibernateEnter();

    CC3220SF_LAUNCHXL.c 中

    GPIO_PinConfig gpioPinConfigs[]={

      GPIOCC32XX_GPIO_13 | GPIO_CFG_INPUT| GPIO_CFG_IN_INT_INT_RISING、

      GPIOCC32XX_GPIO_11 | GPIO_CFG_INPUT| GPIO_CFG_IN_INT_RISING、 //引脚2

    CONST PowerCC32XX_ConfigV1 PowerCC32XX_CONFIG ={
    .policyInitFxn =&PowerCC32XX_initPolicy、
    policyFxn =&PowerCC32XX_sleepPolicy、
    .enterLPDSHookFxn =空、
    .resumeLPDSHookFxn =空、
    .enablePolicy = false、
    .enableGPIOWakeupLPDS = true、
    .enableGPIOWakeupShutdown = true、
    .enableNetworkWakeupLPDS = true、
    .wakeupGPIOSourceLPDS = PRCM_LPD_GPIO13、
    .wakeupGPIOTypeLPDS = PRCM_LPD_FALL_EDGE、
    .wakeupGPIOFxnLPDS =空、
    .wakeupGPIOFxnLPDSArg=0、
    .wakeupGPIOSourceShutdown = PRCM_HIB_GPIO13、
    .wakeupGPIOTypeShutdown = PRCM_HIB_RISE_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_1、
    .pinParkDefs = parkInfo、
    .numPins = sizeof (parkInfo)/sizeof (PowerCC32XX_ParkInfo)
    };

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我刚刚使用 GPIO11和13作为唤醒源测试了该代码、它正常工作。 确保已组装 J24、以便 GPIO11具有下拉电阻。

    /*
    版权所有(c) 2016、德州仪器(TI)公司
    *保留所有权利。
    *
    *
    只要
    符合以下条件*、允许以源代码和二进制形式重新分发和使用:
    *
    *源代码的重新分发必须保留上述版权
    声明*、此条件列表和以下免责声明。
    *
    ***二进制形式的再发行必须在
    
    *随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
    *
    ***未经
    
    事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *、
    
    不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
    *贡献者都不对任何直接、间接、偶然、特殊、
    *模范、 或相应的损害(包括但不限于
    *采购替代产品或服务;丧失使用、数据或利润;
    *或业务中断)、但出于任何责任理论
    、*无论是在合同中、严格责任还是由于
    使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
    、*即使已获悉可能会发生此类损坏。
    //
    
    //*标准 include */
    #include 
    #include 
    #include 
    #include 
    #include 
    
    /* TI 驱动程序头文件*/
    #include 
    #include 
    #include 
    
    // PRCM API 填充
    #include 
    #include 
    #include 
    
    静态 Display_Handle 显示;
    
    int32_t mainThread (void *arg)
    {
    GPIO_init();
    
    /*打开主机显示屏以输出*/
    Display = Display_open (Display_Type_UART、NULL);
    if (display =NULL){
    while (1);
    }
    
    //禁用所有唤醒源
    PRCMHibernateWakeupSourceDisable (0x007F0001);
    
    display_printf (display、0、0、"进入休眠状态\r\n");
    
    display_printf (display、0、0、"wakeup causeGet:%d\r\n"、PRCMHibernateWakeupCauseGet ());
    
    睡眠(3);
    
    // GPIO02是 P57
    // GPIO04是 P59
    // GPIO11为 P02
    // GPIO13是 P04
    // GPIO17是 P08
    // GPIO24是 P17
    PRCMHibernateWakeUpGPIOSelect (PRCM_HIB_GPIO11 | PRCM_HIB_GPIO13、PRCM_HIB_RISE_EDGE);
    PRCMHibernateWakeupSourceEnable (PRCM_HIB_GPIO11 | PRCM_HIB_GPIO13);
    
    PRCMHibernateEnter();
    
    返回(0);
    }
    

    Jesu