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.

[参考译文] LAUNCHXL-CC2640R2:Launchpad 中的高电流

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1219103/launchxl-cc2640r2-higher-current-in-launchpad

器件型号:LAUNCHXL-CC2640R2
主题中讨论的其他器件:CC2640ENERGYTRACECC2640R2F

我一直在尝试在  LAUNCHXL-CC2640R2中降低 simple_peripheral 的待机电流。 我正在使用"测量 CC13xx 和 CC26xx 电流消耗"中介绍的方法来测量 launchpad 中的电流。 在通告时、我获得的电流大约为2mA、  在连接状态下、我获得的电流大约为800uA。 但是、根据 CC2640数据表、预期待机电流约为1.1uA。  

1) 1)我在示例代码中禁用了所有外设功能。   

2) 2)我使用以下命令从 Launchpad 禁用外部闪存  

int main()

/*在堆栈中提出的用于陷阱的注册应用程序回调*/
RegisterAssertCback (AssertHandler);

Board_initGeneral();

//启用 ICache 预取
VIMS Configure (VIMS_BASE、TRUE、TRUE);
//启用高速缓存
VIMSMModeSet (VIMS_BASE、VIMS_MODE_ENABLED);

#if !定义( power_saving )
/*设置待机、断电和空闲模式的限制*/
// PowerCC26XX_SB_disallow 可能是冗余的
power_setConstraint (PowerCC26XX_SB_disallow);
power_setConstraint (PowerCC26XX_IDLE_PD_disallow);
#endif //节能

/*更新堆栈的用户配置*/
user0Cfg.appServiceInfo->timerTickPeriod = Clock_tickPeriod;
user0Cfg.appServiceInfo->timerMaxMillisecond = iCall_getMaxMSecs();


CC2640R2_LAUNCHXL_shutDownExtFlash ();

/*初始化 ICall 模块*/
iCall_init();

/*启动外部映像任务-优先级5 */
iCall_createRemoteTasks();

SimplePeripheral_createTask ();

/*启用中断并启动 SYS/BIOS */
BIOS_start();

返回0;
}

我还能做些什么来降低 Launchpad 中的电流。

注:我使用的是外部晶体。

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

    您好!

    您能否介绍一下如何禁用外设功能(无论是否定义了 power_saving)、或如何测量器件功耗(EnergyTrace、万用表、功率分析仪等)。

    用户指南中的更多内容应该可以帮助您解决此问题。

    https://dev.ti.com/tirex/explore/content/simplelink_cc2640r2_sdk_5_30_00_03/docs/blestack/ble_user_guide/html/tirtos/power.html

    此致、

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

    您好!

    如果您使用的是最新的 SDK、则在初始化时会关闭 SPI 外部闪存。 您需要确保 UART 未打开。 此外、您不能使用数字万用表测量待机电流。

    -kel

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

    大家好  

    感谢您的建议。 我已完成所有更改、关闭外部闪存、UART。 与此同时,我在只有一个通道中将广播间隔保持在10.25秒。 仍然可以得到大约8uA 的平均睡眠电流、这在 CC2640R2F 数据表中不太可能实现。

    由于该 LaunchPad 使用外部 XOSC 晶体、因此待机电流至少为3uA。  

    注意:  我正在使用万用表测量电流、如"测量 CC13xx 和 CC26xx 电流消耗"中所述、来测量 Launchpad 中的电流

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

    您好!

    误差来源: https://www.ti.com/lit/an/swra478d/swra478d.pdf

    文档中使用的测试设备是 Agilent N6705B 直流电源分析仪、但更名为 Keysight。

    https://www.keysight.com/us/en/product/N6705C/dc-power-analyzer-modular-600-w-4-slots.html

    该测试设备绘制电流波形图。  

    CC2640R2F 待机电流不稳定。 因此、如果使用数字万用表测量平均待机电流、您很可能获得比实际值更大的电流读数。  

    您可以使用数字万用表测量 CC2640R2F 稳定的关断电流。

    -kel

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

    在这种情况下、如果我禁用广播并检查平均电流、因为没有射频传输、应该不会获得几乎稳定的电流。 仍然得到的电流是8-9uA。 希望有人可以对此提供一个见解。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我仍然得到的电流为8-9uA

    还是打开的、这一点很重要。 UART 开启会使电流消耗增加约6uA。 display_open()打开 UART。

    此外、高端 Fluke 数字万用表还能准确测量 CC2640R2F 待机电流。

    -kel

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

    您可以看到、我已从初始化中注释掉了这部分代码。

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

    在 main.c 中的 Display_open()如何?

    -kel

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

    是的、它在所有地方都添加了注释

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

    或者、您可以将简单外设置于关断模式。 如果您的测量值为0.1uA、则表明您的 CC2640R2F Launchpad 已针对低功耗进行了配置。 将下面的视频快进至9:00

    youtu.be/XueHMhpKiGo

    -kel

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

    尊敬的 Markel:  

    在这里,我看到了一个不太可能的行为,当我注释掉除 BIOS_start()之外的所有函数时,我看到当前的尖峰  

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

    尊敬的 Krishna:

    我不会触摸这些代码行以实现低功耗。 您可以修改 BoardGpioInitTable[]以降低电流消耗。 注释掉表中的 LED。

    const PIN_Config BoardGpioInitTable[] = {
    
        CC2640R2_LAUNCHXL_PIN_RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,       /* LED initially off */
        CC2640R2_LAUNCHXL_PIN_GLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,       /* LED initially off */
        CC2640R2_LAUNCHXL_PIN_BTN1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,          /* Button is active low */
        CC2640R2_LAUNCHXL_PIN_BTN2 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,          /* Button is active low */
        CC2640R2_LAUNCHXL_SPI_FLASH_CS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,  /* External flash chip select */
        CC2640R2_LAUNCHXL_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,                                              /* UART RX via debugger back channel */
        CC2640R2_LAUNCHXL_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,                         /* UART TX via debugger back channel */
        CC2640R2_LAUNCHXL_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN,                                            /* SPI master out - slave in */
        CC2640R2_LAUNCHXL_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN,                                            /* SPI master in - slave out */
        CC2640R2_LAUNCHXL_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN,                                             /* SPI clock */
    
        PIN_TERMINATE
    };

    -kel

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

    仍然是6-7uA、我对所有 GPIO 都进行了注释  

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

    您好!

    您能使用 BLE 4.2简单外设来重试吗? 与 BLE 5简单外设相比、需要修改的内容要少得多。 如果您观看了我的共享 YouTube 视频、我获得了0.1uA 的关断电流、这是根据数据表确定的。 如果我有直流功率分析仪、则会测量到1.1uA 的待机电流。

    以下是会增加 CC2640R2F Launchpad 基本电流消耗的功能:

    1. XDS110电路
    2. SPI 外部闪存
    3. 打开 UART
    4. 电流

    -kel

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

    尊敬的 Markel:

    感谢您的帮助。 我曾使用 BLE 4.2简单外设进行过尝试、在启用高速缓存的情况下可获得的预期电流为1.3uA。 可以在 BLE 5堆栈中更改哪些内容以获得更低的睡眠电流。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 BLE 5堆栈中可以更改什么内容以获得较低的睡眠电流。

    有了 BLE5简单外设、我认为您需要删除所有 Display_xxxx C 函数和菜单代码。 只需最小清洁即可。

    此外、由于 BLE5堆栈很大、因此不建议将 BLE5用于 CC2640R2F。  

    -kel

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

    您好、Markel  

    谢谢您的深入见解。