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.

[参考译文] CC2340R5:空闲电流问题

Guru**** 2393725 points
Other Parts Discussed in Thread: CC2340R5, ENERGYTRACE

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1450587/cc2340r5-idle-current-problem

器件型号:CC2340R5
Thread 中讨论的其他器件: ENERGYTRACE

工具与软件:

您好!

首先、我的工具链紧跟在潮流。

- SDK: SIMPLELINK-LOWPOWER-F3-SDK (版本 8.10.01.02)

-示例: examples\rtos\LP_EM_CC2340R5/prop_RF\rfPacketTx

- Compilar: ARM CGT clang 4.0.0

- IDE: CCS 12.8.

我想测量空闲电流、以检查它是否与数据表相同。

因此、我在 SDK 示例中将 LGPT 函数添加到 empty.c。

void *mainThread(void *arg0)
{
    /* 1 second delay */
    uint32_t time = 1;

    /* Call driver init functions */
    GPIO_init();

    /* Configure the LED pin */
    GPIO_setConfig(CONFIG_GPIO_LED_0, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);

    /* LGPT setting&start for idle current measurement */
    uint32_t counterTarget;
    LGPTimerLPF3_Handle hTimer;
    hTimer = NULL;
    LGPTimerLPF3_Params params;
    LGPTimerLPF3_Params_init(&params);
    params.hwiCallbackFxn = timerCallback;
    params.prescalerDiv = 10;
    hTimer = LGPTimerLPF3_open(CONFIG_LGPTIMER_0, &params);
    if(hTimer == NULL) {
      //Log_error0("Failed to open LGPTimer");
      //Task_exit();
    }
    counterTarget = 48000;  //1ms with a system clock of 48 MHz
    LGPTimerLPF3_setInitialCounterTarget(hTimer, counterTarget, true);
    LGPTimerLPF3_enableInterrupt(hTimer, LGPTimerLPF3_INT_TGT);
    LGPTimerLPF3_start(hTimer, LGPTimerLPF3_CTL_MODE_UP_PER);

    /* Turn on user LED */
    GPIO_write(CONFIG_GPIO_LED_0, CONFIG_GPIO_LED_ON);

    while (1)
    {
        sleep(time);
        GPIO_toggle(CONFIG_GPIO_LED_0);
    }
}

电源策略、直流/直流和 LF 时钟的设置如下。

LP_EM_CC2340R5具有1.8V 的电源电压。

我测得的电源电流波形快照如下所示。

我将 LGPT 的计时器周期设置为11毫秒、因此我应该测量1.5mA 的空闲电流、除非触发 LGPT、但事实并非如此。

我想知道造成这种情况的原因。  这是第一个问题。

此外、以1ms 的周期测量脉冲波形。

我也想知道这是什么原因。 这是第二个问题。

此致、

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

    您好、Yoshi、

    来自我们的 TRM:"或者、可以使用内部全局 LDO (GLDO)来代替直流/直流稳压器、但这会增加器件的电流消耗。 在该模式下、应断开直流/直流引脚并移除直流/直流稳压器电感器 . GLDO 在内部连接到 VDDR。 有关 GLDO 去耦电容器要求、请参阅器件特定的数据表。 有关 DC/DC 功能的更多信息、请参见第14章。"  

    -使用 GLDO 可以获得较高的电流,尽管输入电压较低,与直流/直流模式相比,功率应该相似;您是否已经按照第6.3.1节的说明断开了直流/直流引脚并移除了直流/直流稳压器?  

    我可能知道计时器仍然每1ms 关闭一次、但 timerCallback 每11ms 关闭一次、这就可以解释我们在图中看到许多1ms 间隔峰值。  

    我在 timerCallback 中添加了 GPIO 切换、这是 EnergyTrace 输出、我可以看到:

      

    (请注意、我们可以在此处看到11个1ms 周期)  

    谢谢!
    Alex F

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

    您好、Alex、

     >  是否已按照第6.3.1节所述断开直流/直流引脚并移除直流/直流稳压器?  

    有。

    我移除了 LaunchPad 中的电感器 L1。

    但是、电源电流仍然与我的快照相同。 它是2.7mA。

    如果禁用了 DMA、我认为电源电流应该为1.5mA、如数据表的以下说明所示。

    但为什么情况不是这样呢?

     >  从我可以告诉计时器仍然关闭每1毫秒,但 timerCallback 关闭每11毫秒,这可以解释我们在图表中看到的许多1毫秒间隔峰值。  

    是否无法停止1ms 计时器?

    我没有故意启动1ms 计时器。

    此致、

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

    您好、Yoshi、

    对于1ms 计时器、我认为我们看到的1ms 周期来自"counterTarget = 48000; //1ms、48 MHz 的系统时钟"、然后预分频器控制回调"prescalerDiv = 10;";这意味着我们仍在生成1ms 计时器周期、但该回调配置为仅在11ms 后关闭。  

    我会在下周早些时候尝试获取 GLDO 版本的测试、但下面是我的测试的 DCDC 版本。  

    e2e.ti.com/.../empty_5F00_LP_5F00_EM_5F00_CC2340R5_5F00_freertos_5F00_ticlang.zip

    谢谢!
    Alex F

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

    您好、Alex、

     > 对于1毫秒计时器,我认为我们看到的1毫秒周期来自"counterTarget = 48000; //1ms 与48 MHz 的系统时钟"  

    我将 counterTarget 设置为12000、并检查了波形。  

    因此、 1ms 周期峰值没有改变、仍然存在。

    (根据计算结果、11ms 间隔改为2.75ms。)

    下面是屏幕截图。

    原因是什么? 还有可能改进吗?

    我的目标是测量实际空闲电流、但我认为上面的波形不能称为空闲电流。

    (与 数据表相同、空闲电流为1.5mA。)

    如果可能、您能否提供一个可以测量空闲电流的示例?

    此致、

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

    您好、Yoshi、

    我将进一步查看我的示例以了解计时器在做什么、并提供下一步的代码!  

    谢谢!
    Alex F

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

    您好、Alex、  

    感谢您的合作。

    我们期待您提供用于空闲电流测量的代码。

    此致、

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

    您好、Yoshi、

    我们期待您的代码

    -以下是代码,仍在调谐一个位,保持在空闲测量。  

    e2e.ti.com/.../8883.empty_5F00_LP_5F00_EM_5F00_CC2340R5_5F00_freertos_5F00_ticlang.zip

    谢谢!
    Alex F

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

    您好、Alex、

    感谢您提供的信息。
    我将等待调优完成。

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

    您好、Yoshi、

    我已经从假期回来,对于给您带来的不便,我深表歉意。  

    我下载了新发布的8.40 F3 SDK 进行测试、启用了 LGPTimer (1ms)并添加了 while + SLEEP 环路(但仍有计时器回调)、平均电流约为1.7 mA (接近数据表):

    (*这通过 Energy Trace 进行供电、因此器件由3.3V 而不是1.8V 供电)

    e2e.ti.com/.../5165.empty_5F00_LP_5F00_EM_5F00_CC2340R5_5F00_freertos_5F00_ticlang.zip

    (*请注意、我将使用红色 LED 来测量 LGPTimer)  

    谢谢!
    Alex F

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

    Alex、您好!

    我很高兴你回来了。

    我尝试了您的新项目。

    首先、我使用以下设置测量了电源电流值。

    *3.3V 电源

    *DCDC 配置

    *未使用 LED

    结果与您的结果相同。 电流约为1.7mA。

    这是快照。

    接下来、 我进行了以下设置。

    *1.8V 电源

    *GLDO 配置

    *未使用 LED

    在该条件下、电流大约为 2.8mA。

    这是快照。

    我认为这与数据表的内容不同。

    我希望您使用1.8V 和 GLDO 设置测量并确认电流。

    之后、请告诉我如何获取 close 值作为数据表。



    此致、

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

    您好、Yoshi、

    很抱歉耽误您的时间、我联系了我们的硬件工程师、帮助解决这个问题。  

    谢谢!
    Alex F

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

    您好、Yoshi、

    我和硬件工程师进入实验室后、在 GLDO 模式下看到了以下内容:

    -我们正在从该测量中读取预期的数据表功率。  

    对于前面有关 LGPTimer 处于活动状态时的连续1ms 峰值的问题、这当前是由 FreeRTOS tickrate (触发 ISR 以使 OS 保持运行)导致的、通过调整该值、我们可以增加或减少事件发生的周期。  

    RND 的建议:

    为了执行功率测量、您可以在 FreeRTOS 中设置可能的最长节拍率并测量两个节拍之间的 LGPT;如果您不受 FreeRTOS 限制、这纯粹是为了执行测量、我建议转向 nortos 示例。

    谢谢!
    Alex F

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

    Alex、您好!

    感谢您的测量。

    我阅读了您的评论。

    从我的理解, 下面你说什么。

    正确吗?

    我之前测量的空闲电流为2.8mA、但这是由节拍导致的。 如果没有节拍、空闲电流将更小。

    * 空闲期间的平均电流取决于滴答率。

    *使用 FreeRTOS 时、可以立即实现数据表中列出的空闲电流值。  但是、如果考虑长期(例如1秒)、则无法实现。 因为会发生周期性节拍中断。

    此致、

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

    您好、Yoshi、

    [报价 userid="628481" URL"~/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1450587/cc2340r5-idle-current-problem/5672459 #5672459"]* 我之前测量的空闲电流是2.8mA、但这是由于周期所致。 如果没有周期、空闲电流甚至会更小。

    -是的,如果我们将 tickrate 更改为1000这应该会降低电流:

    * 空闲期间的平均电流取决于 tickrate。

    -是的,以及我们如何测量电流(手动计算时间平均值可以获得更好的结果)  

    [报价 userid="628481" url="~/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1450587/cc2340r5-idle-current-problem/5672459 #5672459"] *使用 FreeRTOS 时、可以立即实现数据表中列出的空闲电流值。  但是、如果考虑长期(例如1秒)、则无法实现。 因为会发生周期性节拍中断。 [报价]

    可能,在这种情况下,我会说是的。 这种情况始终存在一些变化、具体取决于您如何进行测量(如上所述)以及外设设置。  

    谢谢!
    Alex F