126、射频校准数据缺失时出现的连接不稳定
上个月帮一个做无线传感网的朋友救火。他们的产品在实验室里跑得好好的,一到现场就出问题:设备上电后能连上,但每隔几十秒就断一次,断了之后重连又正常,然后再断。现场十几台设备,有的断得频繁,有的偶尔断,完全没有规律。他们最开始怀疑是天线匹配的问题,换了天线,没用。又怀疑是电源纹波,换了LDO,还是没用。折腾了快两周,代码改了好几版,问题依旧。我到现场之后,先让他们把一台“故障设备”拿回实验室。结果在实验室里跑了一整天,一次都没断。这就很有意思了——同样的硬件,同样的固件,实验室不断,现场断。后来我用了一个笨办法:把现场那台设备的射频校准数据读出来,和实验室那台对比。一看就明白了——现场那几台设备的校准数据区,有一半是空的。这就是今天要聊的话题:射频校准数据缺失,为什么会导致连接不稳定,以及这类问题在现场怎么判断、怎么取舍。先搞清楚校准数据到底在干什么很多做嵌入式软件的人对射频校准的理解停留在“出厂的时候产线会写一些值进去”。至于这些值是什么、不写会怎样、写错了会怎样,基本没概念。简单说,射频链路上有几个关键参数是随器件个体差异而变化的。比如:载波频率偏移发射功率的增益表接收通路的增益配置不同频点上的匹配补偿这些参数没法用一套固定值覆盖所有板子,因为每块板子的晶振精度、滤波器一致性、PCB走线阻抗都有差异。所以产线会逐板测量,把测量结果写进一个非易失存储区,固件启动时读出来,配到射频前端。关键点在于:这些数据不是“可选优化”,而是射频链路正常工作的前提条