广告

让风速计线性化,一个简单而廉价的高分辨率ADC设计

2024-03-25 17:12:47 STEPHEN WOODWARD 阅读:
不久前,我发表了一个基于自热达林顿晶体管对的热风速传感器的简单设计实例,资深设计实例贡献者Jordan Dimitrov为该实例的问题提供了一个优雅的计算数值解决方案,使最终结果几乎完美线性,但模数转换后在数字域中执行线性化的结果是所需ADC分辨率大幅提高,例如从11位增加到15位···

不久前,我发表了一个基于自热达林顿晶体管对的热风速传感器的简单设计实例。如图1所示,由此产生的传感器简单、灵敏且为固态,但存在风速响应严重非线性的问题。x01ednc

x01ednc

图1 热传感器的Vout对风速的响应非常非线性。x01ednc

资深设计实例贡献者Jordan Dimitrov为该问题提供了一个优雅的计算数值解决方案,使最终结果几乎完美线性。他在《恰当的函数可将热晶体管风速计线性化,让误差小于0.2%》一文中详细介绍了这一方法。x01ednc

然而,模数转换后在数字域中执行线性化的结果是所需ADC分辨率大幅提高,例如从11位增加到15位,原因如下……x01ednc

要采集分辨率为1fpm的线性0至2000fpm风速信号,需要ADC分辨率为1 in 2000=11位。但观察图1的曲线可以发现,虽然风速信号的满量程跨度为5V,但从1999fpm增至2000fpm相关的信号增量仅为0.2 mV。因此,为了在解决后者问题的同时保持前者的量程,需要的最小ADC分辨率为:x01ednc

1 in 5 / 0.0002 = 1 in 25,000 = 14.6位x01ednc

15位(和更高分辨率)的ADC既不罕见,也不是特别昂贵,但它们通常不是微控制器内的集成外设,正如Dimitrov先生的文章中提到的那样。因此,提供一个分辨率足以满足他的设计要求的ADC可能需要大量成本,这似乎是合理的。所以我想知道可能存在有哪些替代方案。x01ednc

下面是一个简单而廉价的高分辨率ADC设计,它是围绕一个古老、廉价而又广泛使用的朋友构建的:555模拟定时器芯片。x01ednc

原理图见图2。x01ednc

x01ednc

图2 适用于自加热晶体管风速计线性化的高分辨率电压-时间ADC。星号表示精密元件(1%公差)。x01ednc

信号采集从R2、R3、U1求和网络开始,将0至5V输入信号与U1的2.5V精密基准信号相结合,形成:x01ednc

V1 = (Vin + 2.5v)/2 = 1.253.75v = (0 to 3) * 1.25v x01ednc

V1在转换周期之间积聚在C1上,时间常数为:x01ednc

(R2R3/(R2 + R3) + R1)C1 = 1.1M * 0.039 µF = 42.9 msx01ednc

因此,要达到16位精度,需要的最小稳定时间为:x01ednc

42.9 ms LOGe(216) = 480 msx01ednc

如图3所示,可以通过向555 Vth(阈值)引脚6输入CONVERT命令脉冲(幅度大于2.5V,持续时间大于1μs)来启动实际转换周期。x01ednc

x01ednc

图3 ADC周期以CONVERT Vth脉冲开始,该脉冲产生持续时间为Tout = LOGe(V1 / 1.25 V)R1C1的OUT脉冲。x01ednc

OUT脉冲(低真)从CONVERT的上升沿开始,与555 Dch(放电)引脚7被驱动至零伏相吻合,开始将C1从V1放电至555触发电压(Vtrg=Vc/2=1.25v),在引脚7上。C1放电持续时间和Tout由合适的微控制器以数字方式累加,16位计数器和1μs分辨率就足够了,计算公式如下:x01ednc

Tout = LOGe(V1 / 1.25 V)R1C1 = LOGe(V1 / 1.25 V) 1M * 0.039 µFx01ednc

LOGe((Vin + 2.5 V) / 2.5 V) 39 msx01ednc

LOGe(1) 39 ms = 0 for Vin = 0x01ednc

LOGe(3) 39 ms = 42.85 ms for Vin = 5 Vx01ednc

Tout结束时,Dch被释放,C1可以开始充电,转换结果:x01ednc

(N = 1 MHz * Tout)x01ednc

可用于线性化计算。解码和恢复Vin的数学公式如下:x01ednc

Vin = 2.5 V (EXP(N / 39000) – 1)x01ednc

你们可能会有一些疑问。之前我说过,要量化1999至2000fpm之间的Vin增量需要14.6位的分辨率。那么,42850=15.4位是什么东西呢?x01ednc

42850的情况是由于C1放电曲线的瞬时斜率(变化率=dV/dT)与R1两端的电压成正比,因此也与通过R1的电流成正比。对于Vin=5V的满量程输入,该参数变化了3倍,从转换周期开始时的V1=3.75V和3.75µA变为转换周期结束时的1.25V和1.25µA。dV/dT的增加会导致分辨率成比例但相反的变化。因此,为了在Vin=5V时实现所需的25000:1分辨率,需要更高的平均分辨率。x01ednc

必要的分辨率系数是平方根(3)=1.732…其中42850/25000=1.714是一个粗略的近似值,但已经足够。x01ednc

(原文刊登于EDN美国版,参考链接:15-bit voltage-to-time ADC for “Proper Function” anemometer linearization,由Ricardo Xie编译)x01ednc

责编:Ricardo
本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了