拓冰建站拓冰建站
首页 / 资讯中心 / 正文

信号调理IC如何让IoT传感器信号稳定:从原理到实战设计

1. 为什么传感器信号不能直接进MCU这层中间商到底解决了什么做IoT硬件这行的朋友八成都有过类似的经历拿到一颗温湿度传感器或者气压传感器兴冲冲地按照手册搭好电路结果发现读回来的数据要么跳得跟心电图一样要么满量程偏差大得离谱。第一反应往往是怀疑传感器坏了换一颗还是一样然后开始怀疑单片机ADC基准不稳折腾半天最后发现问题出在你缺了一个关键的中间层——信号调理。我先讲一个非常典型的场景。桥式传感器比如称重传感器、压力传感器输出的是差分毫伏信号。满量程可能只有10mV到20mV而MCU内置ADC的参考电压通常是3.3V或者5V。10mV的信号在3.3V的ADC量程里只占了不到0.3%的区间也就是说即使你的ADC是12位真正能用的有效位数也少得可怜。更麻烦的是传感器输出的共模电压可能在1.2V到2.5V之间浮动这个共模分量一旦超过了ADC输入级的允许范围读出来的数就是废的。这时候Signal Conditioner IC就派上用场了。它干的事情本质上就是翻译——把传感器那种微弱、易受干扰、非线性、温漂明显的原始信号转成MCU能直接读懂的、稳定的、线性的输出。这种IC通常集成了仪表放大器、可编程增益放大器、激励源、ADC、温度传感器、校准逻辑和数字接口。有了它你不需要自己去搭仪表放大器电路不需要手工调零和满量程校准甚至可以在系统里做数字温度补偿。坦白说这个中间商并不是所有IoT项目都必需的。如果你的传感器输出是数字式的比如I2C或SPI接口的温湿度芯片那直接用就行。但如果你用的是模拟输出的传感器尤其是电桥型和热电偶型信号调理IC几乎是从能跑到跑得稳的分水岭。物联网终端产品最大的特点是数量多、维护难、环境复杂一旦传感器信号链路设计得过糙产品出厂时的良率问题和现场的一致性偏差会成倍放大。我自己的经验是凡是涉及称重、压力、应变、温度这类物理量采集的IoT节点信号调理IC不只是个放大器它其实是整个信号链路的质量兜底。它把模拟域里面最考验功力的部分标准化了让你可以把精力放到更上层的数据处理和业务逻辑上。这也是为什么TI、ADI、Maxim这些厂商近年来一直在推此类IC并且越来越往传感器前端SoC的方向走。这篇文章就围绕Signal Conditioner IC在IoT传感器方案里的实际应用展开聊聊它的内部原理、关键指标、选型思路、设计流程和调试踩坑。无论你是硬件刚入门的新手还是被模拟前端折磨过的老工程师相信都能从里面找到点有用的东西。2. Signal Conditioner IC到底在调理什么从信号链路的噪声、失调和温漂说起很多工程师对信号调理IC的理解停留在放大器这个层面觉得它就是把信号放大。这么说不能算错但远远不够。如果只是放大我自己用一颗运放加几个电阻也能搭何必花几十块钱去买一颗专用IC要理解Signal Conditioner IC的价值得先搞清楚模拟信号链路里那几个真正让人头疼的问题。2.1 三种主要信号之痛微弱、共模、非线性模拟传感器输出的信号往往同时具备三个特点。第一是信号微弱。电桥传感器在满量程时可能只有几毫伏到几十毫伏的差分输出热电偶在常温附近的输出电压更是微伏级别。这么小的信号直接进MCU的ADC基本等于没信号。需要的是一个低噪声、高增益的前置放大器但这个放大链路极易引入噪声稍微布线不注意50Hz工频干扰就能把信号淹掉。第二是共模电压问题。传感器输出的差分信号是相对的正负两个输入端都会有一个相对于系统地的高电平。这个高电平就是共模电压。理想情况下仪表放大器应该只放大两个输入端的差值把共模电压完全抑制掉。但实际电路的共模抑制比是有限的而且如果共模电压超出输入范围放大器会直接饱和失效。第三是非线性与温漂。几乎所有的模拟传感器都有非线性特性只是程度不同。电桥传感器的非线性在0.1%到1%之间热敏电阻更是高度非线性热电偶则需要查分度表或者用多项式拟合。温度变化还会引起传感器灵敏度和零点的漂移。如果没有温度补偿机制产品在实验室校准好了到现场环境一变化数据就偏了。这三个痛单独拿出来一个都够折腾的叠在一起就更麻烦。信号调理IC的思路是把这些通用性极强、反复要踩的坑全部做到一颗芯片内部去。2.2 从信号链角度看IC内部它不是放大器而是完整的信号通路系统打开一颗典型信号调理IC的数据手册你会看到它内部其实是一整套信号链路系统而不是单个功能块。以TI的PGA900、PGA302这类器件为例内部大致包含这些模块功能模块作用为什么IoT场景需要可编程增益放大器PGA对差分信号进行从几十倍到几千倍的放大适配不同量程的传感器无需外部电阻调增益激励电流源/电压源为电桥传感器提供稳定的供电激励传感器供电不稳会直接影响输出信号质量高精度ADC将放大后的模拟信号数字化直接输出数字量省掉外部ADC温度传感器感知芯片/传感器附近的温度用于温度补偿算法修正温漂校准与补偿逻辑存储校准系数并做线性化运算出厂二点校准后换传感器无需重新调电路数字接口I2C/SPI/SENT等与MCU通信直接对接IoT网关或MCU这颗IC的本质是把传感器输出到MCU可读这一段完整链路标准化了。你不需要关心PGA的偏置电路怎么设计不需要纠结ADC的采样保持电路有没有问题只需要按照手册配置寄存器然后读数据就行。我经常跟朋友打一个比方如果传感器是话筒MCU是录音机那信号调理IC就是一套包含调音台、降噪器、功率放大器的音频处理系统。话筒出来那点微弱信号直接进录音机会有大量底噪声音也不够清晰。经过调音台处理后信号干净了、大小合适了录音机才能录出可用的效果。2.3 为什么IoT场景尤其依赖这类ICIoT节点的特点决定了它对信号链路的可靠性要求比工业设备还高。工业设备坏了可以停机检修IoT节点部署几百上千个之后基本是无人值守状态坏一个就得派人到现场。IoT节点的信号调理还面临几个特殊约束。一是供电受限很多节点采用电池或能量采集供电整个信号链路的功耗必须控制在微安到毫安级别。信号调理IC通常有休眠模式和低功耗工作模式比你自己用分立运放搭电路更省电。二是体积受限信号调理IC把放大器、ADC、基准源等多个器件集成到一颗小封装里PCB面积可以大幅缩小。三是一致性要求大批量部署时每个节点的传感器都可能存在个体差异如果靠分立器件搭模拟前端每批产品的校准补偿电路都要重新调而信号调理IC把校准系数存在EEPROM里软件校准即可产线效率高很多。另外一个容易被忽略的点是抗干扰设计。IoT节点的信号线往往要经过连接器、线缆或者柔性板这些路径都是噪声耦合的入口。信号调理IC的高共模抑制比、内置滤波器和差分输入结构天然就比单端方案抗干扰能力更强。3. 读懂数据手册里的关键指标选型不是看封装大小而是看这七个参数信号调理IC的型号非常庞杂有面向电桥传感器的有面向热电偶的有面向RTD的还有面向生物电信号的。面对一颗数据手册很多工程师习惯先看功能框图、引脚定义然后直接跳到寄存器配置却把最关键的性能指标表跳过了。这里我按自己的选型经验把必看的七个参数逐个拆开讲清楚。3.1 增益范围与增益误差你的信号到底能放大到多少增益范围决定了这颗IC能适配多大范围的传感器输出。如果你做的是称重传感器满量程输出可能在10mV左右那PGA增益至少需要100倍以上才能把信号放大到1V量级供ADC采样。如果你做的是热电偶输出电压在微伏到几十毫伏之间就需要更高的增益1000倍甚至更高。要注意的是高增益下的增益误差。比如手册标称增益误差是0.1%在100倍增益下放大后的信号误差就是0.1V按1V输出算这已经相当可观了。所以有些IC会提供内部校准功能通过寄存器写入实际增益误差值来做修正。选型时尽量选择增益误差小、且支持增益校准的型号。还有一个容易被忽视的指标是增益温度漂移典型值在几个ppm/°C到几十ppm/°C之间。如果你的产品工作环境温度变化大增益温漂会直接叠加在传感器温漂上让补偿变得更加困难。3.2 输入失调电压与失调漂移零输入时的假信号把传感器的两个输入端短接理想情况下输出应该为0。但实际放大器内部电路不可能完全对称输出端会有一个微小的偏离电压这就是输入失调电压。失调电压的存在意味着即使传感器没有任何物理量变化你的系统也会读到一个非零的底数。在IoT应用中这个底数如果可以通过软件清零单点校准问题不大但问题是失调电压会随温度变化这就是失调漂移。漂移严重的IC你在常温下校准好了放到高温环境里零点又偏了。对于高精度应用选失调漂移低于0.1µV/°C的型号比较稳妥。不过这样的IC价格也高。如果你的应用对绝对精度要求没那么高比如只是做一个接近检测或阈值报警那选择中等精度的IC就够用了。3.3 噪声密度与分辨率决定你能分辨多小的信号变化噪声是信号调理里最隐蔽的敌人。芯片内部电阻、晶体管都会产生热噪声和闪烁噪声。噪声密度单位是nV/√Hz表示每单位带宽内的噪声大小。把噪声密度乘以带宽的平方根就得到总噪声。举个例子某颗IC的噪声密度是50nV/√Hz信号链路的带宽是100Hz那总噪声大约是50×√100 500nV也就是0.5µV。如果你的传感器最小分辨信号是10µV那信噪比就是20倍勉强可以分辨。如果最小信号只有1µV那基本就被噪声淹没了。IoT节点通常做的是低频采样所以比较关心低频噪声和1/f噪声。实现上可以通过降低采样带宽、增加软件滤波来抑制噪声但硬件的基石还是IC本身的噪声性能。选型时建议把自己的最小可分辨信号和IC的折算噪声做一次简单计算别光看分辨率位数。3.4 ADC的有效位数ENOB别被标称位数忽悠了有些IC声称内置24位ADC很多工程师一看24位就觉得精度很高其实这是一个常见的误区。24位是ADC的物理分辨率但实际可用精度受噪声、非线性、失调等影响远达不到24位。有效位数ENOB才代表ADC真实能达到的分辨率。ENOB的计算公式是(SINAD - 1.76) / 6.02其中SINAD是信纳比。如果一颗24位ADC的SINAD是100dB那么ENOB大约是16.3位。也就是说标称24位的ADC实际有效位数可能只有16位。在信号调理IC领域我一般看数据手册里给的ENOB或者SINAD指标如果手册里连这两个参数都没有说明厂商自己都对精度没信心直接Pass。对于IoT称重、压力检测等应用ENOB达到14到16位已经非常够用了。更高的ENOB往往意味着更高的功耗和更慢的转换速率这对电池供电的IoT节点反而不利。3.5 激励源性能传感器供电不稳信号一定不准电桥传感器需要外部激励源供电常见的激励方式有恒压激励和恒流激励。信号调理IC的激励源性能直接影响传感器的精度。恒压激励的问题是传感器电阻会随温度变化激励电流也会跟着变从而引入额外的误差。恒流激励则可以避免这个问题因为电流恒定传感器电阻变化只改变电压不影响电流。但恒流激励要求传感器电阻在一定范围内如果电阻过大产生的电压可能超过激励源的合规范围。选型时要注意激励源的精度和温漂。我见过一些低成本的信号调理IC激励源精度只有1%温漂几百个ppm/°C这种激励源本身就成了整个链路里最大的误差来源。对于高精度应用建议选激励精度在0.1%以下的型号。3.6 温度补偿能力内置温度传感器是加分项还是减分项前面提到传感器温漂是模拟信号链的大问题。信号调理IC应对温漂有两种思路一是内置温度传感器通过软件查表或算法做补偿二是依靠外部温度传感器在MCU侧做处理。内置温度传感器的好处是集成度高、不需要额外布线和校准而且温度传感器和信号调理电路在同一个die上热耦合更紧密补偿效果往往更好。但要注意内置温度传感器测的是芯片温度不是传感器温度。如果传感器离芯片比较远两者温差可能很大补偿效果就会打折扣。我的经验是对于传感器和IC在同一块PCB上的应用内置温度补偿完全够用如果传感器在外置探头上、线缆较长最好把外部温度传感器放在探头根部在MCU里做联合补偿。3.7 数字接口与通信协议SENT、I2C、SPI、PWM怎么选信号调理IC的输出接口越来越多样化。传统一些的用PWM输出频率和占空比反映测量值电路简单但精度受限。现在主流的IoT应用基本都采用I2C或SPI可以直接和MCU通信读取校准系数和原始ADC值。SENT接口是汽车电子常用的单线协议它在IoT领域用得不多但如果以后要做车规级产品可以关注一下。选择接口时主要看三点一是MCU有没有对应硬件外设用模拟I2C虽然可以但会占用CPU时间二是接口速率是否满足采样率需求三是线缆长度和抗干扰能力。IoT节点内部通信距离短I2C/SPI完全够了。如果要模块间传递信号SENT等单线协议在抗干扰上更有优势。4. 从选型到应用一个IoT压力监测节点的完整设计复盘理论讲了不少接下来用一个实际项目来串一遍。我这个项目是做一个工业管道压力监测IoT节点采用电池供电每5秒上报一次压力数据要求精度在满量程的0.5%以内。传感器选用了一颗恒压激励的扩散硅压力传感器满量程输出约20mV桥臂电阻3kΩ。MCU端选择了带I2C接口的低功耗单片机。4.1 选型推演为什么最终选了PGA900而不是通用仪表放大器方案刚开始我也犹豫过是不是直接用一颗低功耗仪表放大器如INA333加一颗24位ADC如ADS1232就能搞定。这个分立方案的优势是器件灵活单颗量少时可以控制在较低成本。但仔细一想问题不少仪表放大器需要外部电阻设置增益增益精度受限于电阻精度ADC的基准源和激励源都要自己搭又得加LDO和基准芯片温度补偿全部要靠MCU来做算法复杂不说现场标定工作量巨大。对比之下PGA900这类信号调理IC把以上所有模块集成在一起还带了ARM Cortex-M0内核可以在片内直接做校准算法和温度补偿。虽然单价贵一些但省掉了外围器件的BOM成本、PCB面积和开发时间综合算下来并不吃亏。它集成的24位ADC虽然有SINC滤波器实际ENOB大约在17位左右但足够满足0.5%的精度要求。这个案例说明选型不能只看芯片单价要想完成同样功能整个系统成本是多少。特别是IoT产品开发节奏快信号调理IC能帮你把模拟前端这个最不确定的部分固化下来风险低很多。4.2 硬件设计要点退耦电容、参考地和传感器连线怎么布原理图画起来很快关键在PCB布局布线。我总结了几条经验。电源退耦是第一步。信号调理IC通常有模拟电源和数字电源引脚即使是单电源供电内部也分了模拟和数字域。每个电源引脚都要就近放置0.1µF和10µF的退耦电容而且电容要尽量靠近IC引脚走线要先过电容再到IC。这个细节看起来简单但处理不好会导致ADC采样值跳动。参考地REF的处理。信号调理IC的ADC参考电压通常由内部基准产生但有些设计允许外部参考输入。如果用了外部参考参考源的地和传感桥的地必须采用单点连接或星型接地避免数字地电流干扰参考地。我见过一个返修案例就是因为REF走线跨过了数字信号线导致测量值周期性跳动。传感器连线。压力传感器和IC之间如果是短线小于5cm直接走差分对即可。如果是长线需要加共模滤波电容和ESD保护器件。另外传感器的屏蔽层接地方式很重要建议屏蔽层单端接地避免地环路。差分线要平行走线尽量远离开关电源和数字信号线。4.3 寄存器配置与校准流程三步走让换传感器不再重新调电路信号调理IC的灵魂在校准。PGA900支持多点温度和压力校准整个校准流程分三步。第一步是单点校准。给传感器施加零压力读取ADC原始值把增益设为1记录此时的失调值。这个值包含了传感器本身的失调和信号调理IC的失调通过寄存器写入失调校准系数。第二步是满量程校准。施加满量程压力读取ADC值通过实际ADC值除以理论ADC值计算增益系数写入增益校准寄存器。此时零点和满量程两个点都对准了中间大部分区域已经相当线性。第三步是温度补偿校准。在多个温度点比如常温、高温、低温重复第一步和第二步记录不同温度下的失调和增益系数。PGA900内部会按照当前温度传感器读数在这些系数的断点之间做线性插值。这一步能显著改善温漂但标定时间和成本也更高一般只在精度要求严苛时做。校准之后把系数写入IC内部的EEPROM。如果最终产品需要更换传感器只需要在产线上重新跑一遍校准流程硬件完全不用动。下面是一段典型的PGA900初始化代码我截取了关键部分// PGA900_I2C_Config.c // 初始化PGA900的I2C接口并配置关键寄存器 void PGA900_Init(void) { uint8_t config[8]; // 1. 软复位PGA900 PGA900_WriteRegister(0x0002, 0x0001); delay_ms(10); // 2. 配置PGA增益为128适用于20mV满量程传感器 // PGA_CTRL寄存器bit[4:0] 01111增益128 PGA900_WriteRegister(0x0010, 0x000F); // 3. 配置ADC数据率20SPS符合低功耗需求 // ADC_CTRL寄存器bit[2:0] 010 PGA900_WriteRegister(0x0011, 0x0002); // 4. 使能温度传感器用于后续温漂补偿 // TEMP_CTRL寄存器bit[0] 1 PGA900_WriteRegister(0x0012, 0x0001); // 5. 将校准系数写入EEPROM此处先写入临时寄存器 config[0] (offset_high 8) 0xFF; config[1] offset_high 0xFF; config[2] (gain_high 8) 0xFF; config[3] gain_high 0xFF; PGA900_WriteEEPROM(0x2000, config, 4); }我自己用下来最需要注意的是写入EEPROM的顺序。有些IC要求先擦除再写有些则允许直接覆盖搞错了会损坏EEPROM数据。用之前一定细看数据手册的EEPROM章节并做好写保护处理。5. 调试中的那些鬼故事排查链路和根因分析再好的设计到调试阶段总会有几个让人挠头的现象。下面几个问题是我在不同项目里真实遇到的挑几个典型的分享一下排查思路。5.1 读数周期性跳变不是IC坏了是你的电源在“喘气”现象是I2C读回来的压力值呈现周期性波动频率大约1Hz幅度足有满量程的1%。我用示波器看传感器输出波形干净得很于是怀疑是数字端干扰增加滤波电容无效后陷入僵局。后来发现问题出在MCU的无线唤醒周期上。这个IoT节点为了省电让无线模块每隔1秒醒来发送一次数据。无线模块猝发工作时电流从微安级飙到几十毫安引起电源电压跌落。而我用示波器看传感器输出时触发点恰好避开了无线发射窗口所以看到的是干净波形。排查方法很简单用示波器把MCU无线发射引脚和传感器输出同时显示观察发射期间的信号波动。解决方法是把信号调理IC的电源和无线模块电源隔离开或者给模拟前端加RC滤波同时调整唤醒时序让ADC采样避开无线发射窗口。这个坑的教训是IoT系统的电源瞬态问题比传统工业设备更突出因为无线模块的峰值电流大、占空比低很容易被忽略。5.2 校准系数写不进EEPROM实测是时钟沿问题PGA900的EEPROM写入需要特定的时序。我遇到的情况是用开发板可以正常写入但打样回来的PCB却写不进去。对比原理图发现开发板在I2C总线有上拉电阻而我的PCB在SCL线上并联了一个104电容用于抗干扰。这个电容虽然能滤除高频毛刺但也拉长了SCL上升沿。EEPROM写入对SCL上升沿有严格限制过长的上升时间会导致写入失败。解决办法是把SCL线上的电容从104改成22pF或者干脆去掉。这类问题在高速通信里很常见但在EEPROM这种容易忽略时序的场合更容易踩坑。5.3 上电后读数全是0xFFFFFF忘了等内部参考稳定有一次客户反馈他们的设备上电后前几百毫秒读到的压力值是满量程的负溢出值0xFFFFFF然后才恢复正常。查代码发现MCU上电后立刻初始化I2C并读取PGA900而PGA900内部的参考电压和模拟前端需要一段时间建立稳定未稳定前ADC转换结果无效。解决方法是按照数据手册的上电时序要求在初始化之后延时足够时间再开始读取。有些IC还提供数据准备好的状态位轮询这个状态位比固定延时更可靠因为延时会受温度和电源爬坡速度影响而状态位是芯片内部确定的。这个问题的本质是IoT系统在上电瞬间的时序管理往往比运行时更复杂。如果处理不好表现出来就是有时候开机正常有时候不正常。5.4 温度补偿后精度反而变差别忽视传感器的温度迟滞这是最让我印象深刻的案例。做高温补偿标定后在一个升降温循环里测试发现数据曲线出现了一个8字形——升温路径和降温路径不重合误差最大处超过1%。最初怀疑是IC的温度补偿算法有问题反复检查寄存器配置确认没问题。后来查资料发现扩散硅压力传感器本身存在迟滞效应同样的温度下升温和降温过程中传感器输出并不完全一致。这个迟滞量可能达到满量程的0.5%甚至更高而信号调理IC的温度补偿算法只能修正可重复的温度漂移无法消除迟滞的影响。这个问题没有完全靠IC解决的方案只能靠两条路一是选迟滞更小的传感器型号二是让补偿算法留出适当余量或者对采样数据做软件平滑。IoT节点通常工作在缓慢变化的温度环境中实际影响比实验室快速升温降温的场景小得多但如果产品要在温度快速波动的户外环境工作必须在设计阶段就评估传感器迟滞的影响。6. 功耗、采样率与数据链路IoT系统级设计不能只盯芯片很多工程师把信号调理IC调通后觉得任务就完成了其实还有一半工作在系统层面。下面聊聊功耗和数据的配合问题。6.1 降低功耗的三板斧占空比、掉电模式、降低数据率IoT节点如果靠电池供电功耗设计直接影响产品寿命。信号调理IC的静态功耗通常在微安级别但I2C通信和ADC采样会显著提升功耗所以核心思路是能不工作就不工作能少跑就少跑。第一板斧是占空比工作。传感器信号变化快的应用需要连续采样但很多IoT场景比如环境监测、管道压力监控信号变化很慢可以设置成每几秒或几十秒唤醒一次完成一次采样后立即回到休眠。有些信号调理IC有专门的单次转换模式唤醒后触发一次ADC转换拿到结果后自动进入低功耗状态非常省电。第二板斧是降低数据转换速率。ADC的数据率越高功耗越大对噪声性能要求也越高。在满足系统采样率要求的前提下尽量选最低的数据率档位。比如压力监测5秒上报一次那ADC数据率设在20SPS甚至更低都足够了。第三板斧是利用寄存器配置关闭不用的功能模块。如果系统不需要内部温度传感器补偿就关掉它不需要激励电流源就关掉它。每个模块的功耗虽然不大但积少成多一个节点省几十微安几千个节点部署下来每年省的电池更换费用相当可观。6.2 数据在哪个环节做处理边缘滤波和阈值判断信号调理IC把传感器信号变成了数字量但要不要把全部数据都通过无线网络提交到云端这是值得思考的问题。我的建议是尽量在IoT节点本地做预处理。比如压力数据可以在MCU里做简单的滑动平均滤波把偶发的噪声毛刺滤掉。如果系统只需要报警功能可以在节点本地做阈值判断只有超过阈值的状态变化才上报这样可以大幅减少无线通信次数延长电池寿命。信号调理IC如果带有简单的DSP能力如PGA900内置Cortex-M0可以在片内做更多的数据处理MCU只负责跟云端交互。这种分层架构的好处是节点数据在源头已经完成了精度校准和数据清洗云平台收到的数据质量更高后续的数据分析工作也会轻松很多。6.3 多传感器节点的同步与误差分配如果你的IoT系统里多个节点都用信号调理IC还要注意节点之间的同步问题。比如四个压力传感器同时测量一条管道不同位置的压强数据需要时间对齐才能准确计算压差。信号调理IC的ADC转换时间在一定范围内有抖动如果每个节点各自独立采样再上传数据的时间戳可能偏差几十毫秒在动态变化快的场景下会产生明显误差。解决思路有几种。一种是在MCU侧通过收到的数据包时间戳做软同步另一种是在信号调理IC上利用同步输入引脚或触发机制让所有节点的ADC从同一时刻开始转换。后者精度更高但对IC功能有要求选型时可以留意有没有同步采集相关的引脚。另外一个容易被忽略的是误差分配。一套测量系统的总误差由传感器、信号调理IC、ADC、算法等多个环节组成。如果传感器本身的精度是1%那信号调理IC再提高精度对整体没多大帮助。把预算花在传感器上比堆信号调理IC的精度指标划算得多。这也是我在选型时反复提醒自己的一点木桶能装多少水取决于最短的那块板。7. 关于调试工具和产线标定的一点经验最后聊聊信号调理IC开发和量产环节的工具与流程。这块很容易被个人开发者或者小团队忽略等到产品要量产时才发现缺工具、缺流程导致交付延期。7.1 开发板到手后先做这件事拿到EVK或开发板我的建议是不要急着改代码先按官方例程把默认配置跑起来确认EVK正常。然后专门测试一下IC的自诊断功能比如强制输入短路、强制输入开路等。这类功能能帮助你快速定位后期调试中的问题是硬件故障还是传感器故障。另外在写应用代码之前先把数据手册里的寄存器地图完整读一遍用I2C读回默认值并记录下来。这些默认值就是以后排查问题的基线。如果以后代码改得多了发现某些寄存器被意外修改了对照基线就能很快定位。7.2 产线标定与烧录的流程设计量产环节中信号调理IC的标定和烧录是两道关键工时。目前主流的做法是产线使用专用夹具把传感器和信号调理IC模块连接到标定设备标定设备通过I2C/SPI接口控制IC完成多点校准并将校准系数写入EEPROM。这个流程可以做到全自动节拍在几秒量级能满足大多数IoT产品的量产需求。设计产线流程时有三个细节值得留意。一是标定夹具的重复精度要验证如果夹具本身重复定位都不准标定出来的产品一致性会差。二是EEPROM写保护校准完成后要开启写保护避免后期软件误操作覆盖了校准数据。三是版本管理同一个信号调理IC可能有多个固件版本寄存器地址和校验算法可能有差异产线程序要做版本识别避免把A版本的算法算出来的系数写进B版本的芯片里。7.3 复用性一个驱动代码多个项目通用做IoT硬件的朋友应该有同感项目之间其实复用度很高。我自己的做法是把信号调理IC的驱动代码封装成一个独立模块对外提供统一的接口函数比如SignalConditioner_Init()、SignalConditioner_ReadPressure()、SignalConditioner_Calibrate()内部再去适配不同型号的IC。这样当项目从PGA900切到PGA302或者别的品牌时只需要在封装层里改底层实现上层的业务逻辑完全不用动。这也是小团队提高开发效率的关键不要每次做新品都从零开始写驱动。最后提一个冷门的建议如果条件允许备一台数字万用表和一台示波器是标配但最好再加一台高精度电压源或压力标准器。很多时候你想验证信号调理IC输出对不对得有一个比它更准的标准否则你永远只能看起来对没法确认真的对。校准这件事基准越准后面才越省心。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门