嵌入式学习笔记 - STM32 ADC,多重转换,内部参考电压,过采样,逐次逼近原理,采样时间

news2025/5/15 15:37:26

一 多个ADC器件,多重转换速率

每个型号MCU通常由多个ADC器件,比如STM32F4有三个ADC器件,每个ADC器件有一个最大转换速率,一般为2.4Mhz,即一个ADC器件每秒最多转换2.4M次,两次转换之间需要有时间间隔,但是不同ADC器件之间没有转换间隔要求,即一个ADC器件转换完成,可以立即开始下一个ADC转换器件,这也叫做多重转换,这时相当于转换速率提升到2.4*3=7.2M。

二 内部参考电压 VREFINT

①内部参考电压的大小以及连接通道:

STM32内部有一个参考电压,Vrefint, 这个参照电压的典型值是1.20V,最小值是1.16V,最大值是1.24V(-40~85度)。这个参考电压不随外部供电电压的变化而变化。

不同的芯片这个参考电压的范围不一样,如下面这个(STM32L475 datasheet):

STM32 的这个内部参考电压 VREFINT 通常接入到 ADC 内部的通道17。

②内部参考电压的作用:

通常情况下STM32的ADC模块采用Vref作为参考电压,Vref内部连接到Vdda,其实也就是供电电压vdd,假如采用的ADC是12位的,那么测得的电压值为:

Vchx=Vdd*(ADchx/4096)

 但是在某些情况下,这个供电电压是不稳定的,有可能随外部一些其他用电器工作使用的大电流而导致电压不稳定,还有可能MCU供电LDO转换的精度个别偏差较大。这时候依然用vdd=3.3V的定值做参考电压计算,显然得出的值就会出现与实际电压偏差较大的问题。

而Vrefint的主要作用就是提供一个内部稳定的电压,这个电压不随外部供电电压的变化而变化,推测内部存在稳压二极管器件或者类似电路用来提供此参考电压,我们就可以用它来校正测量电压值从而提高准确性。首先采集并转换17通道ADC值ADrefint,然后采集实际所测量通道ADC值ADchx,那么通过公式

Vchx=VREFINT×(ADchx/ADrefint​) 

获得实际所测量电压值。

三 过采样

以下为STM32参考手册中对过采样器的描述

过采样提高采样分辨率的原理:

对于12位的STM32,其所能分辨的最小电压(即最小刻度)为3.3V / 2^12 = 0.0008V。在不改进硬件的情况下,可以通过过采样和求均值的方式提高ADC分辨率。

根据增加的分辨率位数计算过采样分辨率频率的方程:

fos = 4^w * fs,fos是过采样频率,w是希望增加的分辨率位数,fs是初始采样频率要求(产品所需实际采样频率)。

比如从12位提升ADC分辨率到16位分辨率,采样频率就要提高256(4^(16-12))倍。将采样结果求和,再将求和结果右移N位(N为用户想提升的位数,本例中为4),就能得到提高分辨率的结果了,这个过程称为抽取.

个人对于过采样的理解,过采样针对的是ADC模块的动态性能,因为ADC模块采集转换的过程本来就是一个动态循环的过程,12位逐次比较要比较4096次,那么只要是动态采集就会有误差,过采样就是消除误差的一种方式。比如12位ADC最高分辨率0.0008,测量一个Vtaget=0.00095的电压,过采样器能输出0.00095的电压,未加过采样器可能仅仅能输出0.0008的电压结果,也就是说ADC的过采样体现在求取0.0008或者说0.00095的过程中。

以下是deepseek对过采样动态性能的回答:

过采样技术的主要应用场景与信号处理的动态性能优化相关,而非直接针对广义的“动态检测”任务。其核心作用体现在以下方面:

过采样的核心功能与应用

  1. ‌提升ADC动态性能指标 ‌
    过采样通过增加采样率(远高于奈奎斯特频率)可显著改善模数转换器(ADC)的信噪比(SNR)、有效位数(ENOB)和动态范围13。例如,4倍过采样可将动态范围增加6 dB(相当于1位分辨率提升)4。

  2. ‌抑制噪声与失真‌
    结合噪声整形技术(如叠加白噪声或三角波扰动),过采样能将量化噪声能量分布到高频区域,再通过数字滤波消除带外噪声,从而优化信号重建质量16。

  3. ‌扩展系统适用场景‌
    在光谱分析、MRI成像等需要高动态范围的应用中,过采样能够更精确地捕获传感器输出的微弱信号与大动态范围信号3。

与动态检测的关联性辨析

  1. ‌间接支持动态信号分析‌
    在环境监测等动态检测场景中,过采样通过提高采样数据的信噪比和分辨率,可为后续的动态信号分析(如污染物扩散追踪、趋势预测等)提供更可靠的底层数据支撑2。

  2. ‌技术范畴差异‌
    目标检测等领域提及的“采样”(如平衡正负样本)属于数据增强策略,与信号处理领域的过采样属于不同技术体系,后者侧重于物理信号采集过程的优化7。

结论

过采样本质是针对信号采集环节的动态性能优化技术,而非直接服务于动态检测任务。其价值体现在为动态检测系统提供高质量的基础数据输入,但两者属于不同层级的技术实现。

四.  ADC内部结构(逐次逼近型内部电路原理机制)

 本部分内容转自  ADC采样内部原理及ADC实现高分辨率采样_adc采样原理-CSDN博客

STM32微控制器中内置的ADC使用SAR(逐次逼近)原则,分多步执行转换。转换步骤数等 于ADC转换器中的位数。每个步骤均由ADC时钟驱动。每个ADC时钟从结果到输出产生一 位。ADC的内部设计基于切换电容技术。

下面的图介绍了ADC的工作原理。下面的示例仅显示了逼近的前面几步,但是该过程会持续到LSB为止

SAR切换电容ADC的基本原理(10位ADC示例)

带数字输出的ADC基本原理图

采样状态

采样状态:电容充电至电压VIN。Sa切换至VIN,采样期间Sb开关闭合

2、保持状态

保持状态:输入断开,电容保持输入电压。Sb开关打开,然后S1-S11切换至接地且Sa切换至VREF。

3、逐次逼近

1、第一个逼近步骤。S1切换至VREF。VIN与VREF/2比较

2、如果MSB = 0,则与¼VREF进行比较,S1切换回接地。S2切换至VREF。

3、如果MSB = 1,则与¾VREF进行比较,S1保持接地。S2切换至VREF。

重复如上步骤,直到LSB为止。可以简单理解为二分法逐次进行输入电压与参考电压的比较。首次于VREF/2比较,下次比较根据上次比较结果决定,如果MSB=1则与¾VREF比较。如果MSB=0则与¼VREF比较。后面决定与1/8VREF 3/8VREF、 5/8VREF、 7/8VREF之一做比较。循环直到输出LSB为止。

五, 采样时间

ADC转换时间=采样时间+数据转换时间(跟ADC位数相关,位数越大这个数据转换时间越大)

采样时间:数据手册中定义为最低1.5CLK,即最低1.5个时钟周期,其实这里可以理解为前后两次ADC转换最低间隔时间,也就是给ADC内部电容留出足够的充电时间。

数据转换时间:跟ADC位数相关,位数越大这个数据转换时间越大,比如数据手册中指明12为ADC转换时间需要12.5个时钟周期

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2376199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

团结引擎 1.5.0 发布,抖音小游戏平台即将开放、Shader Graph功能新增…引擎能力再提升!

「团结引擎 1.5.0」来啦!本次技术更新的内容,涵盖了小游戏、团结引擎车机版、OpenHarmony、Shader Graph、Muse Chat、Hub&License、代码升级、Digital Asset Manager for Tuanjie、团结官方开源车模 Sample 几大方向。 小游戏 在 Tuanjie 1.5.0 版…

如何配置activemq,支持使用wss协议连接。

1、到阿里云申请一个证书&#xff0c;通过后下载jks证书。 2、配置activemq&#xff1a; 打开activemq安装目录中“conf/activemq.xml”&#xff0c;增加以下记录&#xff1a; <transportConnectors> <transportConnector name"wss" uri"…

初学c语言14(指针6)

一.sizeof和strlen的对比 1.sizeof 操作符&#xff0c;计算变量所占空间大小 2.strlen 库函数&#xff0c;函数原型为&#xff1a; 求的是字符串的长度&#xff0c;统计的是“\0”之前的字符个数 二.指针和笔试题解析 补充&#xff1a;数组名的意义 1.sizeof(数组名) 这…

数字化转型-4A架构之技术架构

4A架构系列文章 数字化转型-4A架构&#xff08;业务架构、应用架构、数据架构、技术架构&#xff09; 数字化转型-4A架构之业务架构 数字化转型-4A架构之应用架构 数字化转型-4A架构之数据架构 数字化转型-4A架构之技术架构 一、 技术架构 Technology Architecture 1. 技…

kaggle薅羊毛

参考&#xff1a;https://pytorch-tutorial.readthedocs.io/en/latest/tutorial/chapter05_application/5_1_kaggle/#512-kaggle https://github.com/girls-in-ai/Girls-In-AI/blob/master/machine_learning_diary/data_analysis/kaggle_intro.md 1&#xff0c;code training…

TCP 三次握手建立连接详解

文章目录 一、三次握手流程1、第一次握手2、第二次握手3、第三次握手 二、引申问题1、报文丢失&#xff0c;会发生什么&#xff1f;1.1、第一次握手丢失1.2、第二次握手丢失1.3、第三次握手丢失 2、为什么 ISN(Initial Sequence Number&#xff0c;初始序列号) 不固定3、为什么…

高海拔和远距离的人员识别:面部、体型和步态的融合

大家读完就觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 我们解决了在无约束环境中进行全身人体识别的问题。这个问题出现在诸如IARPA高空和远距离生物识别与身份识别&#xff08;BRIAR&#xff09;计划等监视场景中&#xff0c;其中生物识别数据是在长…

自然语言处理入门级项目——文本分类

文章目录 前言1.数据预处理1.1数据集介绍1.2数据集抽取1.3划分数据集1.4数据清洗1.5数据保存 2.样本的向量化表征2.1词汇表2.2向量化2.3自定义数据集2.4备注 结语 前言 本篇博客主要介绍自然语言处理领域中一个项目案例——文本分类&#xff0c;具体而言就是判断评价属于积极还…

一发入魂:极简解决 SwiftUI 复杂视图未能正确刷新的问题(上)

概述 各位似秃非秃小码农们都知道&#xff0c;在 SwiftUI 中视图是状态的函数&#xff0c;这意味着状态的改变会导致界面被刷新。 但是&#xff0c;对于有些复杂布局的 SwiftUI 视图来说&#xff0c;它们的界面并不能直接映射到对应的状态上去。这就会造成一个问题&#xff1…

软件设计师-下午题-试题4(15分)

目录 1 回溯法 1.1 N皇后问题 1.1.1 非递归求解N皇后问题 1.1.2 递归求解N皇后问题 1.2 真题 2 分治法 2.1 真题 3 动态规划法 3.1 0-1背包问题 3.2 真题 1 回溯法 1.1 N皇后问题 上图Q4与Q2在同一列且与Q1在同一斜线&#xff0c;先回溯到上一个皇后改变Q3皇后的位置…

leetcode二叉树相关题目复习(C语言版)

目录 1.单值二叉树 2.相同的树 3.对称二叉树 4.二叉树的前序遍历 5.另一颗树的子树 1.单值二叉树 思路1&#xff1a; 判断根节点、左节点与右节点的值是否相等&#xff0c;因为正向判断&#xff08;即判断三值相等返回true&#xff09;比较麻烦&#xff08;不能根节点满足…

第十九次博客打卡

今天学习的内容是Java中的常见循环。 在 Java 中&#xff0c;常见的循环结构主要有以下几种&#xff1a;for 循环、while 循环、do-while 循环以及增强型 for 循环&#xff08;也称为 for-each 循环&#xff09;。 1. for 循环 for 循环是一种非常灵活的循环结构&#xff0c…

浅聊一下数据库的索引优化

背景 这里的索引说的是关系数据库&#xff08;MSSQL&#xff09;中的索引。 本篇不是纯技术性的内容&#xff0c;只是聊一次性能调优的经历&#xff0c;包含到一些粗浅的实现和验证手段&#xff0c;所以&#xff0c;大神忽略即可。 额…对了&#xff0c;笔者对数据库的优化手段…

山东大学软件学院软件工程计算机图形学复习笔记(2025)

写在前面&#xff1a; 现在是考完试的第二天&#xff0c;考试的内容还是有一部分没有复习到的…… 根据三角形的3个顶点坐标和内部某点坐标D&#xff0c;写出点D的基于面积的权重坐标Bresenham的算法描述与改进策略&#xff08;这里ppt上很不清晰&#xff09;以及直线反走样的…

【Docker】Docker Compose方式搭建分布式内存数据库(Redis)集群

文章目录 开发环境开发流程运行效果Docker Desktop桌面中的Redis结点启动图Redis结点1的打印日志情况图 配置代码命令行启动配置文件: README.md删除集群信息新建数据目录本地Redis的结点的域名,并添加到/etc/hosts文件的末尾域名映射启动集群结点创建集群关闭集群结点 redis-c…

如何在 Bash 中使用 =~ 操作符 ?

在 Bash 脚本世界中&#xff0c;有各种操作符可供我们使用&#xff0c;使我们能够操作、比较和测试数据。其中一个操作符是 ~ 操作符。这个操作符经常被忽视&#xff0c;但功能非常强大&#xff0c;它为我们提供了一种使用正则表达式匹配字符串模式的方法。 ~ 操作符语法 语法…

科学养生指南:打造健康生活

在快节奏的现代生活中&#xff0c;健康养生成为人们关注的焦点。科学养生无需复杂理论&#xff0c;掌握以下几个关键要素&#xff0c;就能为身体构筑坚实的健康防线。​ 合理饮食是健康的基础。世界卫生组织建议&#xff0c;每天应摄入至少 5 份蔬菜和水果&#xff0c;保证维生…

华为OD机试真题——单词接龙(首字母接龙)(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

计算机网络-MPLS VPN基础概念

前面几篇文章我们学习了MPLS的标签转发原理&#xff0c;有静态标签分发和LDP动态标签协议&#xff0c;可以实现LSR设备基于标签实现数据高效转发。现在开始学习MPLS在企业实际应用的场景-MPLS VPN。 一、MPLS VPN概念 MPLS&#xff08;多协议标签交换&#xff09;位于TCP/IP协…

【Linux系列】bash_profile 与 zshrc 的编辑与加载

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…