CC2640功耗优化的问题。
开发软件:IAR 7.40
协议栈:ble_cc26xx_2_01_01_44627
硬件:淘宝上采购的CC2640核心板
1.SimpleBLEPeripheral例程的基础上进行的修改,特性值接收到数据后,启动任务的定时器(现在值为1100ms),定时时间到了执行任务,任务函数中包括执行完任务就关闭任务的定时器。下次特性值收到数据后再次启动任务定时器。我把SimpleBLEPeripheral例程中其他关于定时器开启和停止的代码删掉了。
2.使能了POWER_SAVING宏定义,未使用的IO没有做处理。
3.使用DC3.3V电源供电。
4.以下功耗由万用表2mA和200nA电流档测得;
现在的情况:
1.现在广播间隔1s,广播时功耗最大值为63uA,最小值为1uA,电流值是跳跃的,目测功耗平均值应该是小于0.1mA的,这个功耗是能接受的。
2.最小连接间隔为0.9s,最大连接间隔1s,从机延迟1,功耗0.33mA上下浮动,电流值基本稳定。
进一步把连接间隔设置为2s,从机延迟0,功耗还是0.33mA,同时感觉BLE连接的稳定性没有前一种参数好。
请问建立连接后功耗最小可以优化到0.1mA以内吧?最低可以优化到多少?如何优化?
十分感谢!
以上
搭车同问
1. 首先已经有SDK2.2,建议做更新
2. 你用万用表测跳动的值是不准的,有条件的话用功率分析仪,详细参考这篇文档,连接状态为了更准确,代码还需要做些修改http://www.ti.com/lit/an/swra478a/swra478a.pdf
没有功率分析仪能直观看电流,一个简易的办法,用一颗精度高点的10Ohm电阻串在电池负端和板子间,测电阻两端的跨压,图25每个状态的电流做对比,尤其是Standby,Tx,Rx。而平均电流用万用表测电阻两端的电压,大概可以算出来。
3. 1秒的广播间隔,平均功耗应该在19uA算正常。1秒连接间隔,连接情况下平均功耗应该在10uA,2秒连接间隔,平均功耗应该在5uA。
你两次测量,从机延迟设的都不一样,对从机会有影响的。另外,建议用精度高点的测试方法,你用万用表电流档是很难测出来变化的
1. 功耗测量的方法和功耗能达到的水平已知悉;
2. 请问可以从哪些方面来优化功耗?
谢谢!
我用示波器看BLE的连接连接参数,烧录的是TI原版的SimpleBLEPeripheral例程编译出来的hex文件。
测出来的是广播间隔100ms没问题,
但是实测连接间隔是30ms,代码里最小连接间隔是100ms,最大连接间隔是1000ms。
请问为什么参数没有设置成功呢?
连的是手机还是BTOOL? 主机侧是什么?
我是用iPhone 6(iOS9.3.5)上的Lightblue测的,后来换用BTools测试,功耗就降下来了。
Android手机(Nexus 6P, Android6.0.1)上某些APP测的连接间隔为代码里写的1s,某些APP测的连接间隔也是30ms左右。
iPhone 6没有成功更新连接参数,是没有满足ios的规定。
iOS关于连接参数的要求:
● IntervalMax*(SlaveLatency+1)≤2seconds
● IntervalMin ≥20ms
● IntervalMin +20ms≤Interval
● MaxSlaveLatency≤4
● connSupervisionTimeout ≤6seconds
● IntervalMax*(SlaveLatency+1)*3<connSupervisionTimeout
我用TI官方的从机例程,除了连接参数没有任何改动,最小连接间隔125ms,最大连接间隔250ms,从机延迟0,超时4s,这个参数是支持从机更新连接参数的(示波器看的),但是过一阵子就会与iOS断开ble连接。
手机和2640紧挨着,应该不是信号强度的问题;
应该也不是电源的问题,用TI从机例程默认的连接参数,就不会断开ble连接,但是不支持从机连接参数更新,为iOS主机默认的30ms。
请问问题出在哪里呢?
建议用官方板子测试一下。