硬件基础(4):(1)AD采集电路设计
文章目录
- 1. 明确测量信号与 ADC 量程
- 2. 信号调理(分压、放大、滤波)
- 3. 器件保护与干扰抑制
- 4. 电阻、电容与运放的精度和温漂
- 5. 软件采样与校准
- 6. 综合示例
- 结语
在进行 MCU(如 STM32)ADC 采集电路设计时,需要综合考虑测量信号的幅度范围、输入阻抗、采样精度、噪声以及器件保护等多个方面。下面从常见的实际需求出发,介绍一个典型 ADC 前端电路设计的流程与要点。
1. 明确测量信号与 ADC 量程
- 测量信号的范围
- 确定输入信号的最大、最小电压,并判断是否需要放大或分压。
- STM32 常用的供电电压 VDD 为 3.3V(也有 1.8V 或 5V 等不同供电规格),ADC 的采样范围通常为 0~VDD(某些系列会支持内置参考电压 2.5V、1.2V 等)。
- ADC 参考电压 (Vref)
- 大部分 STM32 可使用内部参考电压或外部参考电源。
- 如果对测量精度要求较高,或者对温度漂移敏感,往往需要精度高、温度稳定的参考电源,如 2.048V、3.0V、4.096V 等。
- 关于ADC参考电压参考博客:硬件基础(4):(2)认识ADC参考电压
- 选择采样方式
- 单端采样:最常见方式,信号相对地 (GND) 进行测量。
- 差分采样:部分高端 MCU 或扩展 ADC 模块可能提供差分方式,常用于要求较高的测量场合(如抗共模干扰能力)。
2. 信号调理(分压、放大、滤波)
- 分压电阻网络
- 当输入信号电压可能超过 ADC 允许范围时,需要先通过电阻分压降压。
- 分压器的设计需要兼顾:
- 目标分压比例: 确保最大输入电压分压后不超过 ADC 量程 (如 3.3V)。
- 电阻阻值取值: 平衡功耗与 ADC 采样需要的输入阻抗,一般推荐分压后的阻抗不宜过高(最好在 10 kΩ~50 kΩ 级别内)。
- 运算放大器(缓冲/放大)
- 当测量精度和速度要求较高,或分压电阻较大时,往往需要在 ADC 输入前加一级缓冲运放:
- 提高输入阻抗,保证 ADC 内部采样电容可快速充电。
- 放大或移位信号:如测量小电压信号时,可进行适当放大以提高分辨率。
- 提高抗干扰能力,增强驱动能力。
- 当测量精度和速度要求较高,或分压电阻较大时,往往需要在 ADC 输入前加一级缓冲运放:
- 滤波网络 (RC 低通滤波)
- 在 ADC 输入端通常会加入一个 RC 低通滤波器:
- R 可以和分压电阻或缓冲运放输出电阻兼容。
- C 一般选择 nF 级,可以削弱高频噪声,获得平滑的电压。
- 避免过大电容导致采样保持时间过长,影响采样速率。
- 在 ADC 输入端通常会加入一个 RC 低通滤波器:
3. 器件保护与干扰抑制
- 过压保护
- 如输入信号有可能意外高于供电电压(VDD)较多,需要在输入端加 TVS 二极管或钳位电路保护 MCU。
- 一般 STM32 I/O 管脚最大允许输入电压为 VDD + 0.3V(绝对最大额定值)。实际应用必须保证长期输入不超量程,以免损害芯片内部结构。
- ESD 保护
- 在对外引线或恶劣环境下,可在输入端或电源线上增加 ESD 保护器件(ESD 二极管、瞬态抑制二极管等)。
- 抑制噪声
- 布线时保持 ADC 输入尽量短且远离大电流或高频走线。
- 适当的地分割、模拟地 (AGND) 与数字地 (DGND) 连接在合适位置,可降低数字噪声耦合。
4. 电阻、电容与运放的精度和温漂
- 精度等级
- 分压电阻若选择 1% 或更高精度,可降低分压误差。
- 运放选择低失调电压、低噪声、低漂移等器件,可确保高精度测量。
- 温度系数
- 长期运行或环境温度波动较大时,需要关注器件的温度系数。
- 高精度电阻常用 50 ppm/℃ 或更低的温漂(50 ppm/℃ 就意味着:当温度变动 1℃ 时,电阻阻值会变化其标称值的 50×(1/1,000,000) = 0.00005 = 0.005%),运放也需查看数据手册中的 Offset Drift、Gain Drift 指标。
5. 软件采样与校准
- 采样时间和采样频率
- STM32 ADC 通常有可编程采样时间,需依据前端阻抗和采样电容大小合理设置。
- 对于较高阻抗(>10 kΩ)的分压网络,需要延长采样时间,或增加缓存运放来保障精度。
- 多次采样与滤波
- 为减小噪声,可在软件层进行多次采样平均滤波、数字滤波或卡尔曼滤波等算法处理。
- 校准
- STM32 一般内置 ADC 校准功能,可以在软件启动时执行自校准减小内部误差。
- 对于高精度需求,还可以对系统整体(含分压、运放等)进行实测校正,比如记录 0V、满量程对应的实际 ADC 值,用软件进行线性或多点修正。
6. 综合示例
举例:需要测量 0~12V 的直流信号,目标使用 3.3V 供电的 STM32L 系列 MCU ADC。
- 分压网络
- 需要把 12V 最大电压分压至 3.3V:分压比约 1: (12/3.3 ≈ 3.64)。
- 可选 R1=27kΩ, R2=10kΩ(实际分压比 10/(27+10)=10/37≈0.27,使 12V 降为约 3.24V)。
- 分压输出阻抗= R1 || R2 ≈ 27k || 10k ≈ 7.3kΩ,勉强可用。若采样时间较短,需运放缓冲。
- 缓冲运放
- 选用 Rail-to-Rail 输入/输出运放,供电 3.3V。将分压后的 0~3.24V 信号在运放输出端驱动 ADC。
- 在运放输出与 ADC 输入间,放置一个小阻值(几十欧到几百欧)+ 小电容(几 nF)的 RC 低通滤波网络。
- 保护及滤波
- 分压器前端串入适当的限流电阻(如 100 Ω ~ 1 kΩ),并在输入端加 TVS 二极管保护,防止输入电压过高。
- 设计合理的 PCB 走线,避免高频干扰耦合至模拟输入。
- 软件层面
- 设置合适的采样时间(如 12 个 ADC 时钟周期或更长)。
- 适当做数字滤波或多次采样平均,提高测量稳定度。
结语
ADC 采集电路的设计通常是模拟和数字技术结合的过程,需要结合目标信号、电源、器件特性、环境干扰等多方面因素进行综合考量。一个好的前端电路不仅能保证测量的准确性,还能提升系统的鲁棒性、可靠性和可维护性。在实际设计中,建议参考芯片官方应用笔记及数据手册(如 ST 官方 AN 系列应用笔记),并通过仿真、样机测试及校准来最终优化 ADC 前端电路的性能。
,还能提升系统的鲁棒性、可靠性和可维护性。在实际设计中,建议参考芯片官方应用笔记及数据手册(如 ST 官方 AN 系列应用笔记),并通过仿真、样机测试及校准来最终优化 ADC 前端电路的性能。