好的,针对STM32进行模拟电压采集的电路设计,核心目标是提供一个稳定、准确、安全的信号给STM32的ADC(模数转换器)引脚。以下是关键组成部分和设计要点:
? 核心电路组成及设计要点
-
信号源与接口 (Signal Source & Interface):
- 明确你要测量的电压来源(例如:传感器输出、电池电压、电位器、分压网络等)。
- 了解信号源的特性:
- 电压范围: 最小值和最大值是多少?(例如:0-5V, -10V ~ +10V, 0-24V等)
- 输出阻抗: 信号源驱动能力如何?是高阻抗还是低阻抗?
- 信号频率/变化速度: 信号是直流、缓慢变化还是快速变化的?
- 根据信号源特性选择合适的接口和保护电路。
-
输入电压范围匹配 (Input Voltage Range Matching):
- STM32 ADC输入范围: 绝大多数STM32的ADC输入电压范围为
0V到V_REF+(通常在3.3V或3.0V,具体看型号和数据手册的 "ADC characteristics" 章节)。V_REF+通常连接到VDDA(模拟电源)。 - 信号电压 > V_REF+ 或 < 0V:
- 分压电路 (Voltage Divider): 对于高于
V_REF+的正电压(如12V电池),使用两个精密电阻(R1, R2)进行分压。选择电阻值时要考虑:- 分压比:
V_out = V_in * (R2 / (R1 + R2)),确保最大V_out<=V_REF+(最好留有裕量,例如最大到 3.0V 或 3.1V)。 - 阻抗匹配: 分压电路的等效输出阻抗
Req = R1 // R2 = (R1 * R2) / (R1 + R2)应 远小于 STM32 ADC的输入阻抗(通常在几十KΩ到上百KΩ量级,具体看数据手册)。通常选择Req在 1KΩ - 10KΩ 之间比较合适(例如 R1=10KΩ, R2=10KΩ 分压比为1/2,Req=5KΩ)。 - 电阻精度与温漂: 使用1%精度或更高精度的金属膜电阻,温漂系数低的更好。
- 分压比:
- 电平移位/运放电路: 对于负电压或需要精确电平转换的情况,需要使用运算放大器(如轨到轨输入/输出的运放)搭建加法器或差分放大器电路(如果信号是差分的)。
- 分压电路 (Voltage Divider): 对于高于
- 信号电压在 0V - V_REF+ 范围内: 如果信号本身就在ADC范围内且阻抗足够低,可以直接连接,但仍建议加上RC滤波和ESD/过压保护。
- STM32 ADC输入范围: 绝大多数STM32的ADC输入电压范围为
-
RC 低通滤波 (RC Low-Pass Filtering):
- 目的: 滤除信号中的高频噪声和干扰(尤其是开关电源噪声、数字电路耦合噪声),平滑信号,提高ADC采样精度和稳定性,防止混叠。
- 位置: 尽可能靠近STM32的ADC引脚放置。
- 电路: 一个电阻(Rf)串联在信号线上,一个电容(Cf)连接在ADC引脚和模拟地(AGND)之间。形成一个截止频率
f_c = 1 / (2 * π * Rf * Cf)的低通滤波器。 - 设计要点:
- 截止频率 (f_c): 根据被测信号的最高有效频率分量来选择。
f_c应大于信号最高频率(保留信号),但远小于ADC采样频率(Fs)的一半(满足奈奎斯特采样定理),并且足够滤除主要噪声。通常选择f_c在信号最高频率的几倍到Fs的1/10左右。对于缓慢变化的直流信号(如温度测量),f_c选1Hz~100Hz很常见(例如 Rf=1KΩ, Cf=10uF => f_c≈16Hz)。 - 电阻选择 (Rf): 通常在几百Ω到10KΩ之间。太小滤波效果差且增加信号源负载;太大会与ADC输入电容形成额外极点影响建立时间。1KΩ 或 4.7KΩ是常用值。
- 电容选择 (Cf): 根据计算的
f_c和Rf确定。选择低泄漏电流的NPO/C0G陶瓷电容或薄膜电容(如聚丙烯)。避免使用高泄漏的电解电容或Y5V/X7R陶瓷电容(直流偏压效应会导致容值剧降)。典型值在1nF到10uF之间。
- 截止频率 (f_c): 根据被测信号的最高有效频率分量来选择。
- 作用: 限制进入ADC引脚的最高频率,减少噪声,帮助ADC采样保持电容充电到稳定值。
-
ADC输入引脚保护 (ADC Input Protection):
- 目的: 防止外部过压(静电ESD、电源波动、接线错误)、负压或大电流冲击损坏敏感的ADC输入电路。
- 关键元件:
- 限流电阻 (Rs): 通常与滤波电阻
Rf合并或放在其之前(靠近信号源端)。阻值选择需平衡保护(阻值大些好)和信号建立时间/精度(阻值小些好)。100Ω - 1KΩ 是常见范围。它限制了流入内部钳位二极管或TVS管的最大电流。 - 钳位二极管/瞬态电压抑制器 (TVS):
- 内部钳位: STM32几乎所有GPIO内部都有连接到
VDD和VSS的ESD保护二极管。当输入电压超过VDD + 0.3V或低于VSS - 0.3V时,这些二极管会导通,将电压钳位在安全范围内。 - 外部TVS: 对于预期有较大瞬态过压(如工业环境、长导线引入的浪涌)的应用,强烈建议在ADC引脚与模拟地(AGND)之间增加一个双向TVS二极管(如SMAJ3.3A, SMBJ3.3A)。其击穿电压
V_BR略高于V_REF+(如3.3V系统选V_BR ≈ 5V - 6V的TVS)。
- 内部钳位: STM32几乎所有GPIO内部都有连接到
- 负压保护: 如果信号源有可能产生负电压(即使很小),必须在信号线上串联一个肖特基二极管到地(阴极接地,阳极接信号线),利用其低正向压降(~0.3V)将负压钳位在 -0.3V 左右,防止损坏内部接地二极管。也可以选用具有负压保护能力的专用ADC输入保护芯片。
- 限流电阻 (Rs): 通常与滤波电阻
-
接地与去耦 (Grounding & Decoupling):
- 模拟地与数字地 (AGND & DGND):
- STM32通常有独立的
VSSA/VREF-(模拟地)和VSS(数字地)引脚。 - 最佳实践: 在PCB上,将模拟电路部分(ADC引脚、RC滤波、参考源、模拟电源去耦)的所有接地连接到模拟地平面。数字电路部分连接到数字地平面。
- 单点连接 (Star Ground): 将模拟地平面和数字地平面在一个点相连(通常在靠近STM32芯片下方或电源输入滤波电容的地端)。这是降低数字噪声耦合到模拟信号的关键!避免形成地环路。
- STM32通常有独立的
- 电源去耦:
- 模拟电源 (VDDA): 必须使用干净的电源。通常通过一个磁珠 (Ferrite Bead) 或小电阻(如10Ω)从主系统电源(如3.3V)隔离过来。在靠近STM32的
VDDA和VSSA引脚处,放置一个 10uF 钽电容/陶瓷电容 和一个 100nF 陶瓷电容(NPO/C0G) 并联进行退耦。 - ADC参考电压 (VREF+): 如果使用外部高精度参考源(如Ref2033, LM4040),需要仔细布局布线。如果使用
VDDA作为参考,确保VDDA足够稳定和干净。 - 数字电源 (VDD): 同样需要就近放置去耦电容(如100nF + 10uF)。保持数字电源的噪声不影响模拟部分。
- 模拟电源 (VDDA): 必须使用干净的电源。通常通过一个磁珠 (Ferrite Bead) 或小电阻(如10Ω)从主系统电源(如3.3V)隔离过来。在靠近STM32的
- 模拟地与数字地 (AGND & DGND):
? 典型电路示意图 (简化版)
+-------------+ +---------+ +---------+ +-------------------+
| | | | | | | |
| Signal +--------+ Rs +---------+ Rf +-------+ ADC_INx (STM32) |
| Source | | (可选/限流)| | (滤波/限流)| | |
| | | | | | | |
+-------------+ +---------+ +---------+ | |
| | | |
\|/ \|/ | |
+-------------+ +----------+ +------+------+ | |
| | | | | | | |
| AGND-----+----------+ TVS +------+ Cf | | |
| (干净!) | | (双向) | | (滤波电容) +---+ |
| | | | | | | |
+-------------+ +----------+ +-------------+ +-------------------+
钳位到AGND | 连接到AGND
|
V
AGND (平面)
设计流程总结
- 明确需求: 测什么电压?范围?精度要求?速度要求?工作环境?
- 匹配范围: 使用分压器或运放将信号调整到
0V - V_REF+范围内。 - 降低阻抗 (如果需要): 如果信号源阻抗高(>> ADC输入阻抗),添加电压跟随器(单位增益缓冲运放)。
- 添加滤波: 设计RC低通滤波器(靠近STM32放置),选择合适的
Rf和Cf。 - 加入保护: 添加电阻(Rs/Rf)和TVS管(必要时加负压保护二极管)。
- 严格处理电源和地: 使用磁珠隔离模拟/数字电源,充分去耦(
VDDA、VREF+、VDD),分离模拟地和数字地并在单点连接。 - PCB布局: 模拟部分(ADC输入、滤波、参考源)远离数字噪声源(时钟、高速数据线、开关电源)。优先布线模拟信号线。保证AGND平面完整。
? 软件侧注意事项
- ADC初始化: 配置ADC时钟、分辨率(12位最常见)、采样时间(需足够长以保证输入RC网络稳定,尤其当信号源阻抗高或使用了大Cf时)、对齐方式(左对齐/右对齐)。
- 校准: 启用STM32内置的ADC校准功能(Offset & Linear Calibration),以提高精度。
- 采样与平均: 对于直流或慢变信号,采用多次采样取平均能有效抑制噪声。
- DMA: 对于多通道扫描或高速采样,使用DMA传输数据可极大减轻CPU负担。
- 参考电压: 在代码中明确使用的是
VDDA还是外部VREF+,并知道其准确值(测量或使用高精度参考源)。
? 常见应用场景简化电路示例
- 测量电池电压 (如12V铅酸电池):
- R1 = 30KΩ (1%), R2 = 10KΩ (1%) -> 分压比 1/4, Req=7.5KΩ
- Rf = 1KΩ (限流/滤波), Cf = 100nF (C0G) -> f_c ≈ 1.6kHz
- TVS: SMAJ5.0A (VBR=6.4V min)
- 测量电位器/分压器输出电压 (0-3.3V):
- 如果电位器阻抗低(如10KΩ),通常可直接:Rf = 1KΩ, Cf=100nF, TVS
- 如果电位器阻抗高(如1MΩ),需加电压跟随器缓冲:电位器 -> 运放(电压跟随器) -> Rf/Cf/TVS -> ADC
- 连接工业传感器 (如4-20mA变送器输出1-5V):
- 通常传感器输出阻抗低,可: R1=24.9KΩ, R2=10KΩ (1%) -> 分压比 ~0.286, 将1-5V -> ~0.286V-1.43V (在0-3.3V内)
- Rf=1KΩ, Cf=1uF (低泄漏薄膜电容) -> f_c ≈ 160Hz (适合慢变过程信号)
- TVS: SMAJ5.0A
- 注意: 工业环境需考虑隔离(信号隔离或电源隔离),此处电路未包含隔离。
? 关键点再强调
- 保护先行: 防止损坏MCU是首要任务,TVS管和限流电阻非常重要。
- 干净的地和电源: 这是获得良好ADC精度的基石,单点接地和电源隔离/去耦必须做好。
- 合适的阻抗和滤波: 确保信号能稳定传输到ADC输入端并滤除噪声。
- 仔细阅读数据手册: 务必查阅你所使用的具体STM32型号的官方数据手册(Datasheet)和参考手册(Reference Manual),获取准确的ADC特性(输入阻抗、采样时间、参考源要求等)和电气参数。
希望这份详细的解释能帮助你设计出可靠的STM32模拟电压采集电路!如果你有特定的应用场景或参数,可以提供更多信息,可以帮你分析具体的电路设计。 ?
第12章-ADC采集电压和显示 基于STM32的ADC—电压采集(详细讲解+HAL库)
第12章-ADC采集电压和显示 基于STM32的ADC—电压采集(详细讲解+HAL库)
2024-08-21 16:31:34
利用STM32的AD采集功能实时采集心率传感器信号输出引脚输出的模拟电压
的模拟电压,通过将采集到的模拟信号在STM32内部进行运算处理,将数据波形实时显示到OLED显示屏上。并且按下测量键可以进行心率测量,在OLED显示屏上面显示一分钟脉搏数。1.使用STM32对心率传感器输出模拟电信号来进行模数转换;2.采集回的数据以波形的形式显示在OLED显示屏上;3.当按下测量按键时
goodmbby
2021-08-09 07:35:04
如何设计合适的电压采集电路
电压的采集是我们进行电路设计常常用到的,具体的采集类型上又分为直流采集和交流采集,将源电压通过一系列的电路设计,最终通过AD(数模转换芯片或单片机内部AD)读入MCU,并执行相应的决策,是我们大多设计的要求。下文将通过具体的实例介绍如何设计合适的电压采集电路。
2022-07-15 14:56:39
电压采集电路原理是什么
vcc处电压变化范围0-150v,单片机AD口接至stm32ad采样端口,请问这个电压采集的原理是什么,我只见过电阻分压,差分采样电路,这种电路如何采集vcc处电压?求大佬们指导
喂别闹0913
2019-10-18 16:06:31
如何设计合适的电压采集电路
电压的采集是我们进行电路设计常常用到的,具体的采集类型上又分为直流采集和交流采集,将源电压通过一系列的电路设计,最终通过AD(数模转换芯片或单片机内部AD)读入MCU,并执行相应的决策,是我们大多设计的要求。下文将通过具体的实例介绍如何设计合适的电压采集电路。
2022-07-04 18:40:37
STM32 AD采集:电阻分压电路调试指南
调试基于STM32为主控,内部ADC采集电阻分压式电压值电路,STM32未使用参考电压源,直接将Vref接至3V3供电端,发现采集后电压误差较大,其电路图如下所示。 理论计算 根据分压公式,理想Vr
2025-02-07 11:12:06
如何去模拟电压转换电路?怎么计算转换电压?
之前一直没搞明白模拟电压转换电路,不知道应该怎么计算转换电压,最近一个项目中用到几处模拟电压的采集,硬件是由其他同事设计的,转换公式也是他给的,记录一下; 24V电压采集: 公式:Vout
fanB
2021-07-05 07:40:32
如何设计合适的电压采集电路
电压的采集是我们进行电路设计常常用到的,具体的采集类型上又分为直流采集和交流采集,将源电压通过一系列的电路设计,最终通过AD(数模转换芯片或单片机内部AD)读入MCU,并执行相应的决策,是我们大多
kmno4
2021-11-10 09:11:03
如何做一个最最简单的模拟值采集电路
对于大多数人而言,利用Arduino和传感器采集环境数据已经不是问题了,但是,如何控制成本问题呢? 今天我将带大家做一个最最简单的模拟值采集电路,当然这种电路早就有了,我只是引用而已。大家
南中南
2022-01-05 08:07:49
怎样实现电压模拟量和电流模拟量同一路采集?
165欧电阻取下之后电流模拟量又无法采集。dalao解答一下为什么这个传感器输入后会被这个165欧拉低?电路怎么改进或者怎么重新设计才能电流电压都能输入,只需通过软件进行切换?
Freedom96
2022-01-05 13:18:00
stm32ad采样测电压范围
AD(模拟数字)转换模块是嵌入式系统中经常使用的一个功能模块,它可以将模拟电压信号转换成数字信号,以便后续处理。在STM32系列微控制器中,AD采样测电压范围是一个重要的参数,它决定了我们可以测量
2023-12-29 10:35:37
STM32芯片如何使用片内参考电压实现模拟看门狗
STM32芯片的ADC模块往往都支持模拟看门狗功能,即可以对单个或多个通道开启模拟转换值的监测。当模拟通道ADC值超出设定的阈值时可以产生模拟看门狗事件并可触发看门狗中断。【注:下面截图或数据都是基于STM32L4系列芯片的,其它STM32系列与其类似。】
2020-08-29 16:16:30
pwm转换为模拟电压rc电路是什么原理
PWM(Pulse Width Modulation,脉冲宽度调制)转换为模拟电压的过程,并不直接通过RC(电阻-电容)电路实现,而是通常需要一个更复杂的电路系统,包括滤波器、比较器、放大器等元件
2024-08-08 14:56:01
使用stm32f407的adc来采集外部电池电压
要使用stm32f407的adc来采集外部电池电压,电压最大为8.4V,使用电阻分压到2.5V由ADC采集,但是现在有一个问题是:两个分压的电阻选取多大的合适?如果分压电阻太小,功耗会比较大,电阻
帅帅的欧尼酱
2019-05-21 10:00:20
一种可用于单片机的0-10V模拟量采集电路(一)
在嵌入式系统中会用到0-10V电压信号输出的传感器。 而单片机ADC引脚的输入电压却比较低。 如STM32引脚输入电压最高为3.3V,高于3.3V会导致单片机损坏。 这篇文章介绍一种可用于单片机的0-10V模拟量采集电路。 让我们一起来看看吧!
2023-03-16 14:30:04
LabVIEW采集模拟电压做比较优化显示
采集,上传到上位机显示四、实验步骤: 1、连接采集板5V、AD1、GND和功能板上的模拟电压区①②③,断开采集板上JP1(量程范围选择0~10v),板卡上电。2、打开上位机,新建vi,在程序框图
云脉冲科技刘荣琼1
2022-08-26 16:41:32
模拟量采集器是什么,它的原理是怎样的
现在模拟量采集在工业现场的应用越来越广泛,往往需要从现场采集大量的数据,如温度、电流、电压等,这使得各行各业对模拟量采集模块的需求越来越大,市场上也出现了许多生产模拟量采集模块的厂家,那么哪一个品牌
2021-04-20 15:35:11
ARM核MCU对模拟信号隔离采集的新方案
模拟信号隔隔离采集是很多控制系统的组成部分,最常见的是电流电压的采集,或用于系统的监测,或用于系统的控制。当前比较主流的模拟信号隔离采集是通过隔离运放将模拟信号从源侧传输到采集侧,然后通过MCU上面
2019-11-18 23:24:13
模拟电路有哪些基本电路
模拟电路有哪些基本电路 模拟电路是电子工程中最基础的部分之一,同时也是应用广泛的电子学领域之一。它是指利用电子元器件,将电信号转化为其他形式的信号(例如电流、电压等),以反映电路的特性和行为的一种
2023-08-27 15:42:48
采集器模拟电路自检测方案和应用电路设计
实践表明,采用机内测试BIT(Build-In-Test)技术能较大程度提高设备的可靠性和可维修性,目前,一些有高可靠性要求的数据采集器也开始采用BIT技术。由于数据采集器中包含大量模拟电路和数字电路
2020-07-26 11:22:39
怎样模拟仿真声音采集及处理电路
具体实现功能:1、模拟仿真声音采集及处理电路;2、LCD1602实时显示噪声分贝值,精度为0.1db;3、分贝显示范围为0-100db。
Oo一笑
2021-07-14 08:34:03
STM32 ADC是如何去实现AD转换并进行电压采集的
STM32的ADC模数转换器有何功能?STM32 ADC是如何去实现AD转换并进行电压采集的?
唯爱萌meng
2021-12-13 06:38:37
【解决方案】不懂模拟电路设计?如何完成温度信号采集?
。 常规的电路方案 1. 使用ADI和TI公司的高集成ADC芯片完成采集。电路需要少量的外围无源元件,先从ADC读取采样值,再在MCU中进行查表换算,将采样值换算成温度值。 2. 使用国产的信号链芯片自行搭建。随着国内基础模拟信号链芯片的日益完善,
2022-12-27 11:40:01
模拟看门狗
模拟看门狗简介STM32F1中带有的模拟看门狗功能,允许应用程序检测输入电压是否超出事先定义的高低阈值。在编程环节,程序员可根据应用的需求来设置检测的高,低阈值(如上图所示HTR与LTR)。一旦采集到
caoguiqun
2021-08-02 08:43:05
用AD9268采集一个 +- 5V范围内变化的模拟信号的电压图形,前端电路这块怎么做?
我现在要采集一个 +- 5V范围内变化的模拟信号的电压图形,现在准备用AD9268采集,不知道前端电路这块怎么做? 其中被测电压有时候是恒压,有时候是上升的,有时候下降。
秋风宜人
2023-12-08 06:49:44