STM32G4 双ADC模式之常规同步模式独立注入模式
目录
概述
1 认识双ADC模式
2 功能实现
2.1 原理介绍
2.2 实现方法
概述
本文主要介绍STM32G4 双ADC模式之常规同步模式&独立注入模式相关内容,包括ADC模块的功能介绍,实现框架结构,以及常规同步模式&独立注入模式ADC的转换的实现原理。
1 认识双ADC模式
双ADC模式可用于具有两个或更多ADC的器件。在双ADC模式中,转换的开始交替或同时由ADCx主ADC从,取决于所选择的模式的位DUAL[4:0]在ADCx_CCR寄存器。

注意:
-
1)从ADC上也存在外部触发器,但在此图中没有显示。
2)ADC公共数据寄存器(ADCx_CDR)包含主ADC和从ADC的常规转换数据。
其包括四种可能得应用:
1) 同时注入模式
-
2)常规同步模式
-
3)交错模式
-
4)交替触发方式
也可以将这些模式以以下方式组合使用:
1)注入同步模式+常规同步模式
-
2)常规同步模式+交替触发模式
-
3)注入同步模式+交错模式
在双ADC模式下(当ADCx_CCR寄存器的位dual[4:0]不等于零时),ADC_CFGR 寄存器的 位CONT, AUTDLY, DISCEN, DISCNUM[2:0], JDISCEN, JQM, JAUTO在主ADC和从ADC之间共享:从ADC中的位 总是等于主ADC的相应位。
要在双模式下启动转换,用户必须对位EXTEN[1:0], EXTSEL, JEXTEN[1:0],主ADC的JEXTSEL进行编程,以配置软件或硬件 触发器,以及常规或注入触发器。(从 ADC的EXTEN[1:0]和JEXTEN[1:0]位不关心)。
在常规同步或交错模式下:
-
一旦用户设置主ADC的ADSTART位或 ADSTP位,从ADC的相应位也自动设置 。但是,从ADC的ADSTART位或ADSTP位不需要在 同时清除主ADC位。
在注入同步或交替触发模式中:
-
一旦用户设置主ADC的JADSTART位或 JADSTP位,从ADC的相应位也自动 设置。但是,从ADC的JADSTART位或JADSTP位不需要在 上与主ADC位同时清除。
在双ADC模式下,可以通过读取ADC公共数据寄存器(ADCx_CDR) 并行读取主ADC和从ADC转换后的数据。状态位也可以通过读取双模式状态寄存器(ADCx_CSR)以 并行方式读取。
2 功能实现
2.1 原理介绍
该模式通过编程位DUAL[4:0] = 00110来选择。该模式在一组常规通道上执行。外部触发源 来自主ADC的常规组多路复用器(由 ADC_CFGR寄存器中的EXTSEL位选择)。一个同步触发器提供给从ADC。在这种模式下,支持独立的注入转换。注入请求(在主服务器或从服务器上的 )终止当前的同步转换,一旦注入的转换完成,将重新启动 。
注意点:
-
不要在两个adc上转换同一通道(转换同一通道时,两个adc的采样次数不能重叠)
在常规同步模式下,必须转换相同长度的序列或确保 触发器之间的间隔大于2个 序列的较长转换时间。否则,具有最短序列的ADC可能重新启动,而具有 最长序列的ADC正在完成先前的转换。
当软件可以读取数据时,中断会通知它:
1) 在主ADC上的每个转换事件(EOC)结束时,生成一个主EOC中断(如果启用了EOCIE),软件可以读取主ADC的ADC_DR。
-
2)在从ADC上的每个转换事件(EOC)结束时,生成一个从EOC中断(如果启用了EOCIE),软件可以读取从ADC的ADC_DR。
-
3)如果主正则序列的持续时间等于从正则序列的持续时间,软件可能只启用两个EOC中断中的一个(例如:主EOC),并从公共数据寄存器(ADCx_CDR)读取两个转换后的数据。
也可以使用DMA读取常规数据。有两种方法:
1)使用两个DMA通道(一个用于主站,一个用于从站)。这里是比特MDMA[1:0]必须保持清洁。
- 配置DMA主ADC通道从主ADC读取ADC_DR。DMA请求在主ADC的每个EOC事件中生成。
- 配置DMA从ADC通道从从读取ADC_DR。DMA请求在从ADC的每个EOC事件中生成。
2)使用MDMA模式,这使得一个DMA通道自由用于其他用途:
- 配置MDMA[1:0] = 10或11(取决于分辨率)
- 使用单个DMA通道(主机的一个)。配置DMA主机ADC通道,用于读取通用ADC寄存器(ADCx_CDR)
- 每次主EOC事件和从EOC事件发生时,都会生成单个DMA请求。此时,从ADC转换的数据在ADCx_CDR 32位寄存器的上半字中可用,主ADC转换的数据在ADCx_CDR寄存器的下半字中可用。
- 当DMA读取ADCx_CDR寄存器时,两个EOC标志都被清除。
注意点:
在MDMA模式(MDMA[1:0] = 10或11)中,用户必须在主序列中编写与从序列中相同数量的转换。否则,其余的 转换不会生成DMA请求。
2.2 实现方法
实现框图:16路常规同步模式:双ADC模式

如果DISCEN = 1,则每“n”个常规序列的同时转换都需要发生 常规触发事件(“n”由discum定义)。
该模式可与autly模式结合使用:
1) 一旦序列的同步转换结束,序列中的下一个转换只有在公共数据寄存器ADCx_CDR(或主ADC的常规数据寄存器)被读取(延迟阶段)时才开始。
-
2)一旦同步的常规转换序列结束,只有在读取公共数据寄存器(ADCx_CDR)时才接受新的常规触发事件(延迟阶段)。在正在进行的常规序列和相关延迟阶段期间发生的任何新的常规触发事件都将被忽略。
假设使用多重DMA模式,可以使用DMA以常规同步模式结合 AUTDLY模式处理数据:MDMA必须设置为10或 11位。
当普通同步模式与auttly模式结合使用时, 用户必须确保:
1)主序列中的转换数量等于从序列中的转换数量。
-
2)对于序列的每次同步转换,从ADC转换的长度低于主ADC转换的长度。请注意,序列的长度取决于要转换的通道数量、采样时间和每个通道的分辨率。
注意点:
常规同步模式和auttly模式的这种组合仅限于在只编程常规通道的情况下使用 :禁止在这种组合模式下编程注入的 通道。
相关文章:
STM32G4 双ADC模式之常规同步模式独立注入模式
目录 概述 1 认识双ADC模式 2 功能实现 2.1 原理介绍 2.2 实现方法 概述 本文主要介绍STM32G4 双ADC模式之常规同步模式&独立注入模式相关内容,包括ADC模块的功能介绍,实现框架结构,以及常规同步模式&独立注入模式ADC的转换的实…...
深入理解网络协议:OSPF、VLAN、NAT与ACL详解
OSPF工作过程与基础配置 一、OSPF的工作过程 OSPF(开放最短路径优先)是一个广泛使用的路由协议,它的工作过程可以总结为以下几个步骤: 启动与邻居发现 OSPF在配置完成后,会通过本地组播地址224.0.0.5发送HELLO包。HE…...
idea 配置tomcat 服务
选择tomcat的安装路径 选到bin的文件夹的上一层就行...
.net core 接口,动态接收各类型请求的参数
[HttpPost] public async Task<IActionResult> testpost([FromForm] object info) { //Postman工具测试结果: //FromBody,Postman的body只有rawjson时才进的来 //参数为空时,Body(form-data、x-www-form-urlencoded)解析到的数据也有所…...
关注!这些型号SSD有Windows蓝屏问题需要修复
近期,在闪迪官方有一个SSD FW升级提醒,主要是为了解决Windows 11 24H2系统蓝屏的问题: Fix问题:这些SSD的主机内存缓冲区(Host Memory Buffer,简称HMB)功能可能会导致系统出现蓝屏死机ÿ…...
go语言gin框架平滑关闭——思悟项目技术2
目录 前言 直接关闭的缺陷 平滑关闭的使用场景 例子 思悟项目: golang qq邮件发送验证码——思悟项目技术1 前言 平滑关闭(graceful shutdown)是指在停止服务时,能够让现有的连接、任务或者操作优雅地完成,而不是…...
K8S flannel网络模式对比
K8S flannel网络模式对比 VXLAN 模式Host-GW 模式如何查看 Flannel 的网络模式?如何修改 Flannel 的网络模式?如何修改flannel vxlan端口?Flannel 是一个 Kubernetes 中常用的网络插件,用于在集群中的节点之间提供网络连接。Flannel 提供了多种后端实现方式,vxlan 和 host…...
Vue前端框架:Vue前端项目文件目录
文章目录 package.json 文件node_modulessrc(Source Code 的缩写)文件夹主要子文件夹及内容 publicdist package.json 文件 所在文件夹(通常是项目根目录) 虽然 package.json 本身不是一个文件夹,但它所在的文件夹&a…...
git回滚到指定的提交
如果你想回滚到特定的提交(例如 aa0ca72c),并且丢弃之后的所有更改,可以使用 git reset 命令。请注意,git reset 会改变你的提交历史,所以在多人协作项目中应谨慎使用。如果已经推送到远程仓库,…...
手机怎么玩森林之子?远程玩森林之子教程
你喜欢《森林之子》这款开放世界恐怖生存模拟游戏吗?玩家会被派到一座孤岛上,寻找一位失踪的亿万富翁,并深陷被食人生物占领的地方。你需要制作工具和武器、建造房屋,倾尽全力生存下去,无论独自一人还是与朋友一起。如…...
深度学习之网络与计算
1 网络操作与计算 1.1 前向传播与反向传播? 神经网络的计算主要有两种:前向传播(foward propagation, FP)作用于每一层的输入,通过逐层计算得到输出结果;反向传播(backward propagation, BP&a…...
《JVM第1课》Java 跨平台原理
无痛快速学习JVM,欢迎订阅本免费专栏 JVM Java的特性就是程序员一次编写,到处运行,意思是我们只需要写一份代码,就可以在不同的操作系统(windows、Linux、Mac OS等)中运行。但是不同的操作系统能看懂的指令…...
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30目录1. Step Guided Reasoning: Improving Mathematical Reasoning using Guidance Generation and Step Reasoning摘要研究背…...
加强版 第五节图像处理与视频分析
基本概念 图像轮廓 主要针对二值图像,轮廓是一系列点 vector<vector<Point>xxx用于存储多个点 vector<Vec4i>xxx包含四个整数,分别代表下一个轮廓的索引,上一个轮廓的索引,一个子轮廓的索引和父轮廓的索引 相…...
Orleans8.2入门测试
微软官方文档:快速入门:使用 ASP.NET Core 生成第一个 Orleans 应用 - .NET | Microsoft Learn 项目及引入的nuget库: 1、接口项目;2、接口实现项目;3、silo项目;4、客户端项目 其中Microsoft.Orleans.St…...
【Linux 25】网络套接字 socket 概念
文章目录 🌈 一、IP 地址概念⭐ 1. IP 地址的作用⭐ 2. 源 IP 地址和目的 IP 地址 🌈 二、端口号概念⭐ 1. 源端口号和目的端口号⭐ 2. 端口号范围划分⭐ 3. 端口号 VS 进程 ID⭐ 4. 套接字 socket 的概念 🌈 三、传输层的典型代表协议⭐ 1. …...
python openai 通过Function Call 创建自动化任务
目录 一、什么是Function Call(函数掉用) 1. 功能概述 2. 工作原理 二、如何实现函数调用 1、定义自己的get_weather 函数 2、给助手添加函数调用 3、写好instrction,指导assistant去掉用你定义的方法。 4、最后也是最重要的,捕获 Assistant 的 Function Call 三、…...
设计模式之责任链的通用实践思考
责任链模式通常一般用在方法的拦截、监控、统计方面,比较典型的就是Spring的AOP拦截。 但写一些小的基础能力框架的时候,用AOP比较中,所以一般都是自己针对特定的功能写一些定制的责任链工具类,不太喜欢总是做一些定制化的东西&am…...
前端用canvas绘图并支持下载
1.根据数据绘制饼图 /** 绘制环形图 */ const drawPieCharts () > {const {canWithdrawalPriceFront,noWithdrawalPriceFront,haveWithdrawalPriceFront,} this.state;const myCanvas this.cavasRef.current;// ts-ignoreconst ctx myCanvas.getContext(2d);if (ctx) {…...
【Mac】Homebrew
1、Homebrew 简介 官网地址:https://brew.sh Homebrew 是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。 Homebrew 主要有四个部分组成: brew、homebrew-core 、homebrew-bottles、homebrew-cask。 源说明br…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
