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.

[参考译文] CC1312R:有关 CC1312 Thread 的功耗

Guru**** 2481465 points
Other Parts Discussed in Thread: SYSCONFIG, CC1312R

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1287039/cc1312r-power-consumption-regarding-thread-on-cc1312

器件型号:CC1312R
主题中讨论的其他器件:SysConfig

您好!

我的模块有温度传感器。
我每5秒读取一次温度数据并发送。

我使用说前先听机制。
我分离 RF TX 函数线程并现在读取温度线程。 它工作得很好。

我的问题是、单线程或双线程之间用于功耗的最佳解决方案是什么?
由于某种原因、我现在无法测量实际功耗。

如果必须使用单线程、则会将读取 temp 函数放在主线程 while 循环中。

--------
当我调用 SLEEP 函数时、系统会在 SLEEP 时间进入省电模式?
我阅读了一些文档、TI 驱动程序将管理代码库内部的功耗。

我使用 TI-RTOS。

当我使用多线程时、睡眠函数将在所有线程中调用。

请说明重点关注功耗的最佳配置。
如何初始化未使用的驱动程序,例如 UART, I2C,...  

我想进入深度睡眠模式、唤醒模式、测量温度和发送数据、然后进入睡眠模式。

唤醒 CC1312是否需要额外的 H/W 组件?

让我知道 TI-RTOS 的电源模式设置示例。


Br
保罗

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

    您好、Paul、

    我建议您使用 TI RTOS。 在这种情况下、如果所有任务都处于睡眠或挂起状态、器件将进入待机或休眠状态。 经过该时间后、器件将唤醒并继续处理任务。

    如果对您而言传感器读取应恰好在5秒之后进行、则最好将射频和传感器分成两个不同的任务。 如果你将传感器任务设定为最高优先级、它将能够优先于 CPU 并且恰好在正确的时间进行测量。

    如果不担心确切的时间、也可以将两个操作放在同一个任务中。 除非 LBT + send 花费超过5s 的时间、否则不会延迟传感器读取。

    但任一解决方案都可以。

    当您在两个任务(或单个任务,取决于您的实施)中调用 sleep()时,设备将进入待机状态。  

    如果您使用的是最新的  SIMPLELINK-LOWPOWER-F2-SDK (v 7.10.01.24),您不必处理未使用的驱动程序的初始化。

    您不需要任何额外的硬件即可将器件从待机模式唤醒、也就是睡眠模式。

    我建议您使用 GPIO 待机示例来测量器件/电路板的功耗:

    https://dev.ti.com/tirex/explore/node?node=A__AGRUxsFbd7AXMo9ptbtgoA__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST&placeholder=true

    谢谢、

    M·H

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

    您好、Marie、

    谢谢你。
    根据 SWRA486文档

    在待机模式下、电流约为1uA。
    但我的模块的平均值。 电流为400uA。
    我会初始化我的板中使用的所有外设。
    我将 while (1) sleep (10);代码位于主线程的第一行。 无射频操作。

    我几乎移除了消耗上拉电阻器等硬件组件的电势电流。

    但400uA。

    ——
    如何确定 simplelink SDK 版本?
    我的 CCS SDK 目录是 C:\ti\simplelink_cc13xx_cc26xx_sdk_7_10_01_24

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

    您好、Paul、

    则使用的是 SimpleLink SDK v 7.10.01.24。

    您能否使用 GPIO 待机示例并按照本应用手册中的步骤操作、测量您的电流消耗? 可以使用 Energy Trace 或功率分析仪。

    https://www.ti.com/lit/swra478

    谢谢、

    M·H

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

    您好、Marie、

    好的,我将测试 GPIO STANDBY 示例.

    我想制造电池供电的设备。
    我可以这么做吗?

    对于电池设备、我必须关注哪一点?
    实际上、我想1uA 的电流对于电池供电似乎很高。


    10分钟关机,然后重新启动,测量温度,发送日期,然后再次进入关机状态。
    这是我的情形。
    您是否建议使用额外的 H/W 组件来生成 CC1312的周期性中断?
    参考原理图非常适合我。

    Br
    保罗


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

    您好!

    我已经在 DK 电路板上测试了 gpiostandby 示例。
    电流消耗很小、约为1~4uA。

    然后、我将我的定制应用程序放置在 DK 电路板上、并使用修改主线程、而 loop 为


    while (1)
     {
     睡眠(10);
     GPIO_WRITE (CONFIG_GPIO_GLED、1);
     睡眠(10);
     GPIO_WRITE (CONFIG_GPIO_GLED、0);
     }

    首次测量时、待机电流测量值约为40uA。
    我从 syscfg 和代码中删除 ADC。
    并再次测量、待机时为1~4uA……

    我的问题是、如何在调用 SLEEP 和重新初始化 ADC 函数之前禁用 ADC 功能。
    我将逐步测试删除其他功能

    Br
    PAU;

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

    您好、Paul、

    很高兴听到!

    根据我的理解、在初始化设备时必须调用一次 ADC_init。 然后、您应该能够:

    1.从睡眠中唤醒

    2.调用 ADC_open

    3.执行 ADC 操作

    4.调用 ADC_Close

    5.进入睡眠状态。

    谢谢、

    玛丽

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

    您好!
    我创建单线程、 MainThread
    我的代码被禁用以避免有关 ADC 的编译错误。
    我的有关 ADC 的代码已删除

    当我 在 syscfg 中仅设置启用 ADC 功能时、电流消耗增加到40 μ A。
    只需在 syscfg 中禁用 ADC、电流降至1~4 μ A。

    ---
    我 在针对电池解决方案的另一个回复中提出了另一个问题。
    请同时回答这个问题。

    Br
    保罗

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

    您好、Paul、

    我预计在 ADC 操作中电流会增加一些。

    您是否可以查看 SysConfig -> TI drivers -> ADC -> PinMux 并在引脚未使用时检查配置? 我建议输入、不使用拉。

    谢谢、

    M·H

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

    您好!

    我必须通过我的代码而不是 SysConfig 禁用 ADC。
    我想在进入待机模式之前禁用 ADC。

    Br
    保罗

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

    还有一个问题。
    我正在使用睡眠功能进入待机模式。
    在待机模式下、我可以使用 Task_sleep 而不是 sleep 吗?
    Br
    保罗

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

    您好、Paul、

    您可以使用 ADC_Close API。 下次要使用 ADC 时、需要调用 ADC_open (无需再次调用 ADC_init)。

    如果你看一下 sleep() API 的定义,你会觉得它是 Task_sleep()的包装器。 所以你可以直接使用 Task_sleep()。

    谢谢、

    M·H

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

    您好!

    我很长时间都不能参与这个项目。
    但我重新启动该项目。

    让我总结一下所有内容。

    1、我的板使用 ADC、所以我的代码使用的是 ADC 函数。
    2.为了测量电流消耗、我从代码中删除了 ADC 函数的所有 API 调用、但仍然消耗了40 μ A 的电流。
    3.在 CCS 的 syscfg 中从 TI 驱动程序中移除 ADC、然后消耗1~4uA 电流。

    我的问题是、如何通过代码来执行、如从 syscfg 中删除 ADC。

    Br
    保罗

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

    您好、Paul、

    似乎您的配置甚至在 ADC 未使用时也在影响功耗?

    您是否可以查看 SysConfig -> TI drivers -> ADC -> PinMux 并在引脚未使用时检查配置? 我建议输入、不使用拉。

    谢谢、

    M·H

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

    您好!
    是的、好的。 配置影响电源连接。
    下图是 ADC 配置。 我设置。

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

    您好、Paul、

    设置此配置后的功耗如何?

    谢谢、

    M·H

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

    您好!

    我已经从头开始使用此配置测试了电流消耗。

    我是来出差的 我明天会再次测试。

    Br
    保罗

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

    您好!

    我通过设置配置完成了功耗测试。 提供。
    我的代码上根本没有 ADC 函数。

    我在 CC1312R DK 电路板上进行了测试。

    结果相同。
    在系统配置中添加 ADC 后、待机状态下的电流约为70uA。
     从 CONFIG 中删除 ADC 功能后、电流大约为>1uA。

    Br
    保罗

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

    您好、Paul、

    您看到的电流消耗是由于 ADC 引脚在不使用时保持悬空。

    在 SysConfig 中、可以通过在不使用时上拉或下拉引脚来避免这种情况:

    此致、

    亚瑟

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

    大家好、Arthur、

    谢谢。
    将 ADC 引脚设置为下拉后、电流消耗下降到预期值。

    Br
    保罗