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.

[参考译文] LP-CC2652RB:通过编程方式定期关闭电路板并再次唤醒

Guru**** 2466550 points
Other Parts Discussed in Thread: CC2652RB, LP-CC2652RB, SIMPLELINK-CC13XX-CC26XX-SDK, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1119698/lp-cc2652rb-shutting-down-the-board-and-waking-it-again-periodically-programmatically

器件型号:LP-CC2652RB
主题中讨论的其他器件:CC2652RBSIMPLELINK-CC13XX-CC26XX-SDKSysConfig

大家好、

我们尝试节省功耗并关断/唤醒 CC2652RB (也使用 Launchpad 和定制板进行开发)、最终产品应该是基于使用电池运行的 CC2652RB。  当前实施方案每天对一节电池放电、因此不可行、这意味着必须大幅降低功耗。

这个想法是使用 Power_shutdown (PowerCC26XX_entering_shutdown、10000)关闭处理器;这样处理器会关闭大约10秒、然后唤醒、执行其任务、然后再次关闭。最终应用程序不会像每10秒一样重新启动、而是每5分钟左右重新启动一次。

我查看了标题为 SimpleLink SDK 电源管理的文档、并了解到 CC26XX 有三种睡眠状态:WFI、IDLE 和 STANDBY。  因此、通过调用实际的 Power_shutdown、我希望进入待机状态、然后在给定时间后从第二个函数参数重新启动。  待机状态已正确启动、但 LP-CC2652RB LaunchPad 从未唤醒以重新启动/重新启动应用。

Power.h 的文档提到、某些器件系列支持第二个参数:shutdownTime、而其他器件不支持此参数。 CC2652RB 实际上是否支持它、是否应在时间到期后唤醒?  

如果是、是否存在导致处理器不唤醒的常见问题?  如果 CC2652RB 不支持该功能、那么传感器控制器可能会:传感器控制器是否能够根据计时器触发完全重启、或者它是否只能从 Task_sleep 唤醒它?

因此、我们的理想解决方案是完全停止 cortex 内核并仅在计时器上重新启动、之后它会停止并再次被计时器唤醒。

您认为什么、使该行为正常工作的最佳方法是什么- Power_shutdown 是否应该使用 CC26XX 的重启计时器?

谢谢、\

Sandor

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

    您好 Sandor、

    您是否使用 TI 射频堆栈、您正在评估哪个版本的 SIMPLELINK-CC13XX-CC26XX-SDK、以及您从哪个代码示例开始?  您能否查看这些 E2E 主题并告诉我它们是否回答了您的问题?

    https://e2e.ti.com/f/1/t/1094315 
    https://e2e.ti.com/f/1/t/1095906 
    https://e2e.ti.com/f/1/t/1064828 

    此致、
    Ryan

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

    代码从 zed_sw 示例代码开始。  第一项建议在程序中包含一个按钮。  我希望在一段时间后自动重新启动、无需用户交互。  第二个论坛条目只是尝试使用0计时器、并被连接回第一个计时器、因此该计时器也没有。  第三个主题也是关于一个按钮、因此答案是否定的

    我将 CCS 更新到最新版本、因此使用的是最新版本:11.2.0、SimpleLink 版本为6.10。

    我只想总结一下我的需求:在没有用户交互的情况下、使用定时器从待机功耗模式重新启动 CC26XX 单元、如 power.h 中所述  我看的是:

    unsigned int Power_shutdown (unsigned int shutdownState、uint32_t shutdownTime)

    在关断时间过期后、LP-CC2652RB 不会重新启动。  只有创建新的调试会话或断电后、才会重新启动代码执行。  我觉得 shutdownState 应该是待机状态、使用 PowerCC26XX_entering_shutdown 可能不是正确的状态-因此功能可能正常工作、但应该正确进行参数化-不确定需要使用什么或电源支持在该详细信息中记录的位置 CC13XX/CC26XX。

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

    Zigbee 终端设备已针对使用待机模式的低功耗进行了优化、并估计可在单个纽扣电池设计上运行数年。

    https://www.ti.com/lit/swra625 
    https://www.ti.com/lit/swra478 
    https://www.ti.com/lit/swra636 
    https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_6_10_00_29/docs/zigbee/html/zigbee/power_configuration.html 
    https://dev.ti.com/tirex/explore/node?node=AIVXLmiDi3itQCPgZ1incA__BSEc4rl__LATEST 

    因此、如果您当前的实施方案每天放电一节电池、则硬件设置中存在一个明显的缺陷、或者阻止 ZED 按预期进入待机模式。  在评估 LP-CC2652RB 上的电源时、确保断开 XDS110调试器、并确保 SysConfig Zigbee /电源模块保留待机模式设置。

    此致、
    Ryan

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

    感谢 Ryan 的回答。

    基本上、主循环是 for (;)、就像在示例代码中、锁定信号量并仅在用户按下按钮或发生 ZigBee 通信事件时激活的、与 UI 示例非常相似、使用要处理的队列。 这与 zed_SW 示例完全相同: Semaphore_pend (appSemHandle、BIOS_wait_forever)。 基于此、zed_sw 和此定制代码的功耗应大致相同。  我当时想、可能有一些 ZigBee 保持活动或类似的活动正在进行中。  代码中只有一个可以改变功耗的额外计时器,一个新计时器,它每30秒通过调用 AONBatMonNewBatteryMeasureReady()运行一次电池检查。  这会产生显著的影响吗?

    您的回答中还有其他有趣的部分、即定制板可能是高功率使用的原因。  您是否知道会导致此问题的典型设计缺陷?  尝试从外部为 LP-CC2652RB 供电并测量其功耗并进行比较是否有意义?  最后一件事-因为我主要做软件、另一个做硬件的人向我投诉、告诉我 ZC 在一个晚上耗尽了电池电量、也不确定他是否也尝试了 Zed -我现在会问他。  ZC (和路由器)的功耗比 ZED 的功耗要高得多、这是否正常?因此、我们是否应该看到 ZED 设置的功耗明显降低?  根据我的理解:是的,如果你知道这一点,就很高兴得到证实。

    此致、

    Sandor

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

    您可以增加 zed_SW SysConfig -> Zigbee ->电源管理->轮询周期、以使器件长时间处于睡眠状态、从而提高功耗。   AONBatMonNewBatteryMeasureReady 的计时器间隔也将生效、 应针对您的应用尽快进行维护。

    不良的引脚接线和额外的外部组件会导致额外的电源。  最好在不连接到 LaunchPad 的板载 XDS110调试器的情况下测量 CC2652RB 电流。  ZC 和 ZR 节点消耗的电流要大得多、因为它们是路由设备、必须保持活动状态以随时接收/传输数据包、因此不允许进入低功耗状态。  相反、ZED 配置为休眠器件、是电池供电运行的唯一可行选择。

    此致、
    Ryan