这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
cc2640r2f:power_consumption [2017/08/31 16:30] 127.0.0.1 外部编辑 |
cc2640r2f:power_consumption [2021/06/22 23:14] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
< | < | ||
- | # CC2640R2F Evaluation Board功耗测量 # | + | |
+ | # CC2640R2F Evaluation Board 功耗测量 # | ||
## 简介 ## | ## 简介 ## | ||
- | 蓝牙低耗能标准在开发过程中就考虑到了长电池寿命, 可支持器件依靠单节纽扣电池运行数年。我们假定读者对基本的电气功能概念有所了解, 并了解如何使用示波器和外用表等实验室测试设备。 | + | |
- | 本文使用SimpleBLEPeripheral示例程序进行功耗测量并使用TI的 CC2640R2F | + | 蓝牙低耗能标准在开发过程中就考虑到了长电池寿命,可支持器件依靠单节纽扣电池运行数年。 |
+ | |||
+ | 本文采用 SimpleBLEPeripheral 示例程序进行功耗测量,并使用 TI 的 CC2640R2F | ||
## 硬件环境 ## | ## 硬件环境 ## | ||
- | - TI CC2640R2F LaunchPad开发板 | + | |
- | - <a href=" | + | - TI CC2640R2F LaunchPad 开发板 |
- | - DS1102E示波器 | + | - <a href="http://docs.leconiot.com/doku.php? |
- | - 外用表 | + | - DS1102E 示波器 |
- | - APS3005D电源 | + | - 万用表 |
+ | - APS3005D 电源 | ||
## 软件环境 ## | ## 软件环境 ## | ||
+ | |||
- IAR Embedded workbench 7.80.3 | - IAR Embedded workbench 7.80.3 | ||
- BLE-STACK V3.0.1 | - BLE-STACK V3.0.1 | ||
行 17: | 行 24: | ||
- BTool | - BTool | ||
- | 协议栈和IAR安装参考< | + | 协议栈和 IAR 安装参考< |
+ | |||
+ | ## SimpleBLEPeripheral 修改 ## | ||
- | ## SimpleBLEPeripheral修改 ## | + | 包含在 BLE-Stack 中的通用样例应用 simple_peripheral 非常适合用于分析单独运行在无线 MCU 上的蓝牙低耗能协议的功耗。有关 simple_peripheral 的编译运行说明请参考< |
- | 包含在 BLE-Stack 中的通用样例应用 simple_peripheral 非常适合用于分析单独运行在无线 MCU 上的蓝牙低耗能协议的功耗。有关simple_peripheral的编译运行说明请参考< | + | 要获取纯粹的蓝牙低耗能协议分析,需要按照表 5 中所述在 simple_peripheral 样例应用中进行一些修改。之所以修改是因为测量 BLE 堆栈单独产生的电流消耗必须关闭额外的应用处理。 |
|功能|说明| | |功能|说明| | ||
|: | |: | ||
- | |周期性事件|发生的唯一应用处理是在建立连接后开始的周期性事件。要从应用中清除周期性事件,只需注释掉**simple_peripheral.c**文件中 **SimpleBLEPeripheral_processStateChangeEvt** 函数的**GAPROLE_CONNECTED**用例中的以下源代码行:**// | + | |周期性事件|发生的唯一应用处理是在建立连接后开始的周期性事件。要从应用中清除周期性事件,只需注释掉** simple_peripheral.c **文件中 ** SimpleBLEPeripheral_processStateChangeEvt ** 函数的** GAPROLE_CONNECTED **的以下源代码行:**// |
- | |LCD|通过在预定义的符号中添加**Display_DISABLE_ALL**来禁用所有屏幕。在**CCS**中,转到“**Project Properties”→“Build”→“ARM Compile”→“Advanced Options”→“Predefined Symbols”→“Pre-define NAME**”。 在 IAR 中, 转到“**Project Options”→“C/ | + | | LCD |通过在预定义的符号中添加** Display_DISABLE_ALL **来禁用所有屏幕。在** CCS **中,转到“** Project Properties ”→“ Build ”→“ ARM Compile ”→“ Advanced Options ”→“ Predefined Symbols ”→“ Pre-define NAME **”。 在 IAR 中, 转到“** Project Options ”→“ C/C++ Compiler ”→“ Preprocessor ”→“ Defined symbols **”。| |
- | |连接参数更新|在建立连接后不久, 会从外围器件发出自动连接参数请求。 它使用**simple_peripheral.c**中定义的参数。 在执行测量任务时, 删除该功能并通过对等器件直接控制连接参数会更加便利。在**simple_peripheral.c**中,将**DEFAULT_ENABLE_UPDATE_REQUEST define**更改为**GAPROLE_LINK_PARAM_UPDATE_WAIT_REMOTE_PARAMS**,如下所示:**# | + | |连接参数更新|在建立连接后不久, 会从外围器件发出自动连接参数请求。 它使用** simple_peripheral.c **中定义的参数。 在执行测量任务时, 删除该功能并通过对等器件直接控制连接参数会更加便利。在** simple_peripheral.c **中,将** DEFAULT_ENABLE_UPDATE_REQUEST define **更改为** GAPROLE_LINK_PARAM_UPDATE_WAIT_REMOTE_PARAMS **,如下所示:** # |
- | |添加**ExtFlash.c** 和 **ExtFlash.h**|**ExtFlash.c** 和 **ExtFlash.h** 位于 **TI-RTOS** 中间件中。通过转到“Project”→“**Add Files**”将其添加到SBP 应用项目中。此外,使用以下命令将其包含在 **simple_peripheral.c** 中:**# | + | |添加** ExtFlash.c ** 和 ** ExtFlash.h **|** ExtFlash.c ** 和 ** ExtFlash.h ** 位于 ** TI-RTOS ** 中间件中。通过转到“ Project ”→“** Add Files **”将其添加到 SBP 应用项目中。此外,使用以下命令将其包含在 ** simple_peripheral.c ** 中:** #include < |
- | |关闭外部闪存|通过调用 **ExtFlash_open()**;**ExtFlash_close()** 打开和关闭外部闪存;(在SimpleBLEPeripheral_init()中)| | + | |关闭外部闪存|通过调用 ** ExtFlash_open() **、** ExtFlash_close() ** 打开和关闭外部闪存。(在 SimpleBLEPeripheral_init() 中)| |
- | |睡眠时进入standby模式|通过在预定义符号中添加**POWER_SAVING**。转到“**Project Options**”→“**C/ | + | |睡眠时进入 standby 模式|通过在预定义符号中添加** POWER_SAVING **。转到“** Project Options **”→“** C/C++ Compiler **”→“** Preprocessor **”→“** Defined symbols **“| |
- | ## CC2640R2F Evaluation Board配置 ## | + | ## CC2640R2F Evaluation Board 配置 ## |
- | 为了获取不受干扰的电流测量结果,应拆除< | + | |
+ | 为了获取不受干扰的电流测量结果,应拆除< | ||
+ | 下图是已拆除所有跳线的开发板。请注意:拆除 JTAG 跳线后,芯片的编程和调试功能将变得不可用。外置电源连接 3.3V 供电接口和 GND 进行供电,连接下图中蓝色方框部分的供电接口。 | ||
![](http:// | ![](http:// | ||
- | ## BTool设置 ## | ||
- | 如下如所示,在形成连接之前,应使用正确的连接参数。可以根据您的应用选择合适的参数,这里设置的是1秒的连接间隔和0的从机延迟。因此,确保输入这些值后选择" | + | ## BTool 设置 ## |
+ | |||
+ | 如下图所示,在形成连接之前应使用正确的连接参数。可以根据您的应用选择合适的参数,这里设置的是 1 秒的连接间隔和 0 秒的从机延迟。确保输入这些值后选择" | ||
![](http:// | ![](http:// | ||
- | 外设以通电并且成功连接之后,您可以在BTool界面的" | + | 外设以通电并且成功连接之后,您可以在 BTool 界面的" |
![](http:// | ![](http:// | ||
## 广播状态功耗测试 ## | ## 广播状态功耗测试 ## | ||
- | 我们设置以下几个广播间隔进行功率测试:100ms、500ms、1000ms。 | ||
- | |蓝牙状态|广播间隔|TI LaunchPad平均电流值|CC2640R2F Evaluation Board平均电流值| | + | 设置以下几个广播间隔进行功率测试:100 ms、500 ms、1000 ms。 |
+ | |||
+ | |蓝牙状态|广播间隔|TI LaunchPad 平均电流值| CC2640R2F Evaluation Board 平均电流值| | ||
|: | |: | ||
|广播|100 ms|81.3 uA|77.2 uA| | |广播|100 ms|81.3 uA|77.2 uA| | ||
行 55: | 行 68: | ||
|广播|1000 ms|6.9 uA|7.0 uA| | |广播|1000 ms|6.9 uA|7.0 uA| | ||
- | 如下图所示。**这是在广播周期为100ms使用示波器和外用表获取平均电流信息**。示波器两端探头并联一个10欧电阻。测量的平均电压值(平均电流值=平均电压/ | + | 如下图所示,**这是在广播周期为 |
![](http:// | ![](http:// | ||
+ | |||
+ | 下图中还展示了使用万用表显示的平均电流值,同样左边为 TI CC2640R2F LaunchPad 的平均电流值。右边为< | ||
+ | |||
![](http:// | ![](http:// | ||
- | 如下图所示。**这是在广播周期为500ms使用示波器和外用表获取平均电流信息**。示波器两端探头并联一个10欧电阻。测量的平均电压值(平均电流值=平均电压/ | + | 如下图所示,**这是在广播周期为 |
![](http:// | ![](http:// | ||
+ | |||
+ | 下图中同样对比了两块开发板的平均电流值。 | ||
+ | |||
![](http:// | ![](http:// | ||
- | 如下图所示。**这是在广播周期为1000ms使用示波器和外用表获取平均电流信息**。示波器两端探头并联一个10欧电阻。测量的平均电压值(平均电流值=平均电压/ | + | 如下图所示,**这是在广播周期为 |
![](http:// | ![](http:// | ||
+ | |||
+ | 下图中同样对比了两块开发板的平均电流值。 | ||
+ | |||
![](http:// | ![](http:// | ||
## 连接状态功耗测试 ## | ## 连接状态功耗测试 ## | ||
- | 我们设置以下几个连接间隔进行功率测试:20ms、100ms、500ms、1000ms。 | ||
- | |蓝牙状态|连接间隔|TI LaunchPad平均电流值|CC2640R2F Evaluation Board平均电流值| | + | 设置以下几个连接间隔进行功率测试:20 ms、100 ms、500 ms、1000 ms。 |
+ | |||
+ | |蓝牙状态|连接间隔| TI LaunchPad 平均电流值| CC2640R2F Evaluation Board 平均电流值| | ||
|: | |: | ||
|连接|20 ms|269.6 uA|259.8 uA| | |连接|20 ms|269.6 uA|259.8 uA| | ||
行 79: | 行 105: | ||
- | 如下图所示。**这是在连接间隔为20ms使用示波器和外用表获取平均电流信息**。示波器两端探头并联一个10欧电阻。测量的平均电压值(平均电流值=平均电压/ | + | 如下图所示,**这是在连接间隔为 20ms 使用示波器和万用表获取平均电流信息**。示波器两端探头并联一个10 欧电阻,测量的平均电压值(平均电流值 = 平均电压/ |
![](http:// | ![](http:// | ||
+ | |||
+ | 下图中还展示了使用万用表显示的平均电流值,同样左边为 TI CC2640R2F LaunchPad 的平均电流值。右边为< | ||
+ | |||
![](http:// | ![](http:// | ||
- | 如下图所示。**这是在连接间隔为100ms使用示波器和外用表获取平均电流信息**。示波器两端探头并联一个10欧电阻。测量的平均电压值(平均电流值=平均电压/ | + | 如下图所示,**这是在连接间隔为 100ms 使用示波器和万用表获取平均电流信息**。左边示波器打印 TI CC2640R2F LaunchPad 的数据,右边示波器打印< |
![](http:// | ![](http:// | ||
+ | |||
+ | 下图中同样对比了平均电流值。 | ||
+ | |||
![](http:// | ![](http:// | ||
- | 如下图所示。**这是在连接间隔为500ms使用示波器和外用表获取平均电流信息**。示波器两端探头并联一个10欧电阻。测量的平均电压值(平均电流值=平均电压/ | + | 如下图所示,**这是在连接间隔为 500ms 使用示波器和万用表获取平均电流信息**。左边示波器打印 TI CC2640R2F LaunchPad 的数据,右边示波器打印< |
![](http:// | ![](http:// | ||
+ | |||
+ | 下图中同样对比了平均电流值。 | ||
+ | |||
![](http:// | ![](http:// | ||
- | 如下图所示。**这是在连接间隔为1000ms使用示波器和外用表获取平均电流信息**。示波器两端探头并联一个10欧电阻。测量的平均电压值(平均电流值=平均电压/ | + | 如下图所示,**这是在连接间隔为 1000ms 使用示波器和万用表获取平均电流信息**。左边示波器打印 TI CC2640R2F LaunchPad 的数据,右边示波器打印< |
![](http:// | ![](http:// | ||
- | ![](http:// | ||
+ | 下图同样对比了平均电流值。 | ||
+ | |||
+ | ![](http:// | ||
行 129: | 行 170: | ||
</ | </ | ||
- |