求助:Z-Stack 2530协议栈中EndDevice低功耗休眠设置的问题
Z-Stack 2530协议栈中EndDevice设置为PM2模式,1s唤醒一次,组好网后,协调器发指令控制EndDevice发送红外38K载波,结束后会高3mA电流,不会降下来。测量发送引脚检查是正常的。
我做的38K载波没用定时器,用的是延时,是否会影响?可我的红外接收也使用的是延时,电流不会升。请问这是什么原因?
我的38K载波一个波形是下面函数做的
void Transmit_38K(void)
{
u8 delay_count;
PORTOUT = 1;
delay_count = 22;
while(delay_count--);
PORTOUT = 0;
delay_count = 22;
while(delay_count--);
}
已确定发送完后发送引脚拉低。
我试过注释掉 PORTOUT = 1;这一行,结果测不会漏电。证明是这里影响的,可以帮忙分析下吗?谢谢
如果系统电流是3mA的话,说明PM2应该已经实现了,只是某些IO的电流消耗问题。
你可以在红外发送弄成以后,把IO的输出设置成0,就我们协议栈里面所做的把LED的OFF掉。
感谢您的回答,但是我用单片,不加底板测试也是一样,并且比对了其他操作和发送38K载波操作,各个引脚状态均相同。
发送完红外,我把红外发送IO的输出已设置成0,实测也是正常的。
我怀疑是系统时钟的问题。因为相同的延时函数在Router中的时间是EndDevice中的时间的4倍长,就是EndDevice其他操作时时钟未改变,发送38K载波时钟频率是就增大了4倍,但是读取这两种操作时CLKCONSTA的值都是0x00.
你说的3mA持续的时间多少?
有通过示波器测过吗?
发送了38K载波后就一直是大3mA(四点几毫安),一直持续,再控制它做其他操作也不会下降。
谢谢了,我们还在测试,有新的进展会立即反馈。
Hi VV
已经查明是因为红外接收器导致的漏电,谢谢你的回答。
您好,看到您这个帖子有个疑问。请问下您的终端节点工作在PM2下,1s唤醒一次。协调器发送指令给终端节点终端节点可以收到数据吗?2530工作在PM2模式下不是不能接收无线信号吗?谢谢
@Chong huang,
建议先了解下ZigBee里面EndDevice的工作机制
谢谢了。。。