关于CC2640的功耗问题
// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic
// parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 80
// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic
// parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 160
// Slave latency to use if automatic parameter update request is enabled
#define DEFAULT_DESIRED_SLAVE_LATENCY 3
关于这三个参数如何修改才可使实现所需要的功能呢?我实验修改了很多数据,最终在示波器上的结果都一样,包间间隔30ms,两个包间还有接近30个小的波峰,间隔约1ms,这些小的波峰是什么呢?CPU定时醒来查看时候有待发的数据包吗?还是别的什么机制?
xianglin,
需要宏定义
#define DEFAULT_ENABLE_UPDATE_REQUEST TRUE
你的另外一端是什么设备呢?是iOS设备吗?
如果是iOS设备的话,你的另一个参数,DEFAULT_DESIRED_CONN_TIMEOUT不能超过6S,我记得。
你看到的小波峰应该是内部DCDC的recharging,为了维持在低功耗模式下面的内存保持,但貌似你的图看上去有点不太像最新的SDK的行为。
你用的是最新的SDK和RTOS测试的吗?
你说的这个宏定义我有,设备端是Android的,荣耀7,SDK确实是2.0的,我也有2.1的,先用的2.0测试的。测试修改了很多连接间隔的最大值和最小值,最后测试结果都是默认值30ms左右。小波峰的电流比较小,约2uA左右。
连接间隔的修改有什么要求吗?最大最小值成倍数或者别的机制?有什么文档讲这部分的吗?谢谢。如果我想更低的功耗是不是只要需要改大连接间隔就可以了?!
xianglin,
这些参数是连接好之后一段时间后外设发起的更新参数请求。注意是一段时间以后。
是,连接间隔改大,能显著降低功耗。这些参数的范围定义都是在蓝牙的spec里面第六章,你可以去看一下。
侧功耗还是先膜拜一下这篇application note吧
SWRA478–February 2015 Measuring Bluetooth® Smart Power Consumption
你好YAN,内存保持是上图中的图1的标红部分还是图2的标红部分呢?我觉得应该是图1的吧?协议栈是2.1的,CC2640RSM。谢谢
xianglin,
从波形来看应该是,但不知道你的刻度是多少,但没关系。
你可以看一下这个功耗测试文档,对照一下里面的内存保持电流:http://www.ti.com/lit/an/swra478/swra478.pdf