针对单片机 PWM 幅度不稳、无法直接输出精密电压的痛点,给出 TL431 精密基准 + 模拟开关整形的 14–15 位精度方案,并配合低通滤波与运放缓冲输出 0–10V 控制信号
用 PWM 实现精密模拟电压只需 2 片廉价集成电路即可解决:以 TL431 精密基准配合单刀双掷模拟开关 MAX4544 把 PWM 脉冲重新整形为“高电平 8V、低电平 2.5V、振幅 5.5V”的稳定脉冲,再经低通滤波与一级运放缓冲就能输出 0–10V 精密直流电压。其导通电阻 35Ω 与开关延迟 30/25ns 引入的误差合计优于 0.0003(约 12–15 位二进制精度),完全满足电机变频器控制信号等工业场景。本文给出三种实现方案对比、误差来源量化分析与可移植配置方法。
近年来集成 EEPROM、WDT、A/D 与 D/A 的新型高速单片机构成了主流嵌入式平台,但其中的 D/A 输出普遍采用脉宽调制(PWM)形式。PWM 非常适合开关电源、可控硅触发、LCD 背光调节、音频输出这类不需要精确电压的场合。然而 PWM 脉冲没有基准电压,输出脉冲幅度并不恒定,这在要求精密控制电压的场合——例如精密可调电压源、电机变频器给定量、伺服驱动器的模拟指令输入(多为 0–10V 或 4–20mA)——就无法直接使用。
一种直觉做法是把 PWM 直接低通滤波得到直流。问题在于:PWM 的逻辑电平由电源决定,电源纹波、线路压降都会直接进入输出;更关键的是 PWM 高、低电平幅度不对称且会随负载与温度变化,滤波后只能得到“表示占比”的平均电压,无法满足精度要求。此外仅靠无源 RC 低通在需要 0–10V 满量程且驱动微弱负载时,输出阻抗偏大、带载能力不足。要得到符合精度的模拟电压,必须先对 PWM 脉冲的幅度做精密整形。
正确思路分两步:第一步用精密基准与模拟开关把 PWM 脉冲改造成“幅度受基准控制”的精密方波;第二步用低通滤波把方波平均成直流并用运放缓冲提高带载能力。其总体精度取决于第一步整形引入的误差,以下给出三种可行的完整性递增方案。
| 实现方案 | 关键器件 | 精度等级 | 成本 | 适用场景 |
|---|---|---|---|---|
| 方案A:精密基准+模拟开关整形 | TL431 + MAX4544 + 分压电阻 | 约12–15位 | 低(2片IC) | 精密可调电压源、变频器0–10V指令 |
| 方案B:精密稳压二极管限幅 | 高速运放 + 2DW7稳压二极管 | 约8–10位 | 较低 | 精度要求一般、要求简单低成本 |
| 方案C:PWM直通低通滤波 | RC低通 + 运放缓冲 | 受电源与负载影响大 | 最低 | 背光、风扇调速等非精密场合 |
电路原理:D1 为 TL431 三端精密基准集成电路,U1 采用单刀双掷模拟开关 MAX4544,电阻 R1、R2、R3 按目标电压取值,也可替换为其它型号集成。当 PWM 为高电平(逻辑 1)时,U1 的 COM 端掷向常闭端 NC,TL431 的调整脚与正电压脚相连,输出被钳位为 2.5V;当 PWM 为低电平(逻辑 0)时,U1 的 COM 端掷向常开端 NO,TL431 输出电压经 R2、R3 分压后送入调整脚,此时输出等于:
V_OUT(LOW) = ((R2 + R3) / R3) × 2.5 V
本例中 V_OUT(LOW) = 8V
脉冲振幅 = 8V - 2.5V = 5.5V
这样,U1 的 IN 脚输入 PWM 时,电路输出的是高电平 8V、低电平 2.5V 的精密脉冲,其幅度完全由 TL431 基准与电阻比值决定,与数字电源电压无关。若要输出低电平为零的 PWM 脉冲,再串入一级差分放大器即可。
在精度要求不高的场合,可用高速运放把 PWM 放大为 ±12V 后,经限流电阻 R1 和精密稳压二极管 D1(可用 2 个廉价稳压二极管对接替代 2DW7)稳压限幅,得到 ±6.5V 的脉冲输出。该方案省去模拟开关,但误差来源更多(见误差分析)。
方案A 中基准电源本身误差可忽略,真正的误差来自两处,二者都能用“等效二进制位数”直观评估,如下表。
| 误差来源 | 关键参数 | 计算/作用机理 | 数值结果 | 等效位数 |
|---|---|---|---|---|
| 模拟开关导通电阻 | MAX4544 导通电阻 35Ω | TL431 调整脚电流(<4μA)流过形成压降 | <140μV(2.5V 的 0.000056) | 约14位 |
| 开关延迟时间 | 导通30ns、关断25ns | 延迟改变占空比,@10kHz 时最大误差 0.0003 | 0.0003 | 约12位 |
| 开关延迟时间(低频) | @1kHz 时延迟占比减小 | 同样延迟,频率越低误差越小 | 0.00003 | 约15位 |
上方关断/导通延迟对照表显示:真正影响输出精度的其实是这些参数随温度与时间的漂移,而其绝对数值很小,漂移更小,因此附加电路引入的误差完全能满足 PWM 精度需求。若需要更高精度,把 PWM 频率取低即可,例如 1kHz 时延迟误差仅 0.00003,约合 15 位。
开关延迟对占空比的影响随频率降低而减小,可按线性关系估算等效位数,方便按目标精度反推载频选择。
| PWM 频率 | 开关延迟引入的最大误差 | 等效二进制位数 |
|---|---|---|
| 10kHz | 0.0003 | 约12位 |
| 5kHz | 约0.00015 | 约13位 |
| 2kHz | 约0.00006 | 约14位 |
| 1kHz | 0.00003 | 约15位 |
(中间频率数值为依据 MAX4544 开关延迟线性外推所得,10kHz 与 1kHz 为器件文档与实验实测基准。)对 0–10V 变频器指令这类模拟信号,10kHz 载频的 12 位精度通常已足够;追求更高精度则降低载频、加长低通时间常数。
方案B 的误差主要来自三方面:(1)稳压二极管动态电阻较大(工作电流 5–10mA 时约几十欧姆),而运放驱动能力有限使二极管工作电流偏小,小电流动态电阻更大,更易引起电压变化;(2)2DW7 由两只稳压管对接串成,一只正向压降的负温度系数补偿另一只的正向温度漂移,但 2DW7 反向应用时温度漂移得不到补偿,导致负脉冲部分温度系数偏高;(3)运放输入的失调电压漂移直接导致脉冲振幅误差,转换速率 SR 过低则引起方波波形失真继而导致电压误差。对于 8–10 位精度的 PWM 应用,该方案已能满足;要求更低时可用 2 只廉价稳压二极管对接替代 2DW7 降低成本。
利用单片机 PWM 输出,在方案A基础上增加 RC 滤波电路与一级运算放大器缓冲,即可得到 0–10V 直流输出电压,作为变频器的给定(速度)控制信号,实际调试取得了良好效果。设计要点:低通截止频率取 PWM 载频的 1/10–1/20 以抑制纹波,同时保证变速响应速度;运放用单位增益缓冲隔离滤波电容,避免负载影响 RC 时间常数;输出端并入 100nF 与 TVS 保护工业长线场景下的静电与浪涌。
把幅度不稳定的 PWM 转成精密模拟电压,最经济可靠的路径是“精密基准 + 模拟开关整形 + 低通滤波 + 运放缓冲”的方案A:两片约十几元的集成电路即可获得 12–15 位精度,规避了直接低通滤波对电源与负载的敏感,也规避了纯稳压管方案的温度漂移。设计时按目标精度选取 PWM 载频(10kHz≈12 位、1kHz≈15 位),并按目标量程用 TL431 基准电压公式整定分压电阻,即可稳定输出 0–10V、0–5V 等标准工业模拟量。
总结:精密 PWM 转模拟电压的本质是用 TL431 基准钳定脉冲高低电平、用模拟开关消除电源波动与负载影响,再以低通滤波取平均、运放缓冲增强带载;导通电阻与开关延迟两类误差可控在 12–15 位,足以支撑变频器 0–10V 指令等精密模拟量输出,较直接 RC 低通与单纯稳压管方案在精度和温漂上更具优势。
本文基于《使用 PWM 得到精密的输出电压》(江南大学 朱立)等技术资料整理优化。
沧州艾诺威电子 — 国家高新技术企业,20+项国家专利
嵌入式系统开发 · 物联网方案 · 传感器信号调理 · 一站式交付
电话:13930711029 | 邮箱:tech@czinv.com | 24小时内响应