51uwb.cn

标题: DWM1000 使用官方twr测距,测距失败 [打印本页]

作者: wo4fisher    时间: 2020-10-20 22:20
标题: DWM1000 使用官方twr测距,测距失败
移植官方TWR测距,原来使用stm32f103,可以实现一个基站和两个标签的测距。
现在使用STM32G030,可以读取芯片ID。然后继续就有问题了,网上查阅修改各种延时时间都没办法解决问题。
出现的问题主要有:
1.标签发送完之后,基站接收到poll包之后,发送resp包之后,出现如下的错误状态
#define SYS_STATUS_HPDWARN      0x08000000UL    /* Half Period Delay Warning */
#define SYS_STATUS_RXSFDTO      0x04000000UL    /* Receive SFD timeout */
#define SYS_STATUS_RXPTO        0x00200000UL    /* Preamble detection timeout */
1.1  中间有段时间,出现可以正常twr测距的情况,但是最后计算结果飘的离谱,在正的5位数和负的六位数(十进制)之间来回飘...
2.今天重新移植后,使用01a和02a例程,发送端正常循环发送,接收端接收到帧后,读取SYS_STATUS_ID的24位状态为:0xFFFFFFFF,或者高8位偶尔出现非0xFF的情况,读取frame_len==0x3ff,也就是1023个字节,读取缓存数据最后一个字节为0x00,其它为0xFF。
求解,问题出在了哪个地方??

作者: 蓝点无限    时间: 2020-10-21 07:53
建议你移植的时候,一个模块依然用103的程序,例如基站, G030 跑标签。
有问题的话那肯定就是标签代码有问题,这样好排查,两个一起弄,纠缠在一起不好debug
作者: wo4fisher    时间: 2020-10-21 11:33
蓝点无限 发表于 2020-10-21 07:53
建议你移植的时候,一个模块依然用103的程序,例如基站, G030 跑标签。
有问题的话那肯定就是标签代码有 ...

感谢
其实这样的尝试已经进行过了,标签用STM32G030,基站依然用STM32F103,是可以使用的。但是把基站也换STM32G030之后,测距就失败了。
中间状态之前使用printf打印调试信息,后来查资料,意识到了这个问题后,去掉printf,在debug模式下,读取中间过程的状态(比如starttx之后的发送状态或者标签侧resp包),依然还是返回错误,主要是   未检测到前导码或者rx接收超时  或者tx发送超时。
怀疑还是uwb本身使用twr时严格的时序相关,但是改延时时间也是同样的效果,即便能twr成功,距离又是错的(中间无printf调试信息输出),现在没有思路了
作者: 蓝点无限    时间: 2020-10-21 14:52
wo4fisher 发表于 2020-10-21 11:33
感谢
其实这样的尝试已经进行过了,标签用STM32G030,基站依然用STM32F103,是可以使用的。但是把基站也 ...

你着重检查下delay tx 这个功能,大的流程应该没有问题,基站和标签除了大流程以外,基站主要用了delay tx




欢迎光临 51uwb.cn (http://51uwb.cn/) Powered by Discuz! X3.3