微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 关于协调器掉电问题

关于协调器掉电问题

时间:10-02 整理:3721RD 点击:

试验如下,发现一个问题,不知为啥。一共3个设备,一个协调器,一个路由器,一个终端,设计软件:ZStack-CC2530-2.5.1a  GenericApp,宏定义包括了NV_RESTORE;测试距离,在一个桌子上,一米内;之前因为已经组过网,所以地址都已经写入NV里面;

 第一步:C下面挂了一个路由,一个终端,这个时候我发测试命令给R和ED,两个设备都可以收到,有指示灯看到,sniff抓发送数据,ED为500ms    datarequest 协调器;

下一步:把C掉电了,因为R可以维持网络,所以ED加入到R网络中,同样是500ms Datarequest路由器;

下一步:把C上电,串口发送命令,再次控制R,大概过几秒后,可以控制,但是控制ED就不可以了,监控下发送数据,根本就没发出去,不知道为啥?我知道ED地址,为啥在协调器串口发送测试命令,程序调用 AF_DataRequest(...AF_DISCV_ROUTE , AF_DEFAULT_RADIUS),只要知道目标地址,应该可以控制,但是事实不能?

求TI大神给解下,为什么?谢谢

您的三个设备是否都编译了NV_INIT与NV_RESTORE?

是的,三类设备都编译了NV_RESTORE,但是NV_INT没有编译,难道和这个有关系嘛,我先试验下,看下结果。

 

我刚把NV_INT也加上去了,效果还是一样,终端父节点由协调器更换为路由器,然后协调器断电,再次上电,通过串口给协调器发命令,还是不能控制ED,

和NV_INT应该无效。不知道大家有没遇到这类问题,你们可以做下试验?求解决?

终端的短地址变了。

 这不和我遇到的问题一样吗?

有人回答说是协议栈的bug,回避和困难的。

按理说,用新的短地址发送数据,如果协调器本身没有查询到这个短地址,应该会自动一个路由请求的。抓包看看,有没有这个包。

同时在试下用广播看看能收到不?

首先地址没有变化,我加上NV_RESTORE,在这之前我组了好几次网,地址早就分配好了,

我用抓包软件看了,发不出去,一直找不到原因,至于广播没试验下。

你好,

当你的终端设备加到路由器以后,协调器上电的时候认为之前的终端设备还是自己的子设备,所以发数据的时候直接发出去了,这个数据时buffer在协调器的底层,等待自己的子设备通过data request来获取。

V哥,你好。我已经明白你的意思了,那么怎么解决这个问题,是不是需要子节点更换父节点后,再次向协调器发送下数据,是不是就可以解决了,

还有其他办法吗?实际项目中,子节点跳动很平常的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top