Part Number:CC2652POther Parts Discussed in Thread:Z-STACK
SDK类型 simplelink_cc13xx_cc26xx_sdk_6_40_00_13
项目需求,满足200个子设备(无路由设备)直连协调器。
修改宏定义
ZDSECMGR_TC_DEVICE_MAX 由默认值 40 改为 200
NWK_MAX_DEVICE_LIST 由默认值 20 改为 200
编绎未提示任何错误,测试抓取LOG发现,加入网络时,beacon request, association request, association response, transport key, device announce都很顺利,问题在于后续TCLK update过程,子设备连续发送了多次request key都未收到协调器的回应,超时后,子设备会自动离网。
如果我将以上宏定义恢复为默认值,则一切顺利。
请问,协调器最多可允许几个子设备加入网络?是不是因为超过最大值导致了问题?还是我修改宏定义不全面,漏改了某些参数呢?
join nwk log.zip
Galaxy Yue:
你好,
理论上,最多支持200个设备
sinjin guo 说:还是我修改宏定义不全面
可能是宏定义或者参数未更新
,
sinjin guo:
能指导一下要修改哪些宏定义,以支持200个设备吗?我核对一下我是哪个步骤出错了,所以遇到前面提到的问题。
,
sinjin guo:
我不认为是参数未更新,正如前面所提到,当我把参数恢复为默认值时,加网正常,说明是更新了,才恢复了正常。
,
sinjin guo:
补充一下,200个,是指直连到协调器(无路由设备)的模式吗,还是一部分连接到协调器,一部分连接到路由设备,加起来200个呢?
,
Galaxy Yue:
sinjin guo 说:我不认为是参数未更新
明白的
关于宏定义使用为什么不正确的问题以及200个模式,我已经升级到英文论坛,有消息立马通知您,谢谢
,
Galaxy Yue:
最直接的问题是,默认情况下可能没有足够的 NV 内存来存储 200 个设备 TCLK 条目,因此 NV 初始化和后续 TCLK 条目请求在 TCLK 更新过程中失败。您可以参阅《Z-Stack 用户指南》 中的修改非易失性内存分配以了解更多详细信息。如果这不能解决问题,那么您可以从 ZC 项目代码中进一步调试 NVOCMP_initNv 和 ZDSecMgrTclkReq 以隔离问题。
我建议审查SWRA650,尽管本指南是针对网状网络性能的。实际上,如果多个设备报告和/或数据请求同时传入,或者如果 ZC 必须为最近未签入的休眠 ZED 排队太多消息,大型星形网络可能会给 ZC 带来太大压力。 TI 尚未使用 Z-Stack 对如此大型的星形网络进行严格的测试。
,
sinjin guo:
1、我测试过扩大nv内存,NVOCMP_NVPAGES增加大5(目前为3),没有效果。
2、调试ZDSecMgrTclkReq,发现在调用APSME_SearchTCLinkKeyEntry(initExtAddr,&found, &TCLKDevEntry)时,变量found反馈为false,因为这个函数的源码未开放,所以我这边也无法继续分析了,原因不明。
这个问题估计一时半会解决不了,后续有新进展麻烦回复一下,我先关闭问题。
,
Galaxy Yue:
没事的,不用关闭
可以追踪下面这个link
https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1342239/cc2652p-how-many-child-devices-can-the-coordinator-allow-to-join-the-network
有进展了我会通知您的
,
Galaxy Yue:
Projects Properties’ Build → Arm Compiler → Predefined Symbols as well as Build → Arm Linker → Advanced Options → Command File Preprocessing…Users will also need to modify the aforementioned NVOCMP_NVPAGES=2 locations along with Region Base and Region Size settings in the project’s .syscfg file TI Drivers → NVS → Internal Flash."
你也这样做了吗?详细列出所有修改的位置。确保在重新编程之前擦除所有设备内存。
,
sinjin guo:
非常感谢,如你所说,更改FLASH大小,有3个步骤,我漏掉了最后一个步骤,未调整Region Size,更改后测试一切正常了。
,
Aries Lord:
支持200个节点,NV需要3个page才够用