ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

数字压力传感器HPSxxxGSF实战:I2C接口驱动与高精度设计

数字压力传感器HPSxxxGSF实战:I2C接口驱动与高精度设计 1. 项目缘起与核心需求拆解1.1 为什么选数字压力传感器而不是模拟方案做嵌入式硬件设计这些年压力传感器这个品类我接触过不少。早些年大家用的多是模拟输出的压力传感器比如MPX系列那一类输出一个0到5V的模拟电压MCU这边接个ADC采样换算一下就能得到压力值。这种方案便宜、简单但问题也很明显信号在传输路径上容易被干扰尤其是板子上有电机、继电器或者开关电源的时候ADC读回来的值跳得厉害软件滤波做到最后发现响应速度根本跟不上。HPSxxxGSF这类数字压力传感器本质上就是把敏感元件、信号调理电路、ADC和数字通信接口全部集成在一个封装里。它对外输出的不再是模拟电压而是经过内部校准和温度补偿的数字量MCU通过I2C总线直接读取。这个变化带来的好处是实打实的第一信号在传感器内部就完成了数字化传输过程中不怕干扰第二出厂时已经做过标定和温度补偿省掉了大量产线校准的工作第三I2C接口占用的引脚少两根线就能挂多个传感器布线也清爽。我个人的经验是如果你的项目对压力测量的精度要求超过1%FS或者工作环境温度变化超过20摄氏度又或者板子上有大功率开关器件那数字方案基本是首选。模拟方案省下来的那点BOM成本后期在调试和返修上会加倍还回去。1.2 HPSxxxGSF的定位与适用场景HPSxxxGSF这个命名方式从行业惯例来看HPS大概率是厂家的产品系列代号xxx代表量程或者型号变体GSF可能是封装或接口类型的标识。这类传感器通常采用MEMS压阻式或者电容式敏感单元内部集成了24位或者16位的ADC通过I2C接口输出经过补偿的数字压力值。它的典型应用场景包括医疗设备中的血压监测、呼吸机压力控制工业自动化里的气动系统压力反馈、液位测量消费电子中的海拔高度测量、无人机气压定高汽车电子里的胎压监测、进气歧管压力检测。不同场景对量程、精度、响应速度和长期稳定性的要求差异很大选型的时候不能只看一个参数。我见过不少新手选型时只盯着精度指标结果忽略了长期漂移和温度系数这两个关键参数。举个例子某款传感器标称精度0.1%FS但温度系数是0.05%FS/°C如果你的工作温度范围是-20到60°C那温度带来的误差就可能达到4%FS远超你的预期。所以看数据手册的时候一定要把温度补偿范围和补偿后的精度分开看。1.3 核心需求高精度感知与数字接口的平衡这个项目的核心诉求说白了就是两件事一是感知要准二是接口要好用。准不准取决于MEMS敏感单元的设计和标定工艺好不好用取决于I2C接口的兼容性和MCU端的驱动实现。从系统设计角度HPSxxxGSF这类传感器要发挥出标称精度PCB布局和电源质量是绕不开的坎。我实测过同样的传感器放在布局合理的板子上和放在随便走的板子上读数稳定性差了一个数量级。电源纹波如果超过10mV传感器的内部参考电压就会受影响输出值会出现周期性波动。这些细节在后面章节会展开讲。MCU这边I2C通信的稳定性是另一个关键点。很多工程师觉得I2C简单两根线一接就能用但实际上I2C的上拉电阻选择、总线电容计算、时序匹配都有讲究。尤其是当总线上挂多个设备或者走线较长的时候通信失败的概率会明显上升。后面我会结合具体案例把这些问题一个个拆开讲。2. MEMS感知单元与数字接口的技术细节2.1 MEMS压阻式敏感单元的工作原理HPSxxxGSF内部的核心是一个MEMS压阻式压力敏感芯片。它的结构可以这样理解在一块硅晶圆上通过微加工工艺刻蚀出一个薄膜区域薄膜边缘布置四个压敏电阻接成惠斯通电桥。当外界压力作用在薄膜上时薄膜发生形变压敏电阻的阻值随之变化电桥失去平衡输出一个与压力成正比的差分电压信号。这个差分电压非常微弱通常在毫伏级别而且伴随着较大的共模噪声和温度漂移。所以传感器内部会紧跟一个仪表放大器把差分信号放大到ADC可以处理的范围。放大之后进入ADC转换成数字量再由内部的MCU或者专用逻辑电路进行温度补偿和非线性校正。温度补偿是MEMS压力传感器最核心的技术之一。压阻式敏感单元的灵敏度会随温度变化零点和满量程都会漂移。厂家通常会在出厂前对每个传感器进行多点温度标定把补偿系数写入内部OTP或者Flash中。传感器工作时内部温度传感器实时监测温度查表或者用多项式计算补偿量最终输出经过修正的压力值。注意不同厂家的补偿算法和标定点数差异很大。有些低成本传感器只做了三点温度标定在温度极端点附近精度会明显下降。选型时要看清楚数据手册中标注的补偿温度范围和补偿后的精度指标。2.2 I2C接口的电气特性与时序要求I2C是HPSxxxGSF与MCU通信的主要通道。它采用开漏输出加外部上拉电阻的结构两根线分别是SDA和SCL。开漏输出的好处是可以实现多设备共享总线任何一个设备拉低总线都能被其他设备检测到不会出现推挽输出那种电平冲突。上拉电阻的选择是I2C设计中最容易被忽视的环节。电阻太大上升沿变缓高速通信时数据采样出错电阻太小灌电流过大可能超过器件的驱动能力。标准模式100kHz和快速模式400kHz对上升时间的要求不同总线电容也不同。计算公式是上升时间t_r约等于0.847乘以R_p乘以C_b其中R_p是上拉电阻C_b是总线电容。对于400kHz快速模式上升时间要求小于300ns如果总线电容是100pF那R_p最大不能超过3.5kΩ左右。实际选型时我一般先用4.7kΩ试如果波形上升沿太缓就降到2.2kΩ如果灌电流太大就升到10kΩ。用示波器看波形是最直接的办法不要只靠计算因为PCB走线的寄生电容很难准确估算。I2C的时序方面HPSxxxGSF通常支持标准模式和快速模式有些型号还支持高速模式。起始条件、地址帧、数据帧、应答位、停止条件这些基本要素这里不展开讲教科书内容重点说几个容易踩坑的地方。第一个坑是时钟延展。有些传感器在内部转换期间会拉低SCL强制主机等待。如果你的MCU硬件I2C不支持时钟延展通信就会失败。解决办法是改用软件I2C或者选择支持时钟延展的MCU。第二个坑是重复起始条件。读取传感器数据时通常需要先写寄存器地址再重复起始条件切换成读模式。有些MCU的硬件I2C在重复起始条件处会产生异常波形导致传感器不响应。这时候用逻辑分析仪抓一下波形对比数据手册的时序图问题一目了然。2.3 MCU端驱动的关键配置MCU这边驱动HPSxxxGSF硬件I2C和软件I2C各有优劣。硬件I2C效率高、占用CPU少但不同厂家的MCU在I2C外设上差异很大有些型号的硬件I2C存在已知的时序缺陷比如STM32早期型号的I2C死锁问题。软件I2C灵活、可移植性好但占用CPU时间高速通信时可能跟不上。我个人的选择是如果MCU的硬件I2C经过验证稳定可靠优先用硬件如果项目对通信速率要求不高或者硬件I2C有坑果断用软件I2C。软件I2C的代码很简单就是GPIO模拟时序网上有很多成熟的实现移植起来半小时搞定。配置硬件I2C时几个关键参数要设置对时钟频率、占空比、上升时间、滤波系数。时钟频率根据传感器支持的最高速率来定不要盲目设高。占空比通常设为2:1或者16:9具体看MCU手册。上升时间要和上拉电阻匹配设得太小会导致波形过冲。滤波系数可以抑制毛刺但设大了会延迟信号边沿。还有一个容易被忽略的点I2C引脚的内部上拉。有些MCU的I2C引脚内部有可配置的上拉电阻如果外部已经接了上拉内部上拉就要关掉否则并联后阻值变小灌电流增大。我见过一个案例工程师外部接了4.7kΩ上拉内部上拉没关等效阻值变成2.35kΩ通信是能通但功耗比预期高了将近一倍电池供电的产品直接受影响。2.4 数据帧格式与寄存器映射HPSxxxGSF的I2C数据帧格式遵循标准I2C协议但具体的寄存器映射和命令集因厂家而异。通常包括以下几个部分设备地址、寄存器地址、数据高位、数据低位、PEC校验可选。设备地址一般是7位有些型号可以通过外部引脚配置地址的低几位方便在同一总线上挂多个传感器。寄存器方面常见的包括压力数据寄存器、温度数据寄存器、状态寄存器、配置寄存器、校准系数寄存器。读取压力数据的典型流程是主机发送起始条件发送设备地址加写位发送压力数据寄存器地址发送重复起始条件发送设备地址加读位读取两个字节的数据发送非应答位发送停止条件。如果传感器支持突发读取可以一次读取压力和温度两个寄存器的数据减少通信开销。提示读取数据时要注意字节顺序。有些传感器先输出高字节有些先输出低字节。数据手册里会明确标注搞反了会得到完全错误的值。我调试时就犯过这个错读回来的压力值一直是满量程查了半天才发现是字节顺序搞反了。状态寄存器通常包含数据就绪标志、忙标志、错误标志等。轮询读取时先读状态寄存器判断数据是否就绪再读数据寄存器这样可以避免读到旧数据或者不完整的数据。有些传感器支持中断输出数据就绪时拉低中断引脚MCU用外部中断触发读取效率更高。3. 从原理图到代码的完整实操流程3.1 硬件设计与PCB布局要点拿到HPSxxxGSF样品后第一步是画原理图和PCB。原理图部分相对简单但有几个细节要注意。电源部分传感器通常需要3.3V或者5V供电具体看型号。电源引脚旁边必须放去耦电容一般是100nF加1μF的组合100nF尽量靠近传感器引脚1μF可以稍远一点。如果板子上有开关电源建议再加一个LC滤波或者磁珠把电源纹波压到10mV以下。I2C总线的上拉电阻前面已经讲过计算方法。这里补充一点如果总线上挂多个设备上拉电阻只需要一组放在总线靠近MCU的一端或者中间位置。不要每个设备都放一组上拉并联后阻值会变得很小。PCB布局方面传感器尽量远离发热元件和大电流走线。MEMS敏感单元对机械应力很敏感PCB的弯曲和翘曲会引入额外的压力误差。所以传感器下方不要走粗线不要打过孔最好在传感器周围留一圈禁布区。如果产品对精度要求极高可以考虑在传感器下方开槽减少PCB应力传递。I2C走线要尽量短SDA和SCL并行走中间不要穿插其他信号线。如果走线长度超过10厘米要考虑总线电容的影响适当减小上拉电阻。走线拐弯用45度角不要用90度直角减少信号反射。接地方面传感器下方最好铺一块完整的接地铜皮但不要直接连到传感器的金属外壳如果有的话避免引入应力。接地铜皮通过过孔连接到主地平面过孔数量要足够保证接地阻抗足够低。3.2 上电初始化与寄存器配置硬件焊接完成后先不要急着写代码用万用表测一下电源电压和I2C总线的静态电平。SDA和SCL在空闲状态应该是高电平如果测出来是低电平说明有设备拉低了总线可能是焊接短路或者器件损坏。确认硬件没问题后开始写初始化代码。初始化的第一步是复位传感器通常是通过写配置寄存器或者发送软复位命令。复位后等待一段时间让传感器内部完成自检和加载校准系数这个时间数据手册里会给出一般是几毫秒到几十毫秒。复位完成后读取设备ID或者状态寄存器确认通信正常。如果读回来的值全是0或者全是0xFF说明通信有问题需要检查地址、上拉电阻、时序配置。接下来配置传感器的工作模式。常见的配置项包括采样率、分辨率、低功耗模式、中断使能等。采样率和分辨率通常是一对矛盾采样率越高分辨率越低因为ADC的转换时间有限。根据你的应用需求来选比如气压定高需要高分辨率但采样率可以低一些气动控制需要快速响应但分辨率可以适当降低。配置完成后建议把配置寄存器的值读回来验证一下确保写入成功。有些传感器的配置寄存器是易失性的掉电后恢复默认值每次上电都要重新配置。有些型号有非易失性配置区可以保存一次后续上电自动加载。3.3 压力数据读取与温度补偿实现数据读取的代码实现以软件I2C为例核心就是几个函数起始条件、停止条件、发送字节、接收字节、应答检测。这些函数网上有很多现成的实现这里不贴完整代码重点讲几个关键点。起始条件的时序是SCL保持高电平SDA从高变低然后SCL拉低。停止条件是SCL保持高电平SDA从低变高。这两个条件的时序要求比较严格延时函数要准确否则传感器可能识别不到。发送字节时先发高位再发低位每发完一个字节主机释放SDA读取从机的应答位。如果从机拉低SDA表示应答如果SDA保持高电平表示非应答。接收字节时主机每接收一个字节要发送一个应答位给从机最后一个字节发送非应答位然后发送停止条件。读取压力数据后如果传感器内部已经做了温度补偿直接换算成物理量即可。换算公式数据手册里会给出通常是压力值等于原始数据减去零点偏移再乘以灵敏度系数。有些传感器输出的是归一化的数字量需要根据量程和分辨率来计算。如果传感器没有内部温度补偿或者你需要更高的精度可以在MCU端做二次补偿。方法是读取内部温度传感器的值根据温度查表或者用多项式计算补偿系数对压力值进行修正。补偿系数需要你在不同温度下实测得到或者向厂家索取。实操心得调试阶段建议把原始数据、温度值、补偿后的压力值都打印出来用串口或者SWO输出到上位机画成曲线观察。这样能直观地看到传感器的噪声水平、温度漂移和响应速度比只看最终值有用得多。3.4 实际测试与数据验证代码写完后需要一套验证方法来确认传感器工作正常。我通常分三步走。第一步是静态测试。传感器不施加压力放在恒温环境下连续读取1000个数据计算平均值和标准差。平均值应该在零点附近标准差反映了传感器的噪声水平。如果标准差很大说明电源或者布局有问题需要排查。第二步是动态测试。用标准压力源给传感器施加一系列已知压力值比如0%、25%、50%、75%、100%FS记录每个点的读数计算非线性误差和迟滞误差。非线性误差是实际曲线与理想直线的最大偏差迟滞误差是加压和减压过程中同一压力点的读数差异。第三步是温度测试。把传感器放入温箱在补偿温度范围内取几个温度点每个温度点重复静态和动态测试观察零点和满量程的漂移。如果漂移超过数据手册标称值可能是焊接应力或者PCB布局问题。测试数据整理成表格方便对比和分析。下面是一个示例表格结构测试项目条件标准值实测值误差结论零点输出25°C无压力0.5V0.502V0.4%FS合格满量程输出25°C满压力4.5V4.48V-0.44%FS合格零点温漂-20~60°C±1%FS±0.8%FS在范围内合格非线性25°C全量程±0.5%FS±0.35%FS在范围内合格测试过程中如果发现某个指标超标先不要急着换传感器排查一下测试方法和环境。我遇到过温箱内风扇振动导致读数波动的情况把传感器用减震垫隔离后数据就稳定了。4. 常见问题排查与避坑经验实录4.1 I2C通信失败的五种典型原因I2C通信失败是调试中最常见的问题我总结下来主要有五种原因按出现频率排序。第一种是上拉电阻缺失或者阻值不当。有些工程师以为MCU内部有上拉就不用外部电阻结果内部上拉阻值太大上升沿太缓通信不稳定。或者外部上拉阻值太小灌电流超过器件极限波形被拉低。解决办法是用示波器看波形根据上升时间调整电阻值。第二种是设备地址错误。7位地址和8位地址搞混是新手常犯的错误。数据手册里给的地址可能是7位但代码里需要左移一位再加上读写位。我见过有人直接把7位地址当8位用怎么都通信不上。第三种是时序配置不匹配。MCU的I2C时钟频率设得太高超过了传感器支持的最高速率。或者占空比设置不当导致高低电平时间不符合传感器要求。解决办法是降低时钟频率先用100kHz试通了再往上调。第四种是总线电容过大。走线太长、挂的设备太多、上拉电阻太大都会导致总线电容充放电时间过长波形变形。解决办法是缩短走线、减少设备数量、减小上拉电阻。第五种是电源或者地线问题。传感器供电不足、地线阻抗太大、电源纹波太大都会导致内部逻辑混乱I2C不响应。解决办法是加强电源滤波检查地线连接。下面这个速查表可以帮你快速定位问题现象可能原因排查方法解决措施完全无应答地址错误、器件损坏用逻辑分析仪抓波形核对地址、更换器件偶尔应答时序临界、干扰示波器看波形质量降低速率、加滤波数据错误字节顺序、寄存器地址对比数据手册修正代码通信一段时间后死锁总线电容大、时钟延展抓死锁时波形减小上拉、用软件I2C上电偶尔失败电源上升慢、复位不充分测电源上升时间加复位延时、改电源4.2 压力读数跳变的排查思路压力读数跳变是另一个高频问题。传感器输出值不稳定可能是传感器本身的问题也可能是系统设计的问题。排查思路是从源头往末端查。先看电源。用示波器交流耦合档测传感器电源引脚看纹波峰峰值。如果超过10mV就要加强滤波。我遇到过开关电源频率和传感器采样率产生拍频的情况读数呈现周期性波动换了LDO供电后问题消失。再看PCB应力。用手指轻轻按压传感器附近的PCB观察读数是否变化。如果按压时读数明显跳变说明PCB应力传递到了敏感单元。解决办法是在传感器下方开槽或者改用柔性安装方式。然后看温度。如果读数跳变与温度变化相关比如刚上电时稳定运行一段时间后开始跳可能是温度补偿没做好或者传感器自热导致温度漂移。可以在传感器附近贴一个温度传感器同步记录温度数据分析相关性。最后看软件。检查ADC采样时序、滤波算法、数据读取频率。有些传感器在内部转换期间读取数据会得到无效值需要先读状态寄存器确认数据就绪。软件滤波方面均值滤波、中值滤波、卡尔曼滤波各有适用场景根据噪声特性选择。4.3 多传感器挂载同一总线的注意事项当项目需要多个HPSxxxGSF挂在同一I2C总线上时有几个额外的问题要注意。地址冲突是最直接的。如果多个传感器的I2C地址固定且相同就无法挂在同一总线上。解决办法是选择地址可配置的型号通过外部引脚或者寄存器设置不同地址。如果传感器不支持地址配置可以用I2C多路复用器比如TCA9548A把总线分成多路每路挂一个传感器。总线负载方面每增加一个设备总线电容就增加一些。设备多了之后上拉电阻要相应减小否则上升沿太缓。但上拉电阻减小又会导致灌电流增大需要在两者之间找平衡。一般来说标准模式100kHz下总线电容不超过400pF上拉电阻不小于1kΩ。通信调度方面多个传感器共享总线需要合理安排读取顺序和时间间隔。如果两个传感器同时需要读取可以交替进行避免总线冲突。有些传感器支持地址自动递增可以一次读取多个寄存器的数据减少通信次数。注意多传感器系统中电源去耦要格外注意。每个传感器都要有独立的去耦电容不要共用。否则一个传感器的开关噪声会通过电源耦合到其他传感器导致读数异常。4.4 长期稳定性与校准周期产品量产之后长期稳定性是必须考虑的问题。MEMS压力传感器的长期漂移通常在0.1%FS到0.5%FS每年具体看厂家工艺和使用环境。如果应用对精度要求高需要定期校准。校准周期根据精度要求和漂移速率来定。比如你的精度要求是1%FS传感器年漂移0.2%FS那理论上5年才需要校准一次。但实际使用中温度循环、机械振动、介质腐蚀都会加速漂移所以建议每年校准一次至少在产品出厂前做一次全量程标定。校准方法有两种单点校准和多点校准。单点校准只在一个压力点通常是零点修正偏移适合漂移主要是零点漂移的情况。多点校准在多个压力点修正增益和线性度精度更高但操作更复杂。产线上通常用自动校准设备一次完成多个点的数据采集和系数计算。校准系数可以存在MCU的Flash中每次上电加载。如果MCU没有非易失存储可以存在外部EEPROM中。校准系数的格式和存储位置要在代码中明确定义避免升级固件时丢失。4.5 替代方案对比与选型建议虽然HPSxxxGSF在数字压力传感器中属于比较均衡的选择但市场上同类产品很多选型时不妨多对比几家。对比维度HPSxxxGSF竞品A竞品B接口I2CSPII2C精度±0.25%FS±0.5%FS±0.1%FS量程0-100kPa0-200kPa0-100kPa温度补偿-20~85°C-40~125°C0~70°C封装LGA-8SOP-8QFN-12功耗1mA2mA0.5mA价格中等低高选型时不要只看精度和价格要结合你的应用场景。比如汽车电子要求宽温度范围和高可靠性消费电子要求低功耗和小封装医疗设备要求高精度和长期稳定性。把需求列清楚逐项对比才能选到最合适的型号。我个人的经验是如果项目周期紧、团队I2C经验丰富选HPSxxxGSF这类I2C接口的传感器上手最快。如果项目对通信速率要求高比如需要每秒采样上千次SPI接口的传感器更合适。如果对精度要求极高愿意花时间做校准可以选更高端的型号。4.6 调试工具与实用技巧调试I2C和压力传感器几样工具必不可少。逻辑分析仪是首选能同时抓SDA和SCL的波形自动解析I2C协议直接显示地址、数据和应答位。Saleae或者国产的类似产品都不错价格从几百到几千不等。有了逻辑分析仪通信问题基本都能定位。示波器用来看波形质量特别是上升沿、下降沿、过冲、振铃这些细节。逻辑分析仪看协议示波器看电气特性两者互补。万用表用来测电源电压、静态电平、通断。调试初期先用万用表确认硬件基本正常再用逻辑分析仪和示波器深入排查。软件方面串口打印是最简单的调试手段。把关键数据打印出来用串口助手或者Plotter软件画曲线。SWO或者RTT输出速度更快不占用串口适合实时性要求高的场景。实操心得调试I2C时如果手头没有逻辑分析仪可以用MCU的GPIO翻转来粗略判断通信是否进行。比如在起始条件、发送字节、接收字节的关键节点翻转一个空闲GPIO用示波器看这个GPIO的波形就能知道代码执行到了哪一步。这个方法虽然粗糙但应急时很管用。4.7 代码移植与平台适配经验HPSxxxGSF的驱动代码在不同MCU平台之间移植主要工作是替换I2C底层函数和延时函数。上层的数据读取、补偿计算、滤波算法基本不用改。移植时先确认目标MCU的I2C硬件是否可用。如果可用把底层函数替换成硬件I2C的收发函数。如果不可用或者不稳定用GPIO模拟I2C只需要实现起始、停止、发送字节、接收字节四个函数。延时函数要根据MCU的主频调整。软件I2C的延时通常用空循环实现循环次数需要根据主频计算。比如主频72MHzI2C速率100kHz每个位周期10微秒半周期5微秒空循环的次数大约是5微秒除以每条指令的执行时间。实际调试时用示波器测SCL频率调整循环次数直到频率正确。如果从裸机移植到RTOS要注意I2C操作的原子性。多个任务同时访问I2C总线时需要加互斥锁避免通信冲突。有些RTOS提供了I2C设备驱动框架可以直接使用省去自己实现底层。从8位MCU移植到32位MCU时要注意数据类型的长度变化。int从16位变成32位移位操作和数据类型转换要仔细检查。我遇到过因为int长度变化导致数据拼接错误的情况查了好久才发现问题。4.8 成本控制与量产考虑产品从原型到量产成本控制是绕不开的话题。HPSxxxGSF这类传感器本身价格不低但通过合理设计可以降低整体成本。PCB方面传感器需要的去耦电容、上拉电阻都是便宜器件不用省。但PCB层数可以优化如果板子不大、走线不复杂两层板也能满足要求。传感器的布局要一次做对避免后期改板。MCU选型方面如果只是读取一个压力传感器不需要选太高端的MCU。带硬件I2C的8位或者32位入门级MCU就够用。如果项目对功耗有要求选低功耗型号配合传感器的低功耗模式整体功耗可以做到微安级别。产线校准方面如果传感器出厂已经校准好产线只需要做功能测试不需要重新校准能省不少时间和设备成本。如果需要在产线校准要设计好校准工装和流程尽量自动化减少人工干预。量产测试方面建议做一块测试板把多个传感器同时接上用MCU轮流读取自动判断好坏。测试数据保存到数据库方便追溯和分析。测试项目包括通信是否正常、零点输出是否在范围内、满量程输出是否在范围内、噪声是否超标。最后再分享一个小技巧如果项目对成本敏感可以考虑先用HPSxxxGSF做原型验证量产时换成引脚兼容的 cheaper 型号。但换型号前一定要重新做全量程测试和温度测试确认性能满足要求。我见过换型号后精度不达标导致批量返工的案例省下的成本远不够弥补损失。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进