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

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.lryc.cn/news/355328.html

相关文章:

  • 【Unity2D 2022:Cinemachine】相机跟随与地图边界
  • ssh远程连接的相关配置
  • 在leafet上画圆、多边形、线、矩形
  • SpringBoot中如何在服务器进行校验?
  • element ui 的el-input输入一个字后失去焦点,需重新点击输入框才能再次输入
  • 【绝地求生game】
  • Mac上Steam安装的游戏已经卸载,但游戏的快捷方式图标仍存在的解决方式
  • PTA 判断两个矩阵相等
  • 《征服数据结构》双向链表
  • 我用 Midjourney 的这种风格治愈了强迫症
  • 三维大场景管理-3Dtiles规范
  • Flutter 中的 FractionalTranslation 小部件:全面指南
  • Thrift快速入门开发demo
  • 关于C++智能指针复习总结
  • Prometheus Operator创建告警规则并接入钉钉报警
  • Word整理论文参考文献
  • 计算机网路概述
  • 832. 翻转图像 - 力扣
  • mumu 模拟器安装
  • opencv实现图片的膨胀腐蚀
  • [AIGC] Java常用的JSON库及简单示例
  • Linux shell编程学习笔记50:who命令
  • vue使用webscoket
  • 第18章-综合以上功能 基于stm32的智能小车(远程控制、避障、循迹) 基于stm32f103c8t6/HAL库/CubeMX/超详细,包含代码讲解和原理图
  • java并发工具类都有哪些
  • 偏微分方程算法之抛物型方程差分格式编程示例一
  • 数据结构—栈(C语言实现)
  • JVM学习-垃圾回收器(一)
  • dolphinscheduler standalone安装
  • 力扣hot 100:49. 字母异位词分组(python C++)