STM32H750外设之ADC通道选择

目录

概述

1 通道选择功能介绍

2 通道选择( SQRx、 JSQRx)

2.1 通道复用

2.1.1 通道介绍

2.1.2 通道框图

2.2  转换分组

2.3 内部专用通道

3 通道预选寄存器 (ADCx_PCSEL)

3.1 功能介绍

3.2 预选通道寄存器


概述

本位主要介绍STM32H750外设之ADC通道选择,包括如何通过配置寄存器来实现通道的自由配置。并介绍了和通道选择相关寄存器的控制位的含义。

1 通道选择功能介绍

STM32H7 每个 ADC 的复用通道多达20条,它们可以通过配置寄存器的方式,实现通道的自由选择。这些寄存器包括:SQRx、 JSQRx,通道预选寄存器 (ADCx_PCSEL)。

2 通道选择( SQRx、 JSQRx)

2.1 通道复用

2.1.1 通道介绍

STM32H7 每个 ADC 的复用通道多达20条,其分别有如下这些可供选择:

1) 快速模拟输入:    6 路来自模拟焊盘和 GPIO 焊盘的快速模拟输入 (ADCx_INP/INN[0..5])

2) 慢速模拟输入 :  14 路来自 GPIO 焊盘的慢速模拟输入 (ADCx_INP/INN[6..19])

3) 5 路内部模拟输入:

– 内部温度传感器 (VSENSE) 连接到 ADC3_INP/INN18
– 内部参考电压 (VREFINT) 连接到 ADC3_INP/INN19
– VBAT 监测通道 (VBAT/4) 连接到 ADC3_INP/INN17
– DAC 内部通道 1,连接到 ADC2_INP/INN16
– DAC 内部通道 2,连接到 ADC2_INP/INN17

2.1.2 通道框图

1)ADC1通道框图

2)ADC2通道框图

 3)ADC3通道框图

2.2  转换分组

可以将转换分为两组:常规转换和注入转换

每个组包含一个转换序列,该序列可按任意顺序在任意通道上完成。

一个实例:

可按以下顺序对序列进行转换,分组方式如下:

ADCx_INP/INN3、 ADCx_INP/INN8、ADCx_INP/INN2、 ADCx_INP/INN2、ADCx_INP/INN0、 ADCx_INP/INN2、 ADCx_INP/INN2、ADCx_INP/INN15。

1)常规转换组

最多由 16 个转换构成。必须在 ADCx_SQRy 寄存器中选择转换序列的常规通道及其顺序。常规转换组中的转换总数必须写入 ADCx_SQR1 寄存器中的 L[3:0] 位。

位 3:0 L[3:0]: 常规通道序列长度 (Regular channel sequence length)
通过软件写入这些位可定义常规通道转换序列中的转换总数。
0000: 1 次转换
0001: 2 次转换
...
1111: 16 次转换

2)注入转换组

最多由 4 个转换构成。必须在 ADCx_JSQR 寄存器中选择转换序列的注入通道及其顺序。注入转换组中的转换总数必须写入 ADCx_JSQR 寄存器中的 L[1:0] 位。

位 1:0 JL[1:0]: 注入通道序列长度 (Injected channel sequence length)
通过软件写入这些位可定义注入通道转换序列中的转换总数。
00: 1 次转换
01: 2 次转换
10: 3 次转换
11: 4 次转换

配置寄存器时注意:

不得在可能常规转换时对 ADCx_SQRy 寄存器进行修改。因此,必须先写入 ADSTP=1 停止ADC 常规转换。

2.3 内部专用通道

1)温度传感器 VSENSE

温度传感器 VSENSE连接到通道 ADC3 VINP[18]。

2)内部参考电压 VREFINT

内部参考电压 VREFINT连接到 ADC3 VINP[19]。

3)VBAT

VBAT通道连接到通道 ADC3 VINP[17]。

注意点:

要对其中一条内部模拟通道进行转换,必须先对 ADCx_CCR 寄存器中的 VREFEN、VSENSEEN或 VBATEN 位进行编程,以使能相应的模拟源。

3 通道预选寄存器 (ADCx_PCSEL)

3.1 功能介绍

对于每条通过 SQRx 或 JSQRx 选择的通道,必须先对相应的 ADCx_PCSEL 位进行配置。该 ADCx_PCSEL 位控制集成到 IO 中的传输门。 ADC 输入 MUX 会根据 SQRx 和 JSQRx以非常快的速度选择 ADC 输入,而集成到 IO 中的传输门的响应速度不会像 ADC 复用器那样快。为了避免传输门对 IO 的控制出现延迟,必须预选输入通道,这些通道将在 SQRx 和JSQRx 中选择。

输入通道是根据每路 ADC 输入的 VINP[i] 选择的。如果 ADC1 要将 ADC123_INP2(VINP[2])转换为差分模式,则还需要在 ADCx_PCSEL 中选择 ADC123_INP6(VINP[6])。一些 ADC 输入连接至 ADCx 的多个 VINP[i]。这些输入会与 ADCx_PCSEL 寄存器位进行或运算。

3.2 预选通道寄存器

ADC x 通道预选寄存器 (ADCx_PCSEL)( x=1 到 3)
ADC x channel preselection register
偏移地址: 0x1C
复位值: 0x0000 0000


位 19:0 PCSELx:通道 x (VINP[i]) 预选 (Channel x (VINP[i]) pre selection)

这些位由软件写入,用于预选 IO 实例中要转换的输入通道。

0:未预选通道 x (Vinp x) 进行转换,该通道的 ADC 转换结果显示的结果不正确。
1:预选输入通道 x (Vinp x) 进行转换

注意:

仅当 ADSTART=0 且 JADSTART=0 时(这可确保当前未进行任何转换),才允许通过软件对这些位执行写操作。
 

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

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

相关文章

AI学习指南数学工具篇-凸优化在支持逻辑回归中的应用

AI学习指南数学工具篇-凸优化在支持逻辑回归中的应用 一、引言 在人工智能领域,逻辑回归是一种常见的分类算法,它通过学习样本数据的特征和标签之间的关系,来进行分类预测。而在逻辑回归算法中,凸优化是一种重要的数学工具&…

如何开展人工智能项目呢?

1.分析问题,确定输入和输出 比如:中英翻译,输入: 苹果 输出: apple 确定了输入和输出后,要想办法将输入和输出抽象成一些数字,因为计算机只能为你处理数字。比如说,你输入一朵花&am…

栈 队列

目录 1.1栈的基本概念 1.1.1栈的定义 1.1.2栈的基本操作 1.2栈的顺序存储结构 1.2.1构造原理 1.2.2基本算法 1.3栈的链式存储结构 1.3.1构造原理 1.3.2基本算法 2.1队列的基本概念 2.1.1队列的定义 2.1.2队列的基本运算 2.2队列的顺序存储结构 2.2.1构造原理 2.2.1基…

SAP项目中的国际化团队

参与过国际项目或者管理过国际化的团队的同仁是不是有同样的感受,管理SAP项目中的国际化团队是一项复杂的任务,需要考虑多种因素,包括跨文化沟通、时区管理、项目协调等。今天我就根据我多个国际项目的经验来给大家分享一下如何很好的管理国际…

深刻解析 volatile 关键字和线程本地存储ThreadLocal

1.volatile关键字在Java多线程编程中的重要性 在多线程编程中,volatile关键字扮演着至关重要的角色,它确保了变量在多个线程间的可见性,并且能防止指令重排序,从而达到线程安全的目的。 1.1 保证多线程环境下变量的可见性 在Ja…

CRLF注入漏洞

1.CRLF注入漏洞原理 Nginx会将 $uri进行解码,导致传入%0a%0d即可引入换行符,造成CRLF注入漏洞。 执行xss语句 2.漏洞扩展 CRLF 指的是回车符(CR,ASCII 13,\r,%0d) 和换行符(LF,ASCII 10,\n&am…

Java中的事件驱动编程:增强应用的互动性和响应性

事件驱动编程是一种编程范式,其中程序的流程由外部事件决定,如用户操作、系统消息或其他程序的输入。在Java中,事件驱动编程广泛应用于图形用户界面(GUI)开发、网络编程和组件交互。本文将探讨Java中的事件驱动编程基础…

FTP协议——LightFTP安装(Linux)

1、简介 LightFTP是一个轻量级的FTP(File Transfer Protocol,文件传输协议)客户端软件。FTP是一种用于在网络上传输文件的标准协议,允许用户通过TCP/IP网络(如互联网)在计算机之间进行文件传输。 2、步骤…

在ARM开发板上,栈大小设置为2MB(常用设置)里面存放的数据

系列文章目录 在ARM开发板上,栈大小设置为2MB(常用设置)里面存放的数据 在ARM开发板上,栈大小设置为2MB(常用设置)里面存放的数据 系列文章目录 在ARM开发板上,栈(Stack)…

Flutter 中的 LimitedBox 小部件:全面指南

Flutter 中的 LimitedBox 小部件:全面指南 Flutter 是一个功能强大的 UI 框架,它提供了大量的小部件来帮助开发者构建美观且响应式的用户界面。在 Flutter 的布局小部件中,LimitedBox 是一个不太常见但非常有用的组件,它可以用来…

Keras深度学习框架第二十五讲:使用KerasNLP预训练Transformer模型

1、KerasNPL预训练Transformer模型概念 使用KerasNLP来预训练一个Transformer模型涉及多个步骤。由于Keras本身并不直接提供NLP的预训练模型或工具集,我们通常需要结合像TensorFlow Hub、Hugging Face的Transformers库或自定义的Keras层来实现。 以下是一个简化的…

Thingsboard规则链:Message Type Filter节点详解

一、Message Type Filter节点概述 二、具体作用 三、使用教程 四、源码浅析 五、应用场景与案例 智能家居自动化 工业设备监控 智慧城市基础设施管理 六、结语 在物联网(IoT)领域,数据处理与自动化流程的实现是构建智能系统的关键。作…

创新实训2024.05.28日志:记忆化机制、基于MTPE与CoT技术的混合LLM对话机制

1. 带有记忆的会话 1.1. 查询会话历史记录 在利用大模型自身能力进行对话与解答时,最好对用户当前会话的历史记录进行还原,大模型能够更好地联系上下文进行解答。 在langchain chat chat的chat函数中,通过实现langchain框架提供的ChatMemo…

【设计模式】创建型-工厂方法模式

前言 工厂方法模式是一种经典的创建型设计模式,它提供了一种灵活的方式来创建对象实例。通过本文,我们将深入探讨工厂方法模式的概念、结构和应用。 一、什么是工厂方法模式 工厂方法模式是一种创建型设计模式,旨在解决对象的创建过程和客…

Spring MVC的请求流程

Spring MVC(Model-View-Controller)是一种基于Java的实现了MVC设计模式的轻量级Web框架。它通过一套注解,可以快速地搭建一个可扩展、易维护的Web应用程序。下面是Spring MVC处理请求的基本流程: 用户发起请求:用户通过…

Parquet使用指南:一个超越CSV、提升数据处理效率的存储格式

前言 在大数据时代,数据存储和处理的效率越来越重要。同时,我们在工作中处理的数据也越来越多,从excel格式到csv格式,从文件文档传输到直接从数据库提取,数据单位也从K到M再到G。 当数据量达到了G以上,几…

ROS | 自动导航

保存&加载地图: image:地图文件 resolution:地图分辨率(珊格地图) origin:地图左下标 第三个参数是偏转角度 加载创建好的yaml文件: 年轻人第一次导航: 全局规划器: 代价地图设置参数&#…

K-means聚类模型入门介绍

K-means聚类是一种无监督学习方法,广泛应用于数据挖掘、机器学习和模式识别等领域,用于将数据集划分为K个簇(cluster),其中每个簇的数据具有相似的特征。其基本思想是通过迭代寻找使簇内点间距离平方和最小的簇划分方式…

纯命令行登录dlut-lingshui并实现断网重连

1 写在前面 本文章改写自《shell脚本登录dlut-lingshui并设置开机连网和断网重连》,旨在利用其脚本解决无图形界面情况下的校园网登录以及断网重连问题。本文仅作使用脚本的示范而不分析原理,若对脚本细节感兴趣可以查阅原文。 2 操作步骤 2.1 修改代…

【华为OD机试-C卷D卷-200分】运输时间(C++/Java/Python)

【华为OD机试】-(A卷+B卷+C卷+D卷)-2024真题合集目录 【华为OD机试】-(C卷+D卷)-2024最新真题目录 题目描述 M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。速度快的车追上前车后,只能以前车的速度继续行驶,求最后一…