我在协议栈中进行了各项设置,经过调试发现CC2530已进入了PM2定时器睡眠模式,但不知道具体怎么设置想要睡眠的时间?
若使用osal_start_timerEx最大只能睡眠65s,我想设置更长时间的睡眠!
另外,经过万用表和示波器测量(串接10欧的电阻),发现睡眠时的功耗达到了5mA,这个电流值太大了,与CC2530说明文档不符!我的测量方法是没有问题的,请问是什么导致了这个大电流的?
VV:
数据手册上写的是最小系统的休眠电流1uA
如果你用Z-stack的话,休眠时间不是你自己定,而是有系统自己设定,每次都是以最近发生的那个osal_timeout作为休眠时间。
anming du:
回复 VV:
Ztack中定义的最大定时器睡眠时间是510s,如果睡眠时间不是自己定义的,请问该如何实现最大时间的定时器睡眠呢???谢谢
ximing liang:
回复 VV:
你好,我想问的是:每次都是以最近发生的那个osal_timeout作为休眠时间,怎么样知道osal_timeout的值是多少?
VV:
回复 ximing liang:
这个timeout主要分为两类,一类是应用层事件的timeout,另外一类是MAC层事件的timeout,
应用层的timeout的时间,是在osal_pwrmgr_powerconserve( void )函数中,通过osal_next_timeout();获得的。
MAC层的timeout时间,是通过halSleep( uint16 osal_timeout )函数里面,通过MAC_PwrNextTimeout();来获得的。
Beck Yang:
回复 VV:
其实在osal_pwrmgr_powerconserve中也是调用了halSleep, 我通过加断点debug发现,每次给halSleep传入的都是300左右,这就导致了unit会不断睡眠和唤醒,这个现象是联网正常的时候才出现的,如果连不到网络,频率会慢一些,不顾依然会不断睡眠唤醒。
我想知道,如何让一个设备连入网络后,进入长时间睡眠?除非用按键来中断唤醒。
JACK xiao1:
回复 Beck Yang:
我也想知道 节点在进入网络后,进入深度休眠PM3模式,由按键,或是其他形式的中断来唤醒,比如一些传感器,传感器在搜集完毕数据后给2530中断信号,将2530从PM3模式中唤醒然后将传感器的数据发送到协调器,我看了不少资料,就是没有一个系统的讲解,有说这样能有说那样的,迷惑很久了,希望TI的大大们帮开一个主题将将这个吧
xu zhang7:
回复 VV:
您好,现在我无法知道自己是否进入了PM2模式,现在测得的电流是0.01mA,大概和官方文档里PM2的睡眠电流还有10倍的差距。所以我想请问一下:
1. 怎么查看系统是否进入了PM2模式
2. 针对Ztack2.5.1a,从系统正常功耗工作到低功耗PM2工作的具体设置流程是怎么样的。
希望您能解答一下,谢谢
Yuntian he:
您好 我也在做zigbee协议栈的低功耗 可是结果电流总在1ma-10ma左右 ,貌似进不去低功耗休眠pm2.想请教下 您是怎么设置的
MarS:
回复 VV:
休眠时间不是可以通过以下三个函数修改吗?
NLME_SetPollRate(?);//ms NLME_SetQueuedPollRate(?); NLME_SetResponseRate(?);
MarS:
回复 xu zhang7:
你的电路中是否有外围器件,比如LDO 或者LED 之类的