STM32 ADC的规则组与注入组详解(上)

news2024/10/9 1:19:07

STM32 ADC的规则组与注入组详解(下)-CSDN博客

STM32的模数转换器(ADC)广泛用于将模拟信号转换为数字信号,并应用于各种传感器数据采集、信号处理等场景。STM32的ADC模块不仅支持常规的采样模式,还提供了灵活的规则组与注入组机制,以应对不同的应用需求。本文将详细介绍规则组与注入组的工作原理、双ADC配合工作的模式以及其他关键概念,如转换时间和校准。

一、规则组与注入组概述

1. 规则组(Regular Group)

规则组(Regular Group)是STM32 ADC最常用的转换组,主要用于常规的多通道采样。规则组可以配置多个ADC通道,并按照配置的顺序依次进行采样。它适合那些需要周期性采样的应用,如传感器数据采集、环境监控等。

规则组的触发方式灵活,支持软件启动和硬件事件触发。它在不要求实时高优先级的应用场景中表现出色,通常通过定时器或外部事件进行触发,从而实现自动化的采样和处理。

2. 注入组(Injected Group)

注入组(Injected Group)是一种特殊的ADC采样模式,其主要特点是具有更高的优先级。当注入组的触发条件满足时,它可以中断规则组的采样过程,立即进行转换。注入组适用于对特定信号的紧急采样需求,例如在工业控制或电机监控中,某些实时信号需要优先处理。

注入组与规则组独立工作,其数据存储在单独的注入数据寄存器中,避免与规则组数据混淆。

二、规则组的四种转换模式

STM32的规则组提供了四种不同的转换模式,以适应不同的采样需求:

1. 单次转换模式(Single Conversion Mode)

在单次转换模式下,ADC仅执行一次转换。当转换完成后,ADC停止工作,直到再次被启动。这种模式通常用于需要间歇性采样的场合,如通过用户操作或其他外部事件启动的采样。

2. 连续转换模式(Continuous Conversion Mode)

连续转换模式适合需要持续采集信号的场景。在该模式下,ADC在每次转换完成后立即开始下一次转换,直到手动停止。这种模式广泛应用于实时数据采集系统,如环境监控中的温度、湿度等传感器。

3. 扫描转换模式(Scan Conversion Mode)

扫描模式允许ADC依次对规则组中配置的多个通道进行采样。每个通道按照设定的顺序进行转换,直到所有通道都完成采样。扫描模式非常适合处理多个传感器数据的场合,尤其是在多路模拟信号同时需要监测的应用中。

4. 间歇转换模式(Discontinuous Conversion Mode)

间歇转换模式与扫描模式类似,但不同之处在于,它可以将采样过程分段进行。在每次触发时,ADC仅对一部分通道进行采样,而不是一次性完成所有通道的转换。这种模式适用于在某些资源受限的系统中,逐步处理多个模拟信号的场景。

三、转换时间与影响因素

ADC的转换时间是指从启动采样到获得数字结果所需的时间。转换时间对于确定系统能否及时响应非常重要,尤其是在实时应用中。STM32的ADC转换时间由以下几个因素决定:

1. 采样时间

采样时间是ADC采集输入信号的时长,通常根据信号源阻抗来选择。高阻抗信号源需要较长的采样时间,以确保信号足够稳定。STM32的ADC模块允许开发者根据不同的输入信号选择适当的采样时间,以确保采样精度。

2. 分辨率

ADC的分辨率决定了数字输出的精细度,STM32的ADC支持6位、8位、10位和12位的分辨率。分辨率越高,转换时间越长,因为高分辨率需要更多的逐次逼近步骤。

3. ADC时钟

ADC时钟频率直接影响转换速度。时钟频率越高,转换时间越短,但需要在速度和精度之间权衡选择,特别是在高分辨率模式下。

四、注入组的特点与优先级

注入组的工作模式与规则组类似,但它具有更高的优先级,能够中断规则组的转换过程并立即进行采样。它的优先级机制使其特别适用于那些对响应时间有严格要求的场景,比如关键的传感器数据采集或故障检测。

注入组的触发方式通常是硬件触发,例如定时器、外部引脚事件等。由于注入组采样后,规则组的转换会自动恢复,因此它不会影响规则组的整体转换流程。

注入组的数据存储在单独的寄存器中,避免了与规则组数据的混淆。每次采样完成后,开发者可以通过特定的函数或寄存器读取注入组的转换结果,并根据实际需要进行处理。

五、双ADC配合工作

在STM32某些型号中,提供了多个ADC模块(如ADC1和ADC2),允许两个ADC并行工作。双ADC的配合工作可以显著提升数据采集效率,特别是在需要同时采集多个信号源的应用中。

双ADC可以通过以下几种方式配合工作:

1. 同步模式

在同步模式下,两个ADC同时采集不同的通道数据。比如,ADC1负责采集奇数通道的数据,ADC2负责采集偶数通道的数据。这种模式下,采集速度可以翻倍,适合需要高速采集多个信号的场景。

2. 交替模式

在交替模式下,两个ADC以交替的方式进行转换。一个ADC完成转换后,另一个ADC立即开始采样。这种模式在一些实时性要求较高的应用中非常有用,能够最大化利用两个ADC的处理能力。

双ADC的配合使得STM32能够在复杂的采集任务中表现出色,适合工业控制、医疗设备等需要高采样率的场合。

六、ADC校准

ADC校准是为了提高转换精度而进行的一项操作。由于制造工艺的差异,每个ADC模块在生产过程中可能会引入一些偏差。通过校准,可以减小这些偏差,提高采样结果的准确性。

STM32的ADC模块提供了内置的校准功能,开发者可以通过硬件或软件启动校准过程。校准后,ADC会根据实际测量到的偏差进行自动调整,从而提高采样精度。

结论(上篇)

在本篇文章中,我们详细探讨了STM32中ADC的规则组与注入组工作原理,四种规则组的转换模式,以及转换时间、双ADC配合工作和校准的内容。这些机制赋予STM32 ADC极大的灵活性和可配置性,适用于多种应用场景。从单次采样到多通道高速采集,STM32 ADC可以满足多样化的需求。

在下一篇文章中,我们将更深入地探讨STM32 ADC的实际应用场景和优化技巧,包括如何结合规则组与注入组实现复杂的数据采集任务,以及一些常见的设计注意事项。在项目中,您是否曾遇到过规则组与注入组的优先级问题?如何有效利用双ADC配合工作提升采样效率?欢迎分享您的经验与想法。

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

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

相关文章

【Java 问题】基础——反射

接上文 反射 49.什么是反射?应用?原理? 49.什么是反射?应用?原理? 什么是反射? 我们通常都是利用 new 方式来创建对象实例,这可以说就是一种“正射”,这种方式在编译时候…

HJDQN环境配置

git clone仓库代码等不做赘述 #创建,激活conda环境即可 conda create -n EAHJDQN python3.6 conda activate EAHJDQN#安装包 pip install mujoco_py2.0.2.8pip install Cython0.29.21pip install torch1.8.1cu111 torchvision0.9.1cu111 torchaudio0.8.1 -f https:/…

【信息论基础第四讲】信息的流动——平均互信息及其性质

一、平均互信息与互信息 1、互信息 互信息量表示接收到消息yj后,获得关于事件xi的信息量。 2、 从熵的角度来定义平均互信息量: 从信源X熵H(X)到信宿熵H(X|Y)熵减少了,同时为信宿Y提供了信息量,而信息从信源到信宿的变化是流经信…

每日OJ题_牛客_平方数_数学_C++_Java

目录 牛客_平方数_数学 题目解析 C代码1暴力 C代码2数学 Java代码数学 牛客_平方数_数学 平方数 (nowcoder.com) 描述: 牛妹是一个喜欢完全平方数的女孩子。 牛妹每次看到一个数 x,都想求出离 x 最近的完全平方数 y。 每次手算太麻烦,…

分享几个国外SSL证书提供商网站

国外SSL证书提供商 众所周知兼容性高的SSL证书肯定是在国外申请的,主要确保SSL证书的安全性的同时,对于安全标准在国外相比而言更成熟,保护程度也比较高。 另方面对需要申请的域名没有限制,可选性SSL证书类型种类比较多&#xf…

[Python学习日记-39] 闭包是个什么东西?

[Python学习日记-39] 闭包是个什么东西? 简介 闭包现象 闭包意义与作用 简介 在前面讲函数和作用域的时候应该提到过,当函数运行结束后会由 Python 解释器自带的垃圾回收机制回收函数内作用域已经废弃掉的变量,但是在 Python 当中还有一种…

vulnhub靶场之hackableIII

一.环境搭建 1.靶场描述 Focus on general concepts about CTF Difficulty: Medium This works better with VirtualBox rather than VMware. 2.靶场下载 https://download.vulnhub.com/hackable/hackable3.ova 3.靶场启动 二.信息收集 1.寻找靶场真实的Ip nmap -SP 192.168…

LingedList<T>,自定义泛型

LingedList<T>底层采用双向链表数据结构实现的集合(容器)。 数据结构:是计算机在内存中组织数据的一种方式。 分类: 线性数据结构: 数组:存储同类型数据的大小固定的集合。 列表(List):动态大小的数组,可以灵活的添加,删除元素。 链表(LinkedList):分…

目标检测 DN-DETR(2022)

文章目录 前言gt labels 和gt boxes加噪query的构造attention maskIS&#xff08;InStability&#xff09;指标 前言 gt labels 和gt boxes加噪 query的构造 attention mask IS&#xff08;InStability&#xff09;指标

媒界:家庭出行不用愁 江铃集团新能源易至EV3青春版值得拥有

随着家庭代步、接送孩子上下学的需求进一步释放&#xff0c;纯电小车市场迎来火热发展机遇。江铃集团新能源旗下的易至EV3青春版&#xff0c;以其灵动的车身设计、宽敞的内部空间以及先进的智能配置&#xff0c;成为了家庭用车的优质选择。 作为电动汽车和出行普及者&#xff0…

阿里面试: RocketMQ如何实现每秒上十万QPS的超高吞吐量读取的?

这玩意儿表面看上去挺牛逼&#xff0c;但其实背后的逻辑和套路&#xff0c;在咱们开发里见过的那些招数&#xff0c;都能找到影子。 今天小北和大家一起系统化的梳理梳理一遍&#xff0c;让大家功力猛增&#xff0c;吊打面试官。 1. 消息存储&#xff1a;巧妙利用顺序写 先说…

ARTS Week 43

Algorithm 本周的算法题为 1822. 数组元素积的符号 已知函数 signFunc(x) 将会根据 x 的正负返回特定值&#xff1a; 如果 x 是正数&#xff0c;返回 1 。 如果 x 是负数&#xff0c;返回 -1 。 如果 x 是等于 0 &#xff0c;返回 0 。 给你一个整数数组 nums 。令 product 为数…

SimpleFoc以及SVPWM学习补充记录

SimpleFoc SimpleFOC移植STM32&#xff08;一&#xff09;—— 简介 FOC控制的过程是这样的&#xff1a; 对电机三相电流进行采样得到 Ia,Ib,Ic。将 Ia,Ib,Ic 经过Clark变换得到 I_alpha I_beta。将 I_alpha I_beta 经过Park变换得到 Id,Iq。计算 Id,Iq 和其设定值 Id_ref 和…

Spring JDBC - Spring JDBC模版使用

前言 Spring JdbcTemplate是Spring Framework提供的一个强大的数据库访问工具&#xff0c;它简化了数据库操作的过程&#xff0c;为开发者提供了一个高级的数据库访问抽象层。 JdbcTemplate是Spring JDBC模块中的一个核心类&#xff0c;它位于org.springframework.jdbc.core包中…

开源项目都是怎么推广的?

大家好&#xff0c;我是爱折腾的刘大逵。跟我接触过的技术们都知道&#xff0c;一年一年的都在折腾着做一些项目&#xff0c;年年有进步&#xff0c;年年有想法&#xff0c;年年在折腾。今天给大家分享GITEE如何上推荐&#xff01; GITEE推荐有什么用&#xff1f; 众所周知&a…

C++版iwanna2

第二篇目录 程序的流程图程序游玩的效果下一篇博客要说的东西 程序的流程图 #mermaid-svg-lFW0ZjCdi5Xvl3gE {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-lFW0ZjCdi5Xvl3gE .error-icon{fill:#552222;}#mermaid-s…

《神经网络》—— 循环神经网络RNN(Recurrent Neural Network)

文章目录 一、RNN 简单介绍二、RNN 基本结构1.隐藏中的计算2.输出层的计算3.循环 三、RNN 优缺点1.优点2.缺点 一、RNN 简单介绍 循环神经网络&#xff08;Recurrent Neural Network, RNN&#xff09;是一种用于处理序列数据的神经网络架构。 与传统的前馈神经网络&#xff08…

聆听国宝“心声” 《寻找国宝传颂人——中国国宝大会》走进辽宁

热爱不止&#xff0c;传颂不停。近日&#xff0c;中央广播电视总台《寻找国宝传颂人——中国国宝大会》大型融媒体活动在辽宁省博物馆开展第二场地方展演。辽宁省博物馆是新中国成立后的第一座博物馆&#xff0c;馆藏文物近12万件&#xff0c;珍贵文物数万件&#xff0c;且以藏…

计算机网络:数据链路层详解

目录 一、点对点信道&#xff1a; &#xff08;1&#xff09;封装成帧 &#xff08;2&#xff09;透明传输 &#xff08;3&#xff09;差错检测 二、点对点协议 &#xff08;1&#xff09;数据链路层的特点 &#xff08;2&#xff09;PPP协议的组成 &#xff08;3&…

“我养你啊“英语怎么说?别说成I raise you!成人学英语到蓝天广场附近

“我养你啊”这句经典台词出自周星驰自导自演的电影《喜剧之王》。在这部电影中&#xff0c;周星驰饰演的尹天仇对张柏芝饰演的柳飘飘说出了这句深情而动人的台词。这句台词出现在柳飘飘即将离去之时&#xff0c;尹天仇鼓起勇气&#xff0c;用它作为对柳飘飘个人困境的承诺&…