当前位置: 首页 > news >正文

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全局属性、框架标签

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

ARL 灯塔 | CentOS7 — ARL 灯塔搭建流程(Docker)

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

抖音列表页采集-前言

准备工作&#xff1a; 1.关于selenium介绍&#xff1a; python自动化入门的话&#xff0c;selenium绝对是最方便的选择&#xff0c;基本逻辑即为&#xff1a;程序模拟人的行为操作浏览器&#xff0c;这样的操作需要借用浏览器驱动&#xff0c;我选用的是chrome浏览器&#xff…...

Linux 端口占用 kill被占用的端口 杀掉端口

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

爬虫之数据解析

数据解析 数据解析这篇内容, 很多知识涉及到的都是以前学习过的内容了, 那这篇文章我们主要以实操为主, 来展开来讲解关于数据解析的内容。 360搜索图片 请求的url大家不需要再找了, 相信大家都会找请求了, 寻找请求从我的第一篇爬虫的博客开始到现在一直都在写,这边的话, 我已…...

本地缓存少更改、小数据、低一致表的思考

对于那些少更改、小数据的表&#xff0c;以及对一致性要求不高的业务&#xff0c;其实完全可以通过本地缓存将表数据缓存到本地内存中&#xff0c;然后通过定时机制拉取表更新数据 直接从内存中获取数据&#xff0c;将会使得查询性能得到巨大的提升&#xff0c;并且由于更改少…...

redis 使用

打开redis 前台启动 同路径下打开redis-server 出现窗口&#xff0c;即启动成功 此时关闭窗口&#xff0c;redis关闭&#xff1b; 不管有没有使用密码&#xff0c;或者使用了什么密码&#xff0c;都能连上 如果使用下文提到的redis cli增加密码&#xff0c;就只能使用你设置的…...

使用 Pake 一键打包网页为桌面应用 / 客户端

项目 项目&#xff1a;https://github.com/tw93/Pake/ 免费ICO图片&#xff1a;https://icon-icons.com/zh/ 设置环境 以下教程仅针对windows系统适用 请确保您的 Node.js 版本为 18 或更高版本 文档&#xff1a;https://v1.tauri.app/zh-cn/v1/guides/getting-started/prerequ…...

vue.js【常用UI组件库】

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

基于vue框架的的地铁站智慧管理系统的设计n09jb(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,上班打卡,下班打卡,人员管理,交接班,视频巡检,车辆巡检,车辆管理 开题报告内容 基于Vue框架的地铁站智慧管理系统的设计开题报告 一、研究背景与意义 随着城市化进程的加速&#xff0c;地铁站作为城市交通系统的重要组成部分&am…...

《南京师大学报(自然科学版)》

《南京师大学报&#xff08;自然科学版&#xff09;》刊载内容主要包括&#xff1a;数学&#xff1b;物理学&#xff1b;化学&#xff1b;地理学&#xff1b;海洋科学&#xff1b;生物学&#xff1b;生态学&#xff1b;力学&#xff1b;电子科学与技术&#xff1b;计算机科学与…...

考研读研生存指南,注意事项

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

爬虫结合项目实战

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

【Next.js 项目实战系列】07-分配 Issue 给用户

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

Web,RESTful API 在微服务中的作用是什么?

大家好&#xff0c;我是锋哥。今天分享关于【Web&#xff0c;RESTful API 在微服务中的作用是什么&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; Web&#xff0c;RESTful API 在微服务中的作用是什么&#xff1f; 在微服务架构中&#xff0c;Web 和 RESTful …...

Ajax:跨域、防抖和节流、HTTP协议

在善意的“双向奔赴”中&#xff0c;每个普通人都如星辰&#xff0c;微小但释放着自己的光芒&#xff0c;交织成灿烂的星河 文章目录 跨域防抖和节流HTTP协议HTP状态码以及代表意义错误代码的影响移动的小天使 跨域 同源策略 概念&#xff1a;协议&#xff0c;域名&#xff0c…...

数据结构(8.2_2)—希尔排序

希尔排序的定义&#xff1a; 第一趟&#xff1a;先将在排序表中根据增量di分别将数组元素分别插入各个子表 &#xff0c;在进行排序 代码实现&#xff1a; 算法性能分析 稳定性&#xff1a;不稳定&#xff01; 适用性&#xff1a;仅适用于顺序表&#xff0c;不适用于链表 总…...

智能代理模式在渗透测试中的应用:pentestagent架构解析与实战

1. 项目概述与核心价值最近在安全测试和红队演练的圈子里&#xff0c;一个名为GH05TCREW/pentestagent的项目开始被频繁提及。乍一看这个名字&#xff0c;你可能会觉得它又是一个普通的渗透测试工具集&#xff0c;但当你真正深入去研究和使用它时&#xff0c;会发现它的设计理念…...

用Python从零复现混沌博弈算法(CGO):一个骰子如何玩转优化问题?

用Python从零复现混沌博弈算法&#xff08;CGO&#xff09;&#xff1a;一个骰子如何玩转优化问题&#xff1f; 混沌博弈算法&#xff08;Chaos Game Optimization, CGO&#xff09;是近年来兴起的一种新型智能优化算法&#xff0c;它将混沌理论与博弈思想巧妙结合&#xff0c;…...

超大规模内容生成技能引擎:模块化架构与工作流实践

1. 项目概述&#xff1a;一个面向超大规模内容生成的技能引擎最近在折腾一些自动化内容生成的项目&#xff0c;发现了一个挺有意思的GitHub仓库&#xff0c;叫smouj/ultra-generator-skill。光看这个名字&#xff0c;你可能会觉得有点抽象——“超生成器技能”&#xff1f;这到…...

STM32H7 SPI双机通信,为什么我强烈推荐你用硬件NSS引脚?一个上电时序问题引发的血案

STM32H7 SPI双机通信中硬件NSS引脚的工程实践价值 两块STM32H7开发板通过SPI进行通信时&#xff0c;你是否遇到过这样的场景&#xff1a;明明代码逻辑正确&#xff0c;但通信就是不稳定&#xff0c;时而正常时而失败&#xff1f;更令人困惑的是&#xff0c;这种问题往往与上电顺…...

如何高效使用Umi-OCR:免费离线文字识别工具实用指南

如何高效使用Umi-OCR&#xff1a;免费离线文字识别工具实用指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片&#xff0c;PDF文档识别&#xff0c;排除水印/页眉页脚&#xff0c;扫描/生成二维码。内置多国语言库…...

Linux主机资产标识实战指南

Linux主机资产标识实战指南本文面向具备一定 Linux 基础的技术人员&#xff0c;围绕主机资产标识展开&#xff0c;重点讨论主机命名、标签规范和资产映射。在中级运维和系统管理工作中&#xff0c;这类主题常常与配置变更、资源状态、权限边界、自动化任务和业务影响交织在一起…...

内容创作团队如何利用多模型API提升图文生成效率

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 内容创作团队如何利用多模型API提升图文生成效率 对于新媒体运营、电商内容或市场团队而言&#xff0c;持续产出高质量的图文内容是…...

对比直接使用厂商API,Taotoken在计费透明与用量观测上的优势

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用厂商API&#xff0c;Taotoken在计费透明与用量观测上的优势 当个人开发者或小型团队开始将大模型能力集成到自己的项目…...

Draft-classic:云原生开发中Kubernetes部署的快速原型工具

1. 项目概述&#xff1a;从零到一的云原生应用部署加速器 如果你和我一样&#xff0c;长期在云原生和Kubernetes领域摸爬滚打&#xff0c;一定经历过这样的场景&#xff1a;一个应用的核心代码逻辑早已写完&#xff0c;但为了让它能在Kubernetes集群里跑起来&#xff0c;你不得…...

redis:AOF

Redis AOF&#xff08;Append Only File&#xff09;核心知识点总结一、核心定义与作用AOF 是 Redis 的一种持久化方式&#xff0c;以文本 / 二进制形式记录所有写命令&#xff08;如 set、lpush 等&#xff09;&#xff0c;核心作用是保存数据、实现宕机后的数据恢复&#xff…...