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-CC2652R7:进入待机模式

Guru**** 1826070 points
Other Parts Discussed in Thread: SYSCONFIG, ENERGYTRACE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1258818/lp-cc2652r7-enter-standby-mode

器件型号:LP-CC2652R7
主题中讨论的其他器件:SysConfigENERGYTRACE

您好

有一个代码每 20秒发送一次 UDP 消息。 无线电配置为轮询周期为5000ms 的休眠终端设备。 还有一些处理 LED、按钮等的其它任务。  

在 Runtime Object 视图中、任务如下:

在 SysConfig 中、电源配置如下:

不过、LP 似乎从未进入待机模式。 我不确定有一个确定的方法来检查这一点。 我开始在调试模式下跟踪流程并逐步执行。 流程如下:

在 StandbyPolicy 函数中、变量"constraints"的值始终为4、因此不会输入此 if 条件:

我缺少什么吗?

如何明确地知道系统是否进入待机状态?

如何让系统进入待机状态、或者至少找出阻止它的原因?

此致

维韦克

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

    您能否详细说明正在测试哪个 SDK 版本和示例?

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

    我使用的是 SDK 7.10。 我使用了 CLI MTD 示例、并根据我的需要进行了修改。 我正在将事件写入各种队列、并等待 mq_receive 处理队列上的事件。

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

    我更深入地研究了代码。 在文件 PowerCC26X2.c 函数 Power_Init ()第376行中,有一项限制设置为不允许待机:

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

    进一步研究时、除了 外部 LF 时钟外、使用任何 LF 时钟源都可以防止 MCU 进入待机模式。 是这样吗?

    是否有任何权变措施? 因为我们确实需要系统进入待机模式、而且板上没有外部时钟源。

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

    从 HF XOSC 派生 LF 时钟源不支持低功耗运行。  使用内部 LF RCOSC 是一种替代方法、但是 LF 时钟将不像外部时钟选项那样精确。  您需要使用 EnergyTrace、万用表或功率分析仪实际测量功耗、从而确认器件的状态。  以下是一些供您参考的附加参考资料:  

    https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_7_10_01_24/docs/thread/html/tirtos/power.html 
    https://www.ti.com/lit/pdf/swra478 

    此致、
    瑞安

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

    您好,Ryan

    我曾尝试使用 EnergyTrace 进行测量、最小电流约为2 mA。 我已将其配置为休眠器件。 另外、我假设如果代码进入 IF (justIdle)条件、则未进入待机模式。 是这样吗?  

    我不确定是什么阻止了它进入待机模式

    我还配置了以下内容:

    • Board_display_use_LCD=0
    • Board_display_use_uart=0
    • TIOP_CUI=0

    此外、对我而言、EnergyTrace 仅在调试器运行时运行。 如果我在不启动调试器的情况下启动 EnergyTrace、则会显示此窗口

    我已尝试此线程中的步骤- CCS/CCStudio:EnergyTrace 独立模式不会在我的 CCS 版本:10.0.00010 - Code Composer Studio 论坛- Code Composer Studio ︎- TI E2E 支持论坛中启动 EnergyTrace 窗口 。

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

    您需要在独立模式下操作 EnergyTrace、以便它可从调试器免费运行。  还应断开 JTAG TMS/TCK 和 XDS110反向通道 UART RX/TX 跳线、以避免它们干扰测量。  否则、您可以测量大于2 mA 的功耗。  您可以评估 gpiostandby 示例、以确认您正在正确地评估 EnergyTrace。

    此致、
    瑞安

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

    您好,Ryan

    我将尝试 gpiostandby 示例。 我面临的问题是:如果我没有先启动调试器、Energytrace 不会启动。 我想我会将这个问题发布在 CCS 论坛上。 问题解决后、我可以更好地测量电流并返回到该线程。

    谢谢

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

    您应该能够使用 CCS 内的"EnergyTrace Technology"按钮、无需进入调试器即可启动工具、但您肯定可以与 CCS 专家澄清这一点。

    此致、
    瑞安

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

    您好,Ryan

    我能够在独立模式下运行 EnergyTrace。 我获得的结果如下所示:

    我还在应用程序上运行了 energytrace++。 结果如下:

    具体状态如下:

    该曲线显示 CPU 几乎99.9%的时间处于低功耗模式。 但是、最小电流为1.9 mA。  

    您能帮助我弄清楚如何降低功耗吗? 如何对其进行调查并找出问题? 我需要 CPU 处于待机模式、此时的电流消耗小于10uA。

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

    由于 EnergyTrace 指示 MCU 主要处于 LPM 模式、且无线电关闭、并且没有 UART 外设、因此额外的功耗可能来自 JTAG 线路。  如果您仍在评估 gpiostandby 示例、尤其如此。  您应该 在运行 EnergyTrace 时将 JTAG 完全断开、并仅使用 EnergyTrace+配置进行测量。  建议此时使用其他硬件(如功率分析仪或万用表)确认测量值。

    此致、
    瑞安

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

    您好、Ryan、  

    我在移除 JTAG 线路后对此进行了测试。 仅连接3V3跳线。  

    在 gpiostandby 示例中、最小电流显示为零、这意味着消耗的电流可能小于1uA。 然而、使用 Doorlock 示例进行测试时、最小电流消耗约为2 mA。

    在 Power_init 函数中、有一个约束集、然后、该约束永远不会被释放。 由于这个约束、代码只进入如下显示的 justIdle 部分。

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

    如果 gpiostandby 的平均电流消耗为零、则由于器件未通电、连接仍然存在问题。  应连接3V3、GND 和 RST 跳线。

    如果您尚未考虑 TI-OpenThread 低功耗建议、禁用了 CUI (请参阅 Project Properties -> CCS Build -> Arm Compiler -> Predefined Symbols)、 并且/或者未能将 SysConfig -> TI-OpenThread -> Power Management -> Power Mode of Operation 设置为"Sleepy"、那么您将观察到高于预期的功耗。  由于 TI OpenThread 应用配置、功率 TI 驱动程序受到限制。

    此致、
    瑞安