欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

CC2630 TIMAC协议栈低功耗问题

发布时间:2024/3/24 编程问答 56 豆豆
生活随笔 收集整理的这篇文章主要介绍了 CC2630 TIMAC协议栈低功耗问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

项目功能: 采集5s数据发送——休眠5s——采集5s数据发送,循环往复

平台: CC2630

协议栈:timac_1_05_02_43299


问题描述:  在休眠5s的过程中,整体电流在7,8ma,只比数据发送低1ma,这是不科学的。验证没有event在跑的时候


是可以到3,400ua的电流消耗的(主要是板子上的传感器功耗)。


看了TI的RTOS,TIMAC协议介绍,以及社区的问答,都没有给出解决问题的办法或者提到这一现象。


着重强调的都只有一点:RTOS会管理功耗。


试了一下   联网——采集5s数据发送——断网——休眠5s——联网——采集5s数据发送——断网,这样的方案,但是对于同一个协调器,每次联网都会重新分配shortaddress,到


了0x10地址后,就不能再进行连接,终端持续搜索信道。这个方案PASS掉。


解决方法:之后想看看RTOS到底是如何实现低功耗管理的,遂搜索 IDLE 关键词,有了意外的发现。

    

这里有一句话:TRUE if the MAC enables its receiver during idle periods 。 继续搜索MAC_RX_ON_WHEN_IDLE 关键字,发现如下判断,赋值函数。


再搜索 msa_IsDirectMsg  发现他的初值虽然是 FALSE,但是在按键处理函数,即扫描信道函数   MSA_ScanReq(MAC_SCAN_ACTIVE, 3); 之前却赋值了MSA_DIRECT_MSG_ENABLED,MSA_DIRECT_MSG_ENABLED 是 TRUE的宏定义。


这样问题就很明朗了,原来是系统设置,在IDLE模式下,射频部分没有关闭导致的电流消耗


只要将MSA_DIRECT_MSG_ENABLED 宏定义改为 FALSE 即可。


之后又搜索到一个TI英语论坛链接,讲到了这个问题。


https://e2e.ti.com/support/wireless_connectivity/proprietary_2-4_ghz/f/964/p/578271/2126272


这个问题困扰了我半个多月,希望能帮到需要的人。_(°:з」∠)_



总结

以上是生活随笔为你收集整理的CC2630 TIMAC协议栈低功耗问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。