近期的几个问题着实让人头疼,解决时间长,过程也是相当曲折;
问题一、丢包率高;
测距丢包率很高,一直在40%以上;
还好硬件同事不甩锅,发现硬件PA的问题,重新修改了一版硬件后,确实丢包率下来了好多,还是需要有一群靠谱的伙伴;
当然软件这块也做了好多修改,丢包重试,sniffer模式的实现;
在硬件同事稳定的版本基础上,实现一个单发单收的版本,丢包率能控制在了1%以下;
问题二:待机功耗高;
2s定位一次,5分钟的平均功耗一直在2ma左右,对比竞品2s定位一次,5分钟的平均功耗只有800微安;
功耗仪上测试了好几版,抓波形,分析工作时长;然后对比分析竞品的工作时长,找到功耗消耗长的原因,主要有几个:
第一个:TX工作时长在3ms,根据官方手册,如果工作速率在110kbps,tx的时间确实在3ms左右:
第二个:RX时间长;
对比分析,是我们的配置导致的,修改前的配置:
dwt_config_t config = { 2, /* Channel number. */ DWT_PRF_64M, /* Pulse repetition frequency. */ DWT_PLEN_1024, /* Preamble length. Used in TX only. */ DWT_PAC32, /* Preamble acquisition chunk size. Used in RX only. */ 9, /* TX preamble code. Used in TX only. */ 9, /* RX preamble code. Used in RX only. */ 1, /* 0 to use standard SFD, 1 to use non-standard SFD. */ DWT_BR_110K, /* Data rate. */ DWT_PHRMODE_STD, /* PHY header mode. */ (1025 + 64 - 32) /* SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */ };
官方例子提供的配置:
最后功耗能降下来使用的配置:
dwt_config_t config = { 2, /* Channel number. */ DWT_PRF_64M, /* Pulse repetition frequency. */ DWT_PLEN_128, /* Preamble length. Used in TX only. */ DWT_PAC8, /* Preamble acquisition chunk size. Used in RX only. */ 9, /* TX preamble code. Used in TX only. */ 9, /* RX preamble code. Used in RX only. */ 1, /* 0 to use standard SFD, 1 to use non-standard SFD. */ DWT_BR_6M8, /* Data rate. */ DWT_PHRMODE_STD, /* PHY header mode. */ (129 + 8 - 8) /* SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */ };
最后还剩下一个基站的吞吐量有待提升,继续加油!
-------------------广告线---------------
项目、合作,欢迎勾搭,邮箱:promall@qq.com
本文为呱牛笔记原创文章,转载无需和我联系,但请注明来自呱牛笔记 ,it3q.com