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.

[参考译文] RTOS/CC2650:基于 RTOS 的示例和基于 BLE 的示例中 MCU 的电流消耗差异。

Guru**** 2581345 points
Other Parts Discussed in Thread: CC2650MODA

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/715528/rtos-cc2650-difference-in-current-consumption-of-mcu-in-rtos-based-example-and-ble-based-example

器件型号:CC2650

工具/软件:TI-RTOS

对于我们的应用、我们需要 CC2650MODA 以两种模式运行。 基于 BLE 的数据传输或板载存储。

在板载存储模式下、BLE 应完全关闭。

我们的代码集成到简单的外设项目中、并在这两种模式下按预期工作。

代码结构是

main() { Hardware_init();  Main_Task(); BIOS_start();}

MAIN_Task_fxn () {  READ_CONFIGURATION ();

if (storage_mode) while (1){ Acquire &store();}

否则(BLE 模式){ iCall_createRemoteTasks();  GAPRole_createTask();  SimpleBLEPeripheral_createTask();}

在 BLE 模式下、堆栈内存在运行时分配。

同样、相同的存储模式代码也添加到基于简单 RTOS 驱动程序示例的应用程序中。

main() { Hardware_init();   BIOS_start(); }

MAIN_Task_fxn (){while (1){Acquire & store();}

问题是、在存储模式下的 simple_peripheral 应用中、MCU 消耗的电流大于在基于驱动器的应用中消耗的电流。

对于简单外设应用中的存储模式、遵循的代码结构是否正确?

在本例中、BLE 是否完全关闭?

如果没有、我们是否必须执行任何额外配置才能关闭 BLE?

为何这两种应用中的电流消耗有差异?

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

    您在这些示例之间看到的电流消耗有多大差异? 您将其与哪些驱动器示例进行比较?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、M-W、
    感谢您的回答。
    在基于 BLE 的应用中、MCU 的电流消耗为2.6mA、在基于 RTOS 的示例中、电流消耗为0.6mA。
    我已将存储模式代码合并为"pwmled"示例。

    谢谢、
    Bharath
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这听起来像是有一些东西阻止系统进入待机状态。 如果您在添加"存储模式"代码之前未看到功率增加、我将首先对此进行研究。 在此代码中、您使用什么驱动程序?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、M-W、
    我将使用存储代码检查功耗。
    我使用的是 SPI 和 I2C 驱动器。
    回调模式下的 SPI、我每4毫秒读取19个字节、每250毫秒读取一次、我在阻塞模式下通过 I2C 读取8个字节。

    谢谢、
    Bharath
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、M-W、
    当我在两个应用中进入存储模式之前添加 while (1)循环时、电流为0.6mA。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Bharath、

    0.6mA 的噪声听起来像是 CPU 处于空闲状态、这意味着您不会进入完全待机状态。 由于排除 I2C 和 SPI 时电流会降低、我想您使用驱动器的方式是阻止使用节能模式。 如果您每4毫秒进行一次 SPI 读取、我假设这会使您无法节能。

    您如何使用 SPI (和 I2C)数据、是否必须对所有读数执行操作? 我提出这一要求的原因是、这听起来可能非常适合器件中提供的传感器控制器引擎。 它可能会大幅降低电流消耗、具体取决于您需要如何处理所读取的数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、M-W、

    我将探究传感器控制器引擎。

    我没有对该数据执行任何操作。 我只是在拥有一定数量的数据后创建数据包。

    谢谢、

    Bharath

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

    在这种情况下、传感器控制器似乎非常适合您!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、M-W、
    感谢您的支持。
    我们发现我们已经添加了 Task_sleep (100);函数由于某种原因被添加到基于 RTOS 的代码中。 事实证明、添加相同的函数会使两个项目的功率相同。
    我们仍将使用传感器控制器引擎进行 SPI 读取。

    谢谢、
    Bharath