Part Number:CC2530Other Parts Discussed in Thread:Z-STACK,
你好,请问下终端本已正常加入协调器网络。但是两者同时断电并再次上电后,终端都无法加入协调器建立的网络。重复多次,有时终端可以与协调器组网,有时不能。请问下知道这个问题的原因么?A20_DATA.psd
终端和协调器都没有设置NV_RESTORE。用的协议是Z-Stack Mesh 1.0.0。
Shuyang Zhong:
可以参照以下链接,试一下有没有效:
https://www.cxyzjd.com/article/u012327215/109432743
Best regards,
Shuyang
,
YiKai Chen:
终端和协调器都没有设置NV_RESTORE的話,你协调器需要一直使能permit join
,
Kimi_cheng:
测试了下,应该可以了。谢谢。
,
Kimi_cheng:
我现在把协调器NV_RESTORE,终端因为一些要求所以不能设置NV_RESTORE。3.0的版本我知道哪个设置permit jion。mesh版本设置的API可以发给我么。
,
YiKai Chen:
mesh版本设置的API跟3.0是一樣的
,
Kimi_cheng:
好的,我修改下试试。
,
Kimi_cheng:
你好!
1、我在APP初始化函数里面加了NLME_PermitJoiningRequest(255);多次重启协调器和终端,还是有终端不能入网的问题。
2、我的代码中有一个功能,就是在ZDO_JoinIndicationCB()这个回调函数中,加了一个入网终端的ExtendedAddress地址查询。我在NV里面存了一些终端的64bit地址。ZDO_JoinIndicationCB中判断如果申请入网的ExtendedAddress不在NV中,就不允许入网。我现在屏蔽了此功能,重启协调器和终端,设备都能很快的入网了。我想问下这个功能为什么会导致上述问题呢。
,
YiKai Chen:
是不是因為某些原因讓申请入网的ExtendedAddress不在NV中,所以就不允许入网了
,
Kimi_cheng:
1、我只有在第一次烧录完程序(擦除FLASH)的时候,上电在外部特定条件下执行osal_nv_write(),将ExtendedAddress写入需要的NV地址中,所以被误修改的可能性不大吧;
2、我在APP初始化的时候会循环执行osal_nv_item_init(A10_No1,8,NULL),擦除下存储ExtendedAddress的地址。但是这个函数应该只有第一次起作用,之后每次上电调用应该不起作用吧?
,
YiKai Chen:
不允许入网的狀況發生時执行osal_nv_write(),将ExtendedAddress写入需要的NV地址中,看看是不是就能入网就知道是不是被误修改
,
Kimi_cheng:
我测试了下,应该不是NV被修改导致的。终端无法入网时重写NV也不行。我目前是用一个协调器同24个终端组网。减少部分终端后多次重启终端可与协调器组网。这难道是CC2530芯片能力的问题么。但是不判断ExtendedAddress时,24个都可以入网。我抓的包在附件里,能帮忙分析下么。
,
YiKai Chen:
沒有看到抓包檔、不過這個問題應該是你自己加的程序造成