微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > 关于CC2530低功耗的一些问题求助

关于CC2530低功耗的一些问题求助

时间:10-02 整理:3721RD 点击:
最近做ZigBee相关的项目,学习阶段使用的是CC2530开发套件,东西做了个基本的功能出来,到了低功耗这里遇到了一些问题,想像各位大大请教一下。
学习过程中了解到cc2530的两种睡眠模式,通过内部时钟定时唤醒或者外部中断唤醒,对于内部时钟定时唤醒存在一些疑问,文档中有提到内部时钟唤醒的时间是由OSAL层自己定义的,不是由用户规定,那这个时间是如何计算出来的呢。
另外,如果我需要一个ZigBee终端平常是出于休眠状态,一旦接收到协调器发来的信号唤醒,这个可不可能实现呢?因为要做的东西是放在一个地方好久都不会去动他的节点,显然外部中断不可能的,而协调器发来信号也不是确定的时间,那定时唤醒好像也不能实现,求问各位有没有比较好的解决方案?

小弟在此谢过

如果终端处理休眠模式的话,没有任务就会处于休眠模式,你可以研究下TI的配置f8wConfig.cfg
/****************************************
* The following are for End Devices only
***************************************/

-DRFD_RCVC_ALWAYS_ON=FALSE

/* The number of milliseconds to wait between data request polls to the coordinator. */
-DPOLL_RATE=1000

/* This is used after receiving a data indication to poll immediately
* for queued messages...in milliseconds.
*/
-DQUEUED_POLL_RATE=100

/* This is used after receiving a data confirmation to poll immediately
* for response messages...in milliseconds
*/
-DRESPONSE_POLL_RATE=100

/* This is used as an alternate response poll rate only for rejoin request.
* This rate is determined by the response time of the parent that the device
* is trying to join.
*/
-DREJOIN_POLL_RATE=440

无线协议栈不支持无线唤醒功能

终端如果你不常用,又要收到协调器数据,那你必须定期去协调器那取数据,没有其他办法,ZigBee协议栈不接受无线唤醒,具体多久取数据,看你项目需求!

功能是可以实现的。按照你的需要,终端需要进入pm2,定时睡眠才行, 如果是pm3(深度睡眠),那你只能通过外部唤醒 显然不符合你的需求。那么怎么进入pm2呢,是根据你的事件系统决定的,如果你睡眠开启(网上一堆事例),组网成功终端进入睡眠,唤醒是根据你最近一次登记的事件来唤醒的,如果没有任何事件那么终端会进入pm3深度睡眠,维持pm2定时唤醒的前提就是,一直要有事件处理。1,睡眠时间计算, 这个是内部的哪个定时器计算的 你不用管,你只要登记事件就行,比如你登记一个5s事件,睡眠5s会自动唤醒osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, 5000);,处理这个事件的地方 你自己找。2 用pm2可以实现 ,是用一只登记一个事件比如5s, 也就是说可以每5s唤醒处理这个事件。DPOLL_RATE=1000配置这里默认是1, 现象是每1s唤醒去问协调器(父节点)发数据请求,然后协调器收到请求后查看缓存有没有这个终端的数据,有就给终端发过去,所以你不用担心睡眠的时候你接收不到协调器数据,因唤醒后才收到,这是他们的通讯机制。望采纳 球芯币

你这个只能用PM2来实现,关于睡眠的时间受很多方面的影响
1)睡眠定时器最大值510S;2)定时器事件最大时间为65536,所以是65S;3)-DPOLL_RATE=1000的值,太大的话那么终端轮询的时间间隔就越大,而协议栈默认父节点只为其子设备保留数据的时间为7.5s,否则就接收不到数据。关于这个7.5s是否能改,我还在探索,如果不能改,那最大的睡眠时间只能是7.5s了。
综上所述最大的睡眠时间受多方面的因素影响!

具体的做法就是定期data request

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top