ZIGBEE 协调器(刷写程序后)PAN_ID+1,与原来路由器无法组网
原因:或许是你下载时,勾选了Erase flash选项,如下图
原因简析
1背景
option》Debuger》Texas Instrument》Download选项用于选择是用于选择在下载是进行哪些操作;
Erase flash是擦除所有flash(默认是没有勾选,但之前为了解决zigbee组网后掉电PANID变化导致的问题,参见了相关的解决方法,其中就有勾选这个选项的步骤——现在想来这个勾选没有必要——当然如果之前flash中如果存储的PANID不一样就必须勾选以清除以前组网信息)
2解释
由于协调器之前已经和路由器组网,并将信息写入了flash(我才用固定PANID,且NV_RESTORE=1
NV_INIT=1);协调器重新刷写程序由于擦除掉了上次组网信息,待协调器重新运行时,按照默认-DZDAPP_CONFIG_PAN_ID=0xABCD组网,结果发现PANID被占用了!?原来网络路由器有保持网络功能)所以就自动+1以组建新网,自然就无法和原来网络通讯。
3测试
为复现刚才的处理方法,分别在路由器协调器成功组网后,先后进行勾选Erase flash 和不勾选Erase flash条件下重新下载程序到协调器。
——勾选Erase flash,协调器无法组网,用packet sniffer观察PANID= 0XABCE,无法通讯;
——不勾选Erase flash,协调器下载程序后,正常迅速恢复到原来网络,PANID=0xABCD;
其它
用的编译器 IAR Embedded Workbench IDE - 8051 10.20.1
zstack版本为:Z-Stack Mesh 1.0.0