0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32 adc差分

分享:

在STM32微控制器中,ADC差分模式用于测量两个输入引脚(正端和负端)之间的电压差。这种模式可以有效抑制共模噪声,适用于高精度测量场景(如传感器电桥、电流检测等)。以下是关键点说明:


1. 差分模式的特点

  • 输入范围:差分电压范围由参考电压(VREF+和VREF-)决定,通常为±VREF。
  • 结果表示:输出值为有符号数(二进制补码格式),需注意符号位处理。
  • 精度提升:消除共模干扰,适合小信号放大后的测量。

2. 支持的STM32型号

  • STM32F3系列(如F303):内置高精度差分ADC。
  • STM32G4、L4、H7等系列:多数支持差分输入。
  • 部分F1/F4型号:可能不支持,需查阅具体型号的《参考手册》。

3. 配置步骤(以HAL库为例)

(1) 启用ADC和GPIO时钟

__HAL_RCC_ADC1_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE(); // 假设使用PA1和PA2

(2) 配置GPIO为模拟输入

GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_1 | GPIO_PIN_2; // 正端PA1,负端PA2
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

(3) 初始化ADC并设置差分模式

ADC_ChannelConfTypeDef sConfig = {0};
hadc1.Instance = ADC1;
hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
hadc1.Init.ContinuousConvMode = ENABLE;
hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; // 数据右对齐
hadc1.Init.NbrOfConversion = 1;
HAL_ADC_Init(&hadc1);

// 配置差分通道
sConfig.Channel = ADC_CHANNEL_1;          // 正端通道(如PA1)
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SingleDiff = ADC_DIFFERENTIAL_ENDED; // 设置为差分模式
sConfig.SamplingTime = ADC_SAMPLETIME_47CYCLES_5;
HAL_ADC_ConfigChannel(&hadc1, &sConfig);

(4) 校准并启动ADC

HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED); // 部分型号需校准
HAL_ADC_Start(&hadc1);

(5) 读取差分值

HAL_ADC_PollForConversion(&hadc1, 100); // 等待转换完成
int32_t raw_value = (int32_t)HAL_ADC_GetValue(&hadc1); // 有符号原始值
float voltage_diff = raw_value * (VREF / 4096.0f);     // 转换为电压差(12位分辨率)

4. 注意事项

  • 负端限制:负端输入电压必须在ADC允许范围内(通常≥VREF-)。
  • 通道配对:某些型号的差分通道需固定配对(如CH1和CH2),需查阅数据手册。
  • 噪声抑制:尽量缩短走线,使用屏蔽线或差分放大器预处理信号。
  • 结果处理:若结果为负,表示负端电压高于正端,需保留符号位计算。

5. 常见问题

  • Q:差分模式的最大电压差是多少?
    A:通常为±VREF(例如VREF=3.3V时,范围为-3.3V至+3.3V),但具体值需参考手册。

  • Q:如何提高差分测量精度?
    A:使用外部参考电压、优化PCB布局、增加采样周期和硬件滤波。

  • Q:HAL库中未找到差分配置选项?
    A:可能是型号不支持,或需使用LL库直接操作寄存器(如ADCx->DIFSEL)。


通过以上配置,您可以利用STM32的ADC差分模式实现高精度差分信号采集。建议结合具体型号的《参考手册》验证寄存器配置细节。

STM32L476RGADC的问题求解

我正在开发一个使用 STM32L476RG 微控制器的项目,在分配置中使用 ADC 时遇到了问题。当使用配置为ADC 时,ADC 的输出与配置为单端通道时相同,这意味着它包含 1/2

tianyu5655 2023-01-12 07:21:08

请问全ADC与伪ADC相比优势在哪里?

大家好,遇到一个疑惑,要对原来做的系统改进,原系统用的是伪ADC,单端信号输入,现在想改为真差ADC,但是传感器输出的是单端信号,所以在ADC之前要用一个单端转的模块,就想问一下,这么做的效果在理论上是不是会好点,还有全ADC与伪ADC相比优势在哪里,谢谢。

飞雪9366 2023-12-15 08:22:16

请问STM32F334 ADC输入下能识别负信号吗?

STM32F334 ADC输入下能识别负信号吗?

我在线中 2023-10-23 06:27:59

ADC中不同电阻容对THD性能的影响

本应用笔记解释了输入端相同值电阻的不同容如何改变全ADC的THD性能。电阻器的成本随着容每降低一次而显著变化

2023-01-12 09:38:23

高速ADC驱动器设计指南

大多数现代高性能ADC使用输入抑制共模噪声和干扰。 由于采用了平衡的信号处理方式,这种方法能将动态范围提高2倍,进而改善系统总体性能。 虽然 输入型 ADC也能接受单端输入信号,但只有在输入分信号时才能获得最佳ADC性能。

2023-02-23 11:58:39

如何针对设计选择合适的ADC驱动器

本研讨会分为两部分,讨论如何针对设计选择合适的ADC驱动器,这是第一部。在第一部中,我们讨论驱动ADC的基本知识,包括以下主题:数据采样系统的误差(例如失真和噪声)、有效位数(ENOB)、分信号定义和优势、ADC驱动器架构。

2019-06-20 06:06:00

LTC2410的典型应用,具有输入和参考的24位无延迟ΔΣADC

LTC2410的典型应用,具有输入和参考的24位无延迟ΔΣADC。 LTC2410是一款2.7V至5.5V微功耗24位模数转换器,集成振荡器,2ppm INL和0.16ppm RMS噪声

shuqingli 2020-06-16 10:22:03

驱动放大器和ADC接口设计方法

驱动放大器和ADC接口设计方法分享

joereil 2023-05-31 18:29:06

构建全输入 ADC的模拟前端信号链路

构建全输入 ADC的模拟前端信号链路

2026-01-16 17:42:32

请问CH579M ADC输入模式下最多支持几路模式?

请问CH579M ADC输入模式下最多支持几路模式,手册上看到的支持通道0(AIN0 AIN2)、通道1(AIN1 AIN3).

lifei639156 2022-05-19 06:49:57

请问一下ADC功耗是什么意思?

请问一下ADC功耗是什么意思?

风来吴山 2021-06-25 08:04:07

双极性ADCADC中的失调误差和增益误差

关于模数转换器(ADC),了解双极性ADCADC中的失调误差和增益误差以及失调误差单点校准。 在上一篇文章中,我们讨论了如何 失调误差可能会影响单极性ADC的传递函数。 考虑到这一点,单极

2023-01-27 16:57:00

用于降低ADC驱动器谐波失真的PCB布局技术

PCB布局是优化高速板线性度性能的关键因素。 本系列的前几篇文章讨论了减少二次谐波失真的一些基本技术。 这篇文章,灵感来自TI文档”高速印刷电路板布局技术“,试图详细讨论如何在高速ADC驱动器中

2023-01-27 09:29:00

探究减少ADC驱动器谐波失真的PCB布局技术

PCB布局是优化高速板的线性性能时的关键因素。本系列中的前几篇文章讨论了减少二次谐波失真的一些基本技术。本文受TI文档“高速PCB布局技术”的启发,试图详细讨论应如何在高速ADC驱动器中布置轨至

2021-03-31 14:48:20

HPM6200系列支持ADC模式采样吗?

HPM6200系列支持ADC模式采样吗, 没有在应用手册的寄存器描述看到相关信息。STM32和系统架构一些其他厂商上面是支持的,不需要手动额外做两个通道的减法。如果支持,是不是采样率减一倍?

hanyan533 2023-06-13 08:15:56

思瑞浦最新推出16位单通道全SAR型ADC

聚焦高性能模拟芯片和嵌入式处理器研发的半导体公司——思瑞浦(3PEAK,股票代码:688536)最新推出16位单通道全SAR型ADC——TPC5160、16位单通道伪SAR型ADC

2022-10-26 11:02:35

高速ADC驱动器设计会遇到哪些故障

作为应用工程师,会经常遇到各种有关输入型高速模数转换器(ADC)的驱动问题吗?对这方面不太熟悉,可以请哪些大神可以做一个汇总吗?谢谢

骑海豚的少年 2021-03-05 07:25:34

关于M058LBN输入ADC转换问题

换成5V供电时,输入转换工作正常,用万用表测ADC输入端口是0.7V左右。 看手册AVDD输入范围是3V~5,5V之间。3.3v电压也在范围内,问题出在哪麻烦大家帮忙分析一下。

gsdafs 2023-08-24 07:36:15

实例分享丨真双极性输入、全输出ADC驱动器设计

两级信号调理,它能调整双极性±10 V输入信号,并将其转换为 ADC所需的共模电平为 2.048 V的全±4.096 V信号。设计目标是实现上述调理,同时不降低ADC的噪声和失真性能。ADC 驱动器需要的电源电压通常超过 ADC 的输入范围,从而为输入

2023-07-07 18:40:03

单电源、、18位ADC驱动器ADA4941 - 1的详细解析

单电源、、18位ADC驱动器ADA4941 - 1的详细解析 在电子设计领域,高性能的ADC驱动器对于系统的整体性能至关重要。今天我们来深入了解一款由Analog Devices推出的单电源、

2026-01-13 09:30:02

[10.1.1]--背景

,机器视觉

2022-11-25 21:17:08

请问±10V分信号如何调理到ADC可以接受的±2.5V的范围内?

±10V分信号如何调理到ADC可以接受的±2.5V的范围内?另外采用差分放大器驱动ADC时,发现在绝对最大额定值参数中,有个输入电压电压,一般比较小,这个参数是不是说明只能输入的分信号就这么大?

生龙活虎3 2023-11-27 06:06:36

输入ADC的单端到转换器驱动设计

单端信号需要转换成分信号,以便使用ADC进行转换。这个就所谓的ADC驱动电路。 需要的结果为 Vp = Vcm + Vi/2 Vn = Vcm – Vi/2 这样 Vp – Vn = Vi

2024-06-04 09:28:29

ADI低功耗AD4021和AD4022SAR ADC

Analog Devices, Inc. 的AD4021和AD4022是逐次逼近寄存器(SAR)模数转换器(ADC)。20位的AD4021/AD4022 ADC与AD4020 SAR ADC引脚兼容,可帮助工程师准确捕捉高频信号,并采用过采样技术来解决与抗混叠滤波器设计相关的挑战。

2020-07-31 15:15:48

输入至输出电路设计

输入至输出电路设计

2024-11-30 01:04:57

什么是晶振 晶振的优势 输出与单端输出的差别

什么是晶振 晶振的优势 输出与单端输出的差别 晶振,也被称为模晶振或输出晶振,是现代电子设备中常用的一种晶振结构。它通过两个需配对的晶体振荡器单元来产生输出信号。晶振具有

2024-01-18 11:30:06

请问ADC的单端输入与输入有什么区别?

ADC的单端输入与输入的区别?

yangshuhantju 2019-09-09 01:43:27

AK5574:高性能4通道32位ΔΣ ADC详析

AK5574:高性能4通道32位ΔΣ ADC详析 在数字音频系统领域,ADC(模拟 - 数字转换器)的性能对音频质量起着至关重要的作用。AsahiKASEI的AK5574是一款专为数字音频

2026-03-28 10:15:02

的概念

理解单端,全 单端信号: 单端信号(single-end)是相对于分信号而言的,单端输入指信号有一个参考端和一个信号端构成,参考端一般为地端。 ADC单端输入 比如说UART232串口中,发送

2024-04-01 10:13:38

加载更多
相关标签