请指教,Z-Stack 2530协议栈中低功耗休眠设置的问题
您好:
我用的协议栈版本是:ZStack-CC2530-2.2.0-1.3.0
想做一个应用:终端节点入网完成以后进入休眠模式,然后通过外部中断的方式唤醒后发送数据并接受确认,之后再次进入休眠模式等待下一次的外部中断唤醒。
但是我发现协议栈使能POWER_SAVING之后使用的是周期性休眠-唤醒机制,请问该如何设置呢?
目前协议栈主要使用的是PM2模式,也就是休眠定时器工作的,主要是因为系统有些事件需要去poll,需要定时来做事件的唤醒,所以不能进入PM3模式,一旦进入PM3以后只能通过Reset或者IO外部中断才可以唤醒了。
如果你要求进入PM3模式的话,你需要确认在进入休眠的时候,你的系统是不是还有事件在poll,或者可能会发生。如果没有的话,拿timeout就是0,就自动进入PM3模式的了
具体在hal_sleep函数里面。
您好:
非常感谢你的回复!
我在普通终端节点入网完成之后在进入深度休眠模式,应用层只是在被外部中断唤醒之后设置一段延时,接收串口数据,并进行无线收发,这样就不存在你指的poll了吧,敬请指教!
如果你是用了TI的Z-stack的话,那么在z-stack里面是有一个OSAL的操作系统的,是基于时间片的也就是轮询机制,所以一些底层事件的处理,都是通过poll来实现的。
这个我明白,那我现在主要就是想进入深度休眠(DEEP SLEEP)模式,请问改怎么设置呢?
1 预编译 POWER_SAVING
2 设置-DRFD_RCVC_ALWAYS_ON = FALSE(f8wConfig.cfg)
3 OnboardKeyIntEnable = HAL_KEY_INTERRUPT_ENABLE;(Onboard.c)
4 -DPOLL_RATE=0
您可以参考链接 http://e2e.ti.com/support/low_power_rf/f/158/t/190159.aspx以及http://e2e.ti.com/support/low_power_rf/f/158/t/121992.aspx
您好!
请问下 我zigbee协议栈中,直接人为的设定halSleep(0);可是测定的电流是1.6mA 按理来说不应该是uA级别的吗?
已经按您给说的设定为低功耗了。求给指导下
把POLL_RATE也改成0.
另外看下外设是否还有在消耗电流
您好 vv大神
感谢您的回复。
设置如下:
1.编译:POWER_SAVING
2.三个poll-rate 都设定为0
3.Key polling disabled HalKeyConfig(HAL_KEY_INTERRUPT_ENABLE, OnBoard_KeyCallback);
4.电源初始化时用了pwrmgr_device = PWRMGR_BATTERY;
用的是最小的核心板 ,就一个led灯 ,可是测的电流就是ma级别。是不是其他的地方还需要设置下?我自己用这个核心板做基础测试,发现能进低功耗,但用协议栈就一直进不去 求VV大神给指导下
LED灯不要有输出,用精度高点的数字万用表测。
你好 我现在进入PM3的模式 外部中断唤醒之后,发送一个数据,外部有LED指示,LED已经反应了,但是Coor 没有接收到数据,抓包也没有发现
请问,PM3唤醒之后,怎么才能发送数据,需要判断当前设备处于那些状态吗?