怎么把ZIGBEE的功耗降到极低?
有没有什么办法可以把ZIGBEE的功耗降到极低,而又不影响通信;有没有这方面成功的案例和例程
若是终端节点的话,可以进入低功耗模式 PM3 。 但一般进入低功耗会禁用晶振,导致无法传输无线信息,只能等其被唤醒后去父节点请求被缓存的消息。
请问您现在的应用环境是怎样的?
你好Susan, 我在调试的时候发现只能进入PM2,要有什么条件才能进入PM3呢?
当你把zgPollRate=0,当系统的timeout为0的时候,就会进入PM3 /* HAL_SLEEP_PM2 is entered only if the timeout is zero and * the device is a stimulated device. */ halPwrMgtMode = (timeout == 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER; /* DEEP sleep can only be entered when zgPollRate == 0. * This is to eliminate any possibility of entering PM3 between * two network timers. */
Hi Susan
1. 注释里面是不是写错了啊?
/* HAL_SLEEP_PM2 is entered only if the timeout is zero and * the device is a stimulated device. */
2. 另外请教一下stimulated device是个什么概念?
3. 通过单步调试能看到设备可以进入PM3么,也就是halPwrMgtMode的值可以看到是HAL_SLEEP_DEEP?
Thanks
注释没有错误的
/* DEEP sleep can only be entered when zgPollRate == 0. * This is to eliminate any possibility of entering PM3 between * two network timers. */
您可以参考hal_sleep.c
http://zigbee-in-supermaket.googlecode.com/svn/trunk/Components/hal/target/CC2530ZNP/hal_sleep.c
我都晕死了,PM3是不是deep sleep? 代码注释的地方明显是有矛盾的。。。。到底哪个是对的
/* HAL_SLEEP_PM2 is entered only if the timeout is zero and * the device is a stimulated device. */ halPwrMgtMode = (timeout == 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER;
/* DEEP sleep can only be entered when zgPollRate == 0. * This is to eliminate any possibility of entering PM3 between * two network timers. */