首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >DW1000的SPI速率

DW1000的SPI速率

作者头像
呱牛笔记
发布2023-10-16 19:11:56
发布2023-10-16 19:11:56
7250
举报
文章被收录于专栏:呱牛笔记呱牛笔记

经过好几个平台迁移DW1000的折磨,总结一下。

一、速率对DW1000的影响主要有两个:

1、MCU的运行速率;

从STM32、nrf、gm技术、sifli等MCU,总结经验是,MCU的运行主频只要高于48MHZ,少打印串口log,以及少用memcpy等耗时操作,对dw1000的操作是不会存在性能瓶颈的。

2、SPI通信速率;

SPI速率主要是SPI主频,官方代码中port_set_dw1000_slowrate 速率大概在2MHz;port_set_dw1000_fastrate高速速率可以配到18MHz,理论上SPI的速率是越快越好!

从最近调测的情况来看,MCU虽然配置了18Mhz,甚至更高,但实际的运行时长却和速率不匹配,这个是最讨厌的,需要通过协议分析仪等分析工具分析不匹配的原因了,耗时往往也是最长的!

二、上面两个的速率对dw1000操作的影响:

1、单次测距时长,也就是从发送P帧,接收A帧,到发送F帧,整个测距时长可能会很长,对吞吐量有要求的产品来说,就成了性能瓶颈了,绝对影响基站的吞吐量;

比方CSDN有博文说是rx的接收延时要配置到12ms,一次测距可能到20ms,那基站最多也就只能支持50个标签/s,吞吐量就大受影响了!

2、影响延时发送F帧的时间配置,比方蓝点博客中说,这个延时发送的延时,可能需要配置为下面时间,而这个时间基本上是ms级的,如果要支持us级的延时配置,就完成不了了;

代码语言:javascript
复制
final_tx_time = dwt_readsystimestamphi32()  + (0x17cdc00/90);// 1ms多

3、自动进入RX,这个保证收包的成功率;

代码语言:javascript
复制
//add for rx auto-reenable
void dwt_setrxautoreenable(int enable)
{
    // Config system register
    pdw1000local->sysCFGreg = dwt_read32bitreg(SYS_CFG_ID) ; // Read sysconfig register

    // Disable smart power configuration
    if(enable)
    {
    	pdw1000local->sysCFGreg |= SYS_CFG_RXAUTR ;
    }
    else
    {
    	pdw1000local->sysCFGreg &= ~(SYS_CFG_RXAUTR) ;
    }

    dwt_write32bitreg(SYS_CFG_ID,pdw1000local->sysCFGreg) ;
}

本文为呱牛笔记原创文章,转载无需和我联系,但请注明来自呱牛笔记 ,it3q.com

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023/09/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档