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.

[参考译文] CC2640R2F:如何进入睡眠模式并每隔一小时唤醒一次?

Guru**** 2611705 points
Other Parts Discussed in Thread: CC2640R2F

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1276365/cc2640r2f-how-to-enter-to-sleep-mode-and-wake-it-every-one-hour

器件型号:CC2640R2F

您好  

我正在使用带有 simple_peripheral 示例(SDK_5_30_00_03)的 cc2640r2f launchpad、并希望休眠设备并每小时唤醒一次以降低能耗。 我搜索过、但找不到任何用于配置它的代码。

感谢您的帮助

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

    您好!

    TI 提供的电源驱动器将确保器件始终设置为最优的电源模式。

    确保停止所有射频操作(例如、无扫描、无广播、无活动连接)、然后设备应自动进入睡眠模式。

    为了重新打开广播、可以使用计时器。

    我希望这将有所帮助、

    此致、

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

    我取消了开始广告开始时,我的原始事件像 UART 和 ADC 工作每5秒,但设备没有进入睡眠。我是否应该使用像看门狗示例的睡眠功能?

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

    您好!

    确保关闭 UART 驱动程序(以及 潜在的其他驱动程序)、因为它们会阻止器件进入睡眠模式。

    还要记住、只要连接了调试器、器件就无法进入待机状态。

    此致、

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

    ı 关闭所有驱动器和广告,但能源消耗从0.8 mA 增加到4 mA . 为什么? 无法唤醒设备。 这是我的密码:

          if (events & SBP_PERIODIC_EVT)
          {
    
    
    
            if(mytimer<10)
            {
            	  SimplePeripheral_performPeriodicTask();
            	  Set_Adv_Data();
            }
    
            Util_startClock(&periodicClock);
            mytimer++;
            if(mytimer>10)
            {
            	  UART_write(uart,"SLEEP\r\n",7);
            	  ADCBuf_close(MyAdcBuf);
            	  UART_close(uart);
            	  NVS_close(nvsHandle);
            	  I2C_close(i2c);
            	  Watchdog_close(watchdogHandle);
                  uint8_t initialAdvertEnable = FALSE;
                  // Set the Peripheral GAPRole Parameters
                  GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t),
                                   &initialAdvertEnable);
            }else if(mytimer>40)
            {
    
            	  MyAdcBuf = ADCBuf_open(Board_ADCBUF0, &adcparams);
            	  uart = UART_open(Board_UART0, &uartParams);
            	  nvsHandle = NVS_open(Board_NVSINTERNAL, &nvsParams);
            	  i2c = I2C_open(Board_I2C_TMP, &i2cParams);
                  Watchdog_close(watchdogHandle);
                  uint8_t initialAdvertEnable = TRUE;
                        // Set the Peripheral GAPRole Parameters
                  GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t),
                   &initialAdvertEnable);
    
                   UART_write(uart,"WAKEUP\r\n",8);
                   mytimer=0;
            }
    
          }

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

    您好!

    ı 关闭所有驱动程序和广告,但能源消耗从0.8 mA 增加到4 mA。 为什么? 无法唤醒设备[/报价]

    听起来好像设备已崩溃... 尝试在代码中逐步找出问题。

    另请注意、您使用 UART 的方式表明它配置为阻塞模式(与 BLEStack 配合使用时、不建议这样做)。

    最后但同样重要的是、您似乎正在关闭两倍的看门狗。 可能需要仔细检查一下。

    此致、

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

    感谢您的帮助。 当关闭所有驱动程序和广告,能源使用量从800 uA 降低到低于10 uA ,只是开放广告使用量大约100 uA  和我的问题在代码是关闭广告部分不工作,我关闭它从初始部分的代码。  我只是想 分享这些信息