cc2530在osal调度下I/O中断唤醒PM2需要设置时钟吗?
我利用osal_start_timerEx定时20秒,让芯片休眠20秒,处于PM2
在这休眠时间之内,我用红外信号输入P0.4,通过中断将其唤醒,然后在P0中断内启动T1,以32MHz的时钟标记对红外信号进行解码
结果发现,解码出来数值基本偏小好多,而且要等几秒钟才能跟协调器通信,我怀疑是时钟没恢复成32MHz
想问一下大神们,用I/O中断将2530从PM2中唤醒,并且马上回复成32Mhz,需要在中断服务例程中设置什么吗?
PS:最最奇怪的事是,如果我把所有定时的event都stop掉,让芯片进入PM3深度睡眠,这时再用I/O中断唤醒,发现中断例程能马上以32MHz正常工作,T1解码结果正确,而且能马上与协调器正常通信
不需要做晶振相关的配置,但是从PM2到Active是需要时间的,数据手册上的值是0.1ms
V V:
我使用芯片cc2530,将
1.工程中添加POWER_SACING
2.DRFD_RCVC_ALWAYS_ON=FALSE
3.pwrmgr_attribute.pwrmgr_device = PWRMGR_BATTERY;
我在程序里每5s发送一次数据,其余时间希望他睡眠,用示波器看并没有进入PM2模式。
我该如何设置工程进入PM2 模式?
睡眠时间跟你的系统的事件有关,如果你的设备是end device。 还有一个周期性为1s的data request poll事件,
你尝试把f8wConfig_cfg中四个DPoll_RATE设为0,再测试下!
也可以参考别人的测试方法
http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/45598.aspx