频率-电压转换器电路设计:从原理到LM331实现与标定
简介《频率—电压转换器电路的设计》是一份面向电子信息、自动化等专业学生的模拟电子技术课程设计资料围绕武汉理工大学课设任务完整呈现从正弦信号到直流电压的转换电路设计过程。压缩包共 1 个 PDF 文件约 547KB覆盖绪论、电路设计方案、单元电路设计、总电路原理图、元器件介绍及组装调试等核心环节便于按目录逐项查阅。内容上读者可获取比较器、F/V 变换器、反相器与反相加法运算电路的设计思路与参数选取方法还能看到 LM331、LM393 等器件的内部结构、引脚功能与典型应用以及过零比较器、RC 积分器等具体电路的原理分析。对于正在准备模电课设、需要撰写设计说明书或调试频率—电压转换电路的学生这份文档提供了可参照的框架、公式推导与排错方向。目前已有 264 人学习。1. 为什么工业现场还在用频率—电压转换器涡轮流量计吐出的是脉冲串霍尔转速传感器吐出的也是脉冲串可 PLC 的模拟输入模块只认 0-10V 或 4-20mA。中间这道转换就是频率—电压转换器要干的事。不少硬件电路设计项目里工程师图省事直接用 STM32 的定时器输入捕获测频再走 DAC 或用 PWM 加滤波输出模拟电压。频率高的时候这套跑得挺好一旦输入掉到几赫兹输出就开始一格一格地跳纹波和响应时间同时失控。频率—电压转换器这条模拟路线的价值恰恰在低频段和确定性上输出纹波、响应时间、线性度都能用公式提前算出来不依赖中断响应和任务调度。它适合做传感器调理、隔离变送、以及老设备模拟接口改造的人前提是你愿意花时间算参数、调滤波、做标定。2. 频率—电压转换器的三条技术路线与关键参数取舍选路线之前先把要回答的问题列清楚输入频率范围是多少最低频那一点允许多大的输出纹波整机响应时间卡在多少毫秒以及现场有没有隔离需求。这四个数字定不下来后面选芯片、算电容全是白算。三条主流路线各有各的甜区混着用反而容易在低频段翻车。2.1 单稳态加低通滤波LM331、AD650、VFC32 的通用结构这条路线最经典也是标题里“频率—电压转换器电路”最常见的形态。输入脉冲的每个边沿触发一个单稳态产生固定脉宽 t 的方波单稳态期间内部恒流源以 Iref 向输出节点注入电荷。单个脉冲注入的电荷量 q Iref × t单位是库仑。设输入频率为 f则输出电流的平均值 Iavg f × q这个电流流过负载电阻 RL得到输出电压Vout f × Iref × t × RL公式里没有出现输入脉宽只要输入脉冲窄于单稳态时间即可这是它线性度好的根本原因。LM331 便宜、外围少AD650 精度更高但贵VFC32 介于两者之间。它们的共同短板是输出端必须接一个电容 Cf 来平滑电流脉冲而这个电容同时决定了响应速度。纹波怎么估稳态下每个周期注入固定电荷 q然后电容通过 RL 放电。在最恶劣的最低频点峰峰纹波近似 ΔVpp ≈ q / Cf Iref × t / Cf。注意这个式子里没有 f也就是说纹波绝对值在整个频率范围内基本恒定。而最低频点的输出 Vout(min) f_min × q × RL 很小所以纹波占该点读数的比例最差占满量程的比例才是验收指标。把上面两个式子联立可以得到设计里最硬的一条约束τ RL × Cf ≥ Vout(FS) / (f_max × ΔVpp)其中 Vout(FS) 是满量程输出电压f_max 是满量程对应频率ΔVpp 是允许的峰峰纹波。这个下限跟 Iref、t、RL 的具体取值都无关是单稳态加低通结构的物理边界。2.2 电荷泵与开关电容路线锁相环芯片里的鉴相器后面通常跟一个电荷泵输出电流与相位差成正比经环路滤波器积分成电压。它的本质也是“电流脉冲 电容积分”只是脉冲宽度由相位差调制而不是固定。好处是可以和锁相环共用一套环路频率跟踪范围宽坏处是输出与频率的关系受环路带宽、阻尼系数影响标定比单稳态麻烦线性度通常只能做到 0.1% 到 1%。除非系统里本来就有 PLL否则单独为 FVC 搭一套电荷泵不划算。开关电容方案类似靠电容切换搬运电荷对时钟馈通和电荷注入敏感PCB 布局不好时噪声很难压。2.3 数字测频加 DAC/PWM 路线STM32 的定时器输入捕获配合外部 DAC是现在很多板子上的默认做法。它的优势是灵活可以多路复用可以在软件里做分段标定可以顺便走通信上报。但低频段的短板必须认清测频率法在 1Hz 附近gate 时间 1 秒才有一个读数更新率直接掉到 1Hz测周期法虽然低频分辨率好但每个读数要等一个完整周期同样慢。PWM 加 RC 滤波输出模拟电压纹波要想压到 0.1%滤波时间常数会比单稳态路线还大。它适合输入频率不低于 100Hz、对响应时间要求不苛刻、又需要数字通信的场合。路线典型器件线性度响应时间低频表现外围复杂度单稳态低通LM331 / AD6500.01%~0.1%10ms~500ms好可到 1Hz低电荷泵PLL 内置鉴相器0.1%~1%由环路决定一般中数字测频DACSTM32外部 DAC取决于标定10ms~1s差需测周期中高2.4 用一段 Python 估算纹波与响应时间的折衷下面这段脚本只做一件事给定满量程输出、满量程频率和允许纹波算出滤波时间常数的下限和对应的建立时间。它可以帮你快速判断一个需求是否物理上可行。# 单稳态 FVC 输出滤波时间常数下限估算 def tau_min(v_fs, f_max, ripple_pp): v_fs : 满量程输出电压 (V) f_max : 满量程对应输入频率 (Hz) ripple_pp: 允许的峰峰纹波 (V) 返回 : 滤波时间常数下限 (s) return v_fs / (f_max * ripple_pp) for vpp_mv in (1, 5, 10, 50): tau tau_min(10.0, 10000, vpp_mv / 1000.0) t_settle 4.6 * tau # 到 1% 的阶跃响应时间约 4.6 倍时间常数 print(f纹波{vpp_mv:3d} mV - R*C {tau*1000:7.1f} ms, 建立时间约 {t_settle*1000:6.0f} ms)运行结果会很直白要求 10V 满量程、10kHz 满频、纹波压到 10mV时间常数下限是 0.1s建立时间约 460ms。把纹波要求从 10mV 放松到 50mV时间常数立刻缩到 20ms建立时间降到 92ms。这就是为什么很多现场变送器标称响应时间 200ms 以上——不是芯片慢是纹波指标逼出来的。如果你的应用要求响应时间 20ms 同时纹波 10mV单稳态路线基本做不到得回头改需求或者换数字方案。3. 用 LM331 搭一版可复现的频率—电压转换电路理论算完落到一块具体板子上。目标定成输入 0~10kHz 方波输出 0~10V 直流满量程纹波压到 10mV 以内供电用系统里已有的 5V 模拟轨。LM331 在这个指标下够用外围器件也常见。3.1 拓扑与供电LM331 在 F-V 模式下输入脉冲经微分网络送到比较器输入端每个下降沿触发单稳态。定时网络 Rt、Ct 决定脉宽 t ≈ 1.1 × Rt × Ct。参考电流由 pin2 外接电阻 Rs 设定Iref ≈ Vref / RsVref 的典型值按数据手册取 1.9V。输出端 pin1 是电流源输出接负载电阻 RL 到地同时并在 RL 上的 Cf 完成滤波。供电这一块容易翻车。如果板上有 buck 降压电路模拟 5V 不要直接从 buck 输出取中间至少加一级 LDO。buck 的开关频率及其谐波会通过电源轨耦合到参考电流上表现为输出上叠加固定频率的噪声看上去像纹波但跟输入频率没有关系。LDO 输出再并 10µF 钽电容加 0.1µF 陶瓷电容靠近芯片引脚放。3.2 关键参数计算Rs、Rt、Ct、RL、Cf先定脉宽 t。输入最高 10kHz周期 100µs单稳态脉宽取周期的四分之一左右即 25µs保证输入还没来得及翻第二个边沿单稳态已经结束。Ct 选 10nF 的 C0G 或薄膜电容不要用 X7R 或普通电解它们的容值随温度和电压变化会直接把脉宽带偏。# 0~10 kHz - 0~10 V 的单稳态 FVC 参数草算 f_max 10_000 # 满量程输入频率 Hz v_fs 10.0 # 满量程输出电压 V t_pulse 25e-6 # 单稳态脉宽 s i_ref 400e-6 # 单稳态期间参考电流 A v_ref 1.9 # 手册参考电压实际以数据手册为准 vpp_target 0.01 # 允许峰峰纹波 V # 电荷量 q Iref * t输出 Vout f * q * RL q i_ref * t_pulse rl v_fs / (f_max * q) # 负载电阻 rs v_ref / i_ref # 参考电流设定电阻 ct 10e-9 # 定时电容 rt t_pulse / (1.1 * ct) # 定时电阻 # 纹波决定 CfΔVpp q / Cf cf q / vpp_target tau rl * cf t_settle 4.6 * tau print(fq {q*1e9:.1f} nC) print(fRL {rl/1000:.2f} kΩ, Rs {rs/1000:.2f} kΩ) print(fRt {rt/1000:.2f} kΩ, Ct {ct*1e9:.1f} nF, t {t_pulse*1e6:.1f} µs) print(fCf {cf*1e6:.2f} µF, R*C {tau*1000:.1f} ms, 建立时间约 {t_settle*1000:.0f} ms)这段代码的逻辑是先用满量程输出反推 RL再用允许纹波反推 Cf。运行后 RL 约 100kΩRs 约 4.75kΩRt 约 2.27kΩCf 约 1µF。Rt 和 Rs 用 1% 金属膜电阻温漂 25ppm 级别Cf 用低漏电流的钽电容或薄膜电容漏电流会在低频时把输出抬起来。输出后面加一级电压跟随器做缓冲。这里属于典型运放电路设计场景选低失调、低偏置电流的精密运放输入偏置电流在几十 pA 量级不会从 100kΩ 负载上偷走可观的电压。如果省掉跟随器直接接 ADC 采样电路ADC 输入阻抗和采样电容会把输出拉低读数偏低且随采样率变化。3.3 外围器件选型清单器件作用推荐类型注意事项Rt设定单稳态脉宽1% 金属膜25ppm阻值误差直接变成增益误差Ct设定单稳态脉宽C0G 或薄膜10nF禁用 X7R、电解容值随温度漂Rs设定参考电流1% 金属膜25ppm走线短远离数字信号RL输出负载1% 金属膜100kΩ阻值决定灵敏度需与 Cf 匹配Cf输出滤波钽电容或薄膜1µF漏电流要小否则低频输出抬高缓冲运放隔离负载低失调、低 Ib 精密运放反馈走线短加 100nF 去耦3.4 上电调试顺序与第一组波形板子焊完不要直接上传感器按下面顺序走不接输入只上模拟 5V量输出节点电压应在几毫伏以内。如果偏高先查 Cf 漏电流和运放失调。输入端给 1kHz、3.3V 方波示波器交流耦合看输出应该有约 1V 直流电平。同时探头点在 pin1 或定时电容附近确认单稳态脉宽是 25µs。扫 1k、2k、5k、10kHz 四个点记录输出电压。若 1kHz 点偏低多半是微分网络时间常数太大脉冲被削掉了。在 10kHz 点用示波器 DC 耦合、20MHz 带宽限制看输出纹波应该在 10mV 峰峰附近。若明显偏大先查 Cf 实际容值再查输入端是否有抖动导致重复触发。4. 标定、线性度与温漂把误差压到 0.5% 以内参数理论值算得再准电阻电容都有公差装配后必须标定。标定不是简单调一个电位器就完事得分清零点误差和增益误差否则调了零点满量程又偏了。4.1 两点标定与多点最小二乘最简单的做法是两点标定给两个已知频率记录两个输出算出斜率和截距写进 EEPROM。如果线性度本身够好两点标定能把零点误差和增益误差一起压下去。但如果中间点明显偏离直线两点标定就会把误差挤到中间频段这时候要用多点最小二乘拟合。import numpy as np # 示例实测数据输入频率 Hz输出电压 V f np.array([100, 500, 1000, 2000, 5000, 8000, 10000], dtypefloat) v np.array([0.099, 0.501, 1.002, 2.006, 5.015, 8.028, 10.030]) # 一次拟合 V k*f b k, b np.polyfit(f, v, 1) v_fit k * f b err_mv (v - v_fit) * 1000 print(f灵敏度 k {k:.6e} V/Hz) print(f零点 b {b*1000:.3f} mV) print(各点拟合误差 (mV):, np.round(err_mv, 2)) print(f最大拟合误差 {np.max(np.abs(err_mv)):.2f} mV)代码里 polyfit 返回斜率 k 和截距 b。k 对应整个通道的增益b 对应零频时的输出偏置。看 err_mv 的分布如果误差符号在两端和中间来回变呈弓形说明存在二次非线性一次拟合压不下去得用二次拟合或者分段查表。二次拟合只需要多存一个系数在 STM32 里算一次乘加对主循环负担很小。4.2 线性度与零点的分离测量标定前先跑一组数据把零点和线性度分开看。零点误差是低端几个点的固定偏移线性度是非线性误差占满量程的百分比。输入频率理论输出实测输出绝对误差误差/满量程100 Hz0.100 V0.099 V-1.0 mV-0.010%1 kHz1.000 V1.002 V2.0 mV0.020%5 kHz5.000 V5.015 V15.0 mV0.150%10 kHz10.000 V10.030 V30.0 mV0.300%这组示意数据里误差随频率单调增大最可能的原因是 Rt 或 Ct 的实际值偏小导致单稳态脉宽比设计值大增益偏高。解决办法是把 Rs 换成可调电阻微调或者在上位机标定环节把增益系数折进去。如果误差在低端大、高端小方向相反那多半是零点偏移比如运放失调或 Cf 漏电流。4.3 温漂和长期漂移的排查温漂来源按贡献大小排Ct 的容值温度系数、Rt 和 Rs 的电阻温漂、运放失调电压漂移、参考电压漂移。Ct 用 C0G 后前两项可以压到 50ppm/℃ 以内。运放失调漂移在几 µV/℃ 量级折算到 100kΩ 负载上影响很小。真正容易被忽略的是印制板漏电流如果输出节点附近的助焊剂没清干净潮湿环境下漏电流能到几十 nA在 100kΩ 上就是几毫伏的漂移。验证方法不复杂把板子放进恒温箱测 -20℃、25℃、70℃ 三个点的满量程输出算每摄氏度的相对变化。如果温漂主要出现在低端读数上查漏电流和运放如果高端读数整体偏移查 Rt、Ct、Rs 和参考。5. 从原理图到 PCB让 FVC 精度不掉链子的布局与验证技巧原理图对了板子画错前面算的参数全白搭。频率—电压转换器是模拟小信号电路输出满量程才 10V纹波指标在毫伏级布局上任何一点数字噪声耦合进来都看得见。5.1 三个具体的布局要点第一Rt、Ct 和 Rs 这三个定标元件必须紧贴芯片对应引脚走线尽量短并且远离任何开关节点。Ct 的接地端单独回到芯片的模拟地引脚不要和数字地混在一起走。第二模拟地和数字地单点连接连接点选在芯片地引脚附近不要在两块地之间形成大面积平行走线那等于做了一对耦合电容。如果板上有 ADC 或 DAC数字部分的时钟线不要跨过模拟区域必要的话在模拟区边缘加一排接地过孔做隔离。第三供电去耦要分级。buck 降压后的 5V 先过 LDOLDO 输出端放 10µF 钽电容加 0.1µF 陶瓷电容芯片电源引脚再放一个 0.1µF距离不超过 2mm。基准引脚或参考电流设定引脚如果外接电容用地线包一圈。5.2 用示波器和 FFT 做终检板子装好后除了看纹波峰峰值更有效的一步是看输出噪声的频谱。做法示波器 DC 耦合探头用弹簧地针而不是长地线夹采一段输出波形打开 FFT。如果谱线峰值出现在 100Hz 或其整数倍那是电源纹波耦合查 LDO 前的 buck 开关频率和地回路。如果峰值出现在某个固定高频和输入频率无关基本可以判定是开关电源或数字时钟耦合进来的。下一步做频率扫描输入从最低频到最高频分十个点每个点稳定后记录输出画成曲线。曲线上如果出现台阶或者局部斜率变化说明单稳态在某些频点被重复触发或者漏触发这时候要回头看输入微分网络的时间常数和脉冲幅度。先把触发稳定性解决掉再谈标定和精度。本文还有配套的精品资源点击获取
上一篇/下一篇内容由系统自动关联
返回资讯列表 →