STM32G4系列MCU的ADC模块标定方法和采样时间
目录
概述
1 ADC模块标定
1.1 功能介绍
1.2 软件程序校准ADC
1.2.1 标定步骤
1.2.2 标定时序框图
1.3 软件程序重新注入校准因子到ADC
1.3.1 标定步骤
1.3.2 更新ADC校准因子
1.4 用单个ADC转换单端和差分模拟输入
1.4.1 标定流程
1.4.2 混合单端和差分通道
2 通道可编程采样时间(SMPR1, SMPR2)
2.1 采样时间介绍
2.2 计算采样时间方法
2.3 采样约束
2.3.1 对采样时间的约束
2.3.2 灯泡取样模
2.3.3 灯泡模式时序图
3 采样时间控制触发方式
4 ADC时序
概述
本文主要介绍STM32G4系列MCU ADC采样标定的功能,包括功能介绍,标定ADC模块的类型,标定步骤,还介绍了ADC采样时间的相关内容。
1 ADC模块标定
1.1 功能介绍
每个ADC提供一个自动校准程序,驱动所有校准 序列,包括ADC的上/下电序列。在此过程中,ADC 计算一个校准因子,该因子为7位宽,并在ADC内部应用于 ,直到下一次ADC断电。在校准过程中,应用程序不得使用 ADC,必须等待校准完成。
校准是任何ADC操作的基础。它消除了可能因工艺或带隙变化而从芯片到芯片变化 的偏移误差。
用于单端输入转换的校准因子与用于差分输入转换的 因子不同:
1) 在启动要应用于单端输入转换的校准之前,写入ADCALDIF = 0。
2) 在启动要应用于差分输入转换的校准之前,写入ADCALDIF = 1。
然后通过设置位ADCAL = 1由软件启动校准。校准只能在禁用ADC (ADEN = 0)时 启动,在所有 校准序列中ADCAL位保持为1。然后,一旦校准完成,硬件就会清除它。在 这个时候,相关的校准因子存储在模拟ADC内部,也存储在 位CALFACT_S[6:0]或CALFACT_D[6:0]的ADC_CALFACT寄存器(取决于 单端或差分输入校准)
如果禁用ADC (ADEN = 0),则保留内部模拟校准。但是,如果 ADC长时间禁用,则建议在重新启用ADC之前运行一个新的校准周期 。
每次拔掉ADC的电源(例如,当产品进入待机或VBAT模式时, )都会丢失内部模拟校准。在这种情况下,为了避免花费时间 重新校准ADC,可以在不重新校准的情况下将校准因子重新写入ADC_CALFACT 寄存器中,假设软件先前已保存了先前校准期间提供的 校准因子。
如果ADC开启但未转换(ADEN = 1, ADSTART = 0, JADSTART = 0),则可以写入校准因子,然后在下一次转换开始时,将校准因子 自动注入模拟ADC。这种加载是透明的,不会 在转换开始时增加任何周期延迟。当VREF+电压变化超过10%时,建议重新校准 。
1.2 软件程序校准ADC
1.2.1 标定步骤
1) 确保DEEPPWD = 0, ADVREGEN = 1,并且ADC稳压器启动时间已经过去。
2) 确保ADEN = 0。
3) 通过设置ADCALDIF = 0(单端输入)或ADCALDIF = 1(差分输入)来选择此校准的输入模式。
4) 设置ADCAL。
5) 等待直到ADCAL = 0。
6)校准因子可以从ADC_CALFACT寄存器中读取。
1.2.2 标定时序框图
1.3 软件程序重新注入校准因子到ADC
1.3.1 标定步骤
1) 确保ADEN = 1, ADSTART = 0和JADSTART = 0(启用ADC并且没有 转换正在进行)。
2) 用新的校准因子编写CALFACT_S和CALFACT_D。
3) 当转换启动时,只有当内部模拟校准因子与存储在单端输入通道 CALFACT_S或差分输入 通道CALFACT_D位中的校准因子不同时,才会将校准因子注入模拟ADC 。
1.3.2 更新ADC校准因子
1.4 用单个ADC转换单端和差分模拟输入
1.4.1 标定流程
如果ADC要转换差分和单端输入,则必须执行两次校准 ,一次是ADCALDIF = 0,另一次是ADCALDIF = 1。步骤如下 :
1) 关闭ADC
2) 在单端输入模式下校准ADC (ADCALDIF = 0)。这将更新 寄存器CALFACT_S[6:0]。
3) 在差分输入模式下校准ADC (ADCALDIF = 1)。这将更新 寄存器CALFACT_D[6:0]。
4) 启用ADC,配置通道并启动转换。每次 从单端到差分输入通道切换(反之亦然)时, 校准会自动注入模拟ADC。
1.4.2 混合单端和差分通道
2 通道可编程采样时间(SMPR1, SMPR2)
2.1 采样时间介绍
在开始转换之前,ADC必须在被测电压源 和ADC的嵌入式采样电容之间建立直接连接。这个 采样时间必须足以使输入电压源将嵌入式 电容器充电到输入电压水平。
每个通道可以用不同的采样时间进行采样,这是可编程的,使用 ADC_SMPR1和ADC寄存器中的SMP[2:0]位。因此,可以在以下采样时间值中选择 :
总转换时间计算如下:
2.2 计算采样时间方法
一个实例:
如果采样时间配置为: 2.5 ADC clock cycles ,ADC的模块的工作频率为30M Hz,其总体的采样时间为:T= (2.5 + 12.5) ADC clock cycles = 15 ADC clock cycles
换算为时间:
ADC通过设置状态位EOSMP(仅用于 常规转换)来通知采样阶段的结束。
2.3 采样约束
2.3.1 对采样时间的约束
对于每个通道,必须对SMP[2:0]位进行编程,使其符合数据手册中ADC特性部分规定的最小采样时间
2.3.2 灯泡取样模
当在ADC寄存器中设置BULB位时,采样周期在 最后一次ADC转换后立即开始。在ADC_SMPR1寄存器中编程采样 时间后,硬件或软件触发器开始转换。在 启用ADC后,执行第一次ADC转换,并以SMP位编程采样时间。灯泡 模式从第二次转换开始生效。
最大采样时间是有限的(参考 数据表的ADC特性部分)
灯泡模式既不兼容连续转换模式,也不兼容 注入通道转换。
当设置了BULB位时,ADC_CFGR2中不允许设置SMPTRIG位。
2.3.3 灯泡模式时序图
3 采样时间控制触发方式
当设置SMPTRIG位时,通过SMPx位编程的采样时间不适用 。采样时间由触发信号边缘控制。
当选择硬件触发器时,触发信号的每个上升沿开始 采样周期。下降沿结束采样周期并开始转换。 EXTEN[1:0]位必须设置为01。没有定义上升和下降 边的硬件触发器(一个脉冲事件)不能在灯泡模式下使用。
当选择软件触发器时,软件触发器不是ADC_CR 中的ADSTART位,而是SWTRIG位。必须设置SWTRIG位才能开始采样周期,必须清除 SWTRIG位才能结束采样周期并开始转换。EXTEN[1:0]位必须设置为00。
最大采样时间是有限的(参考 数据表的ADC特性部分)。
该模式既不兼容连续转换模式,也不兼容注入 通道转换。
设置SMPTRIG bit时,不允许设置BULB bit。
4 ADC时序
转换开始和转换结束之间所经过的时间是 配置的采样时间加上取决于数据分辨率的连续近似时间的总和:
模数转换时间:
相关文章:

STM32G4系列MCU的ADC模块标定方法和采样时间
目录 概述 1 ADC模块标定 1.1 功能介绍 1.2 软件程序校准ADC 1.2.1 标定步骤 1.2.2 标定时序框图 1.3 软件程序重新注入校准因子到ADC 1.3.1 标定步骤 1.3.2 更新ADC校准因子 1.4 用单个ADC转换单端和差分模拟输入 1.4.1 标定流程 1.4.2 混合单端和差分通道 2 通道…...
NVIDIA Jetson支持的神经网络加速的量化平台
NVIDIA Jetson支持的神经网络加速的量化工具、技术 NVIDIA Jetson 是专为边缘计算和嵌入式系统设计的高性能计算平台,它支持多种深度学习模型的部署和推理。对于神经网络加速的量化平台,Jetson 支持以下技术和工具: TensorRT:Ten…...

MySQL 免密登录的几种配置方式
文章目录 MySQL 免密登录的几种配置方式使用操作系统用户实现免密登录具体步骤:Step 1: 修改 MySQL 配置文件Step 2: 重启 MySQL 服务Step 3: 使用系统用户登录 MySQL优点:缺点: 使用 mysql_config_editor 配置免密文件具体步骤:S…...

html全局属性、框架标签
常用的全局属性: 属性名含义id 给标签指定唯一标识,注意:id是不能重复的。 作用:可以让label标签与表单控件相关联;也可以与css、JavaScript配合使用。 注意:不能再以下HTML元素中使用:<hea…...

ARL 灯塔 | CentOS7 — ARL 灯塔搭建流程(Docker)
关注这个工具的其它相关内容:自动化信息收集工具 —— ARL 灯塔使用手册 - CSDN 博客 灯塔,全称:ARL 资产侦察灯塔系统,有着域名资产发现和整理、IP/IP 段资产整理、端口扫描和服务识别、WEB 站点指纹识别、资产分组管理和搜索等等…...

抖音列表页采集-前言
准备工作: 1.关于selenium介绍: python自动化入门的话,selenium绝对是最方便的选择,基本逻辑即为:程序模拟人的行为操作浏览器,这样的操作需要借用浏览器驱动,我选用的是chrome浏览器ÿ…...

Linux 端口占用 kill被占用的端口 杀掉端口
1、yum install lsof 2、输入netstat -tln,查看系统当前所有被占用端口 3、根据端口查询进程,输入lsof -i :9555,切记不要忘了添加冒号 4、 既然知道进程号了,那杀死当前进程就简单多了,直接 kill -9 PID 回车...

爬虫之数据解析
数据解析 数据解析这篇内容, 很多知识涉及到的都是以前学习过的内容了, 那这篇文章我们主要以实操为主, 来展开来讲解关于数据解析的内容。 360搜索图片 请求的url大家不需要再找了, 相信大家都会找请求了, 寻找请求从我的第一篇爬虫的博客开始到现在一直都在写,这边的话, 我已…...
本地缓存少更改、小数据、低一致表的思考
对于那些少更改、小数据的表,以及对一致性要求不高的业务,其实完全可以通过本地缓存将表数据缓存到本地内存中,然后通过定时机制拉取表更新数据 直接从内存中获取数据,将会使得查询性能得到巨大的提升,并且由于更改少…...
redis 使用
打开redis 前台启动 同路径下打开redis-server 出现窗口,即启动成功 此时关闭窗口,redis关闭; 不管有没有使用密码,或者使用了什么密码,都能连上 如果使用下文提到的redis cli增加密码,就只能使用你设置的…...

使用 Pake 一键打包网页为桌面应用 / 客户端
项目 项目:https://github.com/tw93/Pake/ 免费ICO图片:https://icon-icons.com/zh/ 设置环境 以下教程仅针对windows系统适用 请确保您的 Node.js 版本为 18 或更高版本 文档:https://v1.tauri.app/zh-cn/v1/guides/getting-started/prerequ…...

vue.js【常用UI组件库】
Element Plus组件库 Element Plus是基于Vue 3开发的优秀的PC端开源UI组件库,它是Element的升级版,对于习惯使用Element的人员来说,在学习Element Plus时,不用花费太多的时间。因为Vue 3不再支持IE 11,所以Element Plu…...

基于vue框架的的地铁站智慧管理系统的设计n09jb(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
系统程序文件列表 项目功能:用户,上班打卡,下班打卡,人员管理,交接班,视频巡检,车辆巡检,车辆管理 开题报告内容 基于Vue框架的地铁站智慧管理系统的设计开题报告 一、研究背景与意义 随着城市化进程的加速,地铁站作为城市交通系统的重要组成部分&am…...
《南京师大学报(自然科学版)》
《南京师大学报(自然科学版)》刊载内容主要包括:数学;物理学;化学;地理学;海洋科学;生物学;生态学;力学;电子科学与技术;计算机科学与…...

考研读研生存指南,注意事项
本视频课程,涉及考研读研的方方面面,从考研初试→复试面试→研究生生活→导师相处→论文专利写作混毕业,应有尽有。有了他,你的研究生生涯稳了。 读研考研注意事项,研究生生存指南。_哔哩哔哩_bilibili 一、考研初试注…...

爬虫结合项目实战
由于本人是大数据专业,所以准备的是使用pycharm工具进行爬虫爬取数据,然后实现一个可视化大屏 参考项目: 1.医院大数据可视化最后展示 2. 大数据分析可视化系统展示 代码包:...

【Next.js 项目实战系列】07-分配 Issue 给用户
原文链接 CSDN 的排版/样式可能有问题,去我的博客查看原文系列吧,觉得有用的话,给我的库点个star,关注一下吧 上一篇【Next.js 项目实战系列】06-身份验证 分配 Issue 给用户 本节代码链接 Select Button # /app/issues/[i…...

Web,RESTful API 在微服务中的作用是什么?
大家好,我是锋哥。今天分享关于【Web,RESTful API 在微服务中的作用是什么?】面试题?希望对大家有帮助; Web,RESTful API 在微服务中的作用是什么? 在微服务架构中,Web 和 RESTful …...
Ajax:跨域、防抖和节流、HTTP协议
在善意的“双向奔赴”中,每个普通人都如星辰,微小但释放着自己的光芒,交织成灿烂的星河 文章目录 跨域防抖和节流HTTP协议HTP状态码以及代表意义错误代码的影响移动的小天使 跨域 同源策略 概念:协议,域名,…...

数据结构(8.2_2)—希尔排序
希尔排序的定义: 第一趟:先将在排序表中根据增量di分别将数组元素分别插入各个子表 ,在进行排序 代码实现: 算法性能分析 稳定性:不稳定! 适用性:仅适用于顺序表,不适用于链表 总…...

大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...