模拟电压怎样变成数字电平与 ADC 数值
三个容易混淆的对象
- 模拟电压:在允许范围内连续变化,例如传感器输出
1.27 V; - 数字电平:真实引脚上的电压,被接收器按阈值解释成低、高或不确定;
- 数字数值:ADC、计数器或协议产生的比特组合,例如十进制
394。
逻辑 1 不是固定等于 1 V。它表示输入电压落在芯片数据手册规定的高电平范围;不同电压域的阈值可能不同。
数字输入是范围判定
假设一个教学输入规定:
text
0.0–0.8 V → 可以保证识别为 LOW
0.8–2.0 V → 未定义区,不保证结果
2.0–3.3 V → 可以保证识别为 HIGH1
2
3
2
3
1.4 V 不是“约等于 1,所以是 HIGH”,而是处于未定义区。噪声、温度和芯片差异可能使结果改变。输出端的 VOH/VOL 与输入端的 VIH/VIL 必须留出噪声裕量。
绝对最大额定值不是工作电压
超过允许输入范围可能触发保护二极管、回灌供电甚至永久损坏。能偶尔读到正确逻辑值不代表接法安全。
ADC 不是“读取真实世界”,而是采样与量化
理想 N 位 ADC 在 0–Vref 范围提供 2^N 个离散码。教学中使用:
对 Vref=3.3 V、N=10、Vin=1.27 V:
一个码对应的近似电压间隔为:
提高位数只会减小理想量化间隔,不会自动消除参考源误差、噪声、非线性、源阻抗或采样时间不足。
采样会丢掉两次采样之间的信息
ADC 只在离散时刻观察输入。若输入变化比采样快,多个不同的连续信号可能产生相同样本,看起来像错误的低频信号。实际系统通常需要:
text
传感器 → 模拟调理/限幅 → 抗混叠滤波 → 采样保持 → ADC → 标定换算1
奈奎斯特条件给出理想带限信号的最低理论采样率,但工程上还需要滤波器过渡带、时钟误差和处理余量。本章只观察“采样点是否足以保留变化”,不展开频域推导。
原位修改信号
下面的输入电压、参考电压、位数、阈值和采样点数量都在对应图形旁修改。上方观察逻辑分类和 ADC 码,下方比较连续信号与采样点。
依次尝试:
- 把输入放进未定义电平区,观察系统为什么不应武断显示 0 或 1;
- 保持输入不变,把
Vref从 3.3 V 降到 2.5 V,预测 ADC 码; - 降低采样点数,观察哪些波峰没有被任何样本捕获;
- 提高 ADC 位数,区分“量化更细”和“采样更密”。
常见误解
- 数字信号没有模拟问题。 边沿仍有上升时间、过冲、噪声和参考地变化。
- 10 位 ADC 总能提供 10 位有效精度。 标称分辨率不等于有效位数和绝对精度。
- 提高采样率一定更准确。 它改善时间观察,但可能增加数据量、功耗和噪声带宽。
- 逻辑分析仪看到 HIGH 就知道是 3.3 V。 它主要显示阈值判断和时序;真实幅度与边沿质量需要示波器。
小结与自测
真实引脚始终承载模拟电压;数字输入用阈值解释它,ADC 在离散时刻把它量化为有限码值。
自测:同一个 1.65 V 输入,在 Vref=3.3 V 的 8 位理想 ADC 中约为多少?改成 12 位时物理输入有没有改变?
答案
8 位约为 round(1.65/3.3×255)=128。改成 12 位后输入仍是 1.65 V,只是理想输出码约变为 2048,量化网格更细。
下一步:虚拟万用表与采样实验。