微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > cc2530 睡眠定时器唤醒问题

cc2530 睡眠定时器唤醒问题

时间:10-02 整理:3721RD 点击:

     在Zigbee无线传输设计时,网络中采用点对点模式传输数据,其中终端节点采用低功耗模式,采用扫描机制,当没有事件处理时则CPU进入PM2低功耗模式,借助于Sleep Timer睡眠定时器以0.5s周期性唤醒CPU,唤醒后延时约500ms延时,在此延时期间可以接收外部中断、串口中断。

     在测试的时候,协调器约每隔10ms发送一次数据给终端,但是测试时发现终端一直接收不到协调器通过RF发送的数据,不知道为什么?但是奇怪的是,一旦对终端按键中断一次后,终端就可以接受到协调器的数据,并响应协调器发送的命令。

     请问一下,又什么办法解决PM2模式下终端接收协调器数据的问题吗?

终端节点接收数据都是以data request向父节点请求数据时候,协调器才会把数据发出去的。协调器发数据给终端的时候,会存在底层的buffer 队列里面,灯收到data request以后才把数据发出去,因为收到data request以后可以认为终端节点这个时候是醒着的

请教VV大师:

一定要协调器发送数据吗?如果终端节点只是把数据发给它的父节点,然后由父节点回复呢?我现在就遇到设置POWER_SAVING模式后终端定时唤醒发给路由器数据正常,但是需要路由器回复的,终端节点就什么都接收不到了。这个问题该怎么解决啊?需要什么设置吗?

你好,

当节点开启了Power Saving功能以后,当终端节点发送完数据以后就会立刻进入休眠状态,所以当你的路由发数据的也是一样的,在应用层看来数据已经往下发了,但是还是保存在底层的buffer里面,灯终端节点发送data request的时候,再把数据发出去。而这个时候你的路由已经处于休眠状态了。

你可以通过抓包看下,路由有没有把这个数据发出去?

 你好,我遇到一个问题很困惑

现象描述:

pending=1的时候叶子节点会等待父节点发送数据,但是有时父节点在超过maxFrameTotalWaitTime=1220后才下发数据,这是叶子节点已经休眠了。导致这次传输失败,需要等到下次poll才能成功。

问题:

父节点发送慢的可能原因是什么?是cpu性能,还是csma冲突检测机制导致时间变长,还是什么? 谢谢解答,一直困惑

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

网站地图

Top