51uwb.cn
标题:
[重要更新]51uwb_base code中断更新
[打印本页]
作者:
蓝点无限
时间:
2021-6-2 08:47
标题:
[重要更新]51uwb_base code中断更新
在我们的51uwb base code中使用了帧过滤和中断功能,但是有客户反映,
如果同一个区域单纯使用PANID区分网络,偶尔会出现相互干扰问题
。
这个更新主要解决这个问题。
推荐更新 :
同一个区域内存在多套设备的客户
。
更新优先级:
高
在我们的代码中,当正确接收到信息,或者接收到错误信息,都会到中断函数中由软件处理。 这里有个地方就是,如果错误的信息纯让硬件彻底过滤掉,从而减少软件负担。
之前的UWB中断配置部分代码
dwt_setinterrupt(DWT_INT_RFCG | (DWT_INT_ARFE | DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_RPHE | DWT_INT_RFCE | DWT_INT_RFTO /*| DWT_INT_RXPTO*/), 1);
复制代码
除了配置正确接收到信息以外,其它ERROR 情况,也会触发中断。
改进版本中断配置
dwt_setinterrupt(DWT_INT_RFCG , 1);
复制代码
改进后的版本,只有接收到信息正确后才触发中断。
----------------------------------------------------------------------------------------------------------
修改测试,发现如果接收到数据包有问题,接收器就关闭了,导致多个PANID依然干扰。这个干扰不是距离异常波动,而是接收器异常会关闭。
解决办法有两个,
1 当接收器异常关闭,软件检测,重新下一轮测试。这个方法大大降低了测距效率。
2 当接收器侦测到异常关闭后重新打开。
--> 查找DW1000 用户手册,发现可以通过设置RXAUTR 解决这个问题
。
(, 下载次数: 1175)
上传
点击文件名下载附件
于是bphero_uwb.c uwb初始化代码改成如下
// dwt_setinterrupt(DWT_INT_RFCG | (DWT_INT_ARFE | DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_RPHE | DWT_INT_RFCE | DWT_INT_RFTO /*| DWT_INT_RXPTO*/), 1);
dwt_setinterrupt(DWT_INT_RFCG , 1);
dwt_setautorxreenable(1);
复制代码
作者:
藏丶宝
时间:
2021-6-9 12:54
手册是真的难啃
作者:
szmcumcu
时间:
2021-9-30 13:53
非常有效,谢谢楼主的严谨与分析,赞一个
作者:
桂冠vivi
时间:
2021-11-25 18:08
感谢楼主的分享
欢迎光临 51uwb.cn (http://51uwb.cn/)
Powered by Discuz! X3.3