stm32_ADC电源、通道、工作模式

0、ADC功能框图

1、ADC的电源

1.1、工作电源

VSSA=VSS,VDDA=VDD,简单来说,通常stm32是3.3V,ADC的工作电源也是3.3V;

1.2、参考电压

VREF+和VREF-并不一定引出,取决于封装,如果没有引出则VREF+连接到VDDA、VREF-连接到VSSA。

在不要求精度的情况下,VREF+可直接接到VDDA,想要精确测量,可外接基准源(比如TL431);

附一个精确的参考电压3.3V的电路,R4和R5之间是2.5V,所以VREF+等于2.5V*(2.4K+7.5K)/7.5K=3.3V; (误差来源:431基准源的2.5V,R4和R5电阻的精度)

1.3、输入模拟电压

ADC 输入范围:VREF-≤VIN VREF+

通常VREF+是3.3V,那么输入的引脚电压就要在0V~3.3V之间,对应这分辨率下的上下限。

比如12位分辨率,就是0V~3.3V对应AD值是0~4095.

2、ADC的通道

2.1、ADC输入的19个通道

16 个来自GPIO端口ADCx_IN1~IN15

3个内部通道,1个内部温度传感器、1个VREFINT、1个接到 VBAT引脚 。(这3个通道只在主 ADC1 外设上可用

ADCx_IN1~IN15,ADC是有3个的,ADC1、ADC2、ADC3,所以ADCx_IN1~IN15并不意味着只有16个IO口,例如stm32f407igt6如下:

2.2、规则通道和注入通道

2.2.1、规则/注入通道和上面19个通道的关系

看框图,不管是规则通道和注入通道,都是19通道中经过复选其中的1个通道。

2.2.2、1次只能转换1个通道,如何利用多个通道?

按照事先配置的顺序去执行,比如你想转换ADC1_IN2、ADC1_IN10、ADC1_IN5,那么就是这3个通道轮流,就可以检测到多个通道了,这就是序列。

既然为序列,那就有长度和顺序,由寄存器来设置。

规则序列寄存器(最多16个通道):ADC_SQR1、ADC_SQR2、ADC_SQR3

注入序列寄存器(最多4个通道):ADC_JSQR

2.2.3、为什么要有注入通道?

比如通常只想检测ADC1_IN2、ADC1_IN10、ADC1_IN5,但当有某个事件发生时,你想去看一下ADC1_7的值,注入通道相当于插队/中断,停下规则通道的转换,去转换注入通道,完成后再继续规则通道;

除了上面这种特定事件的触发,还有一种叫“自动注入”,在规则通道转换完之后自动去转换注入通道,目的是加长检测序列,16+4相当于最多可支持20个序列;

2.2.4、如何启动规则/注入通道转换

软件触发、事件触发(定时器触发、IO口触发);

功能框图中蓝紫色下方的部分就是事件触发的具体可选项;

3、工作模式

下面的单次、连续、扫描、不连续转换有些可以组合使用。

首先看两个寄存器字段,SWSTART和CONT。

SWSTART,软件置1开始转换,然后硬件清0。

CONT,软件置1和清0,置1后会一直转换。

3.1、单次转换(CONT = 0)

不管规则通道里有几个通道,当前转换完之后就会停止。

如果是开启了扫描模式,那么第一个通道转换完停止后,下一次开启转换SWSTART会转换第二个通道。

如果没有开启扫描模式,那么下一次开启转换SWSTART会继续转换第一个通道。

3.2、连续转换(CONT = 1)

不管规则通道里有几个通道,当前转换完之后立刻开启下一次转换。

如果是开启了扫描模式,那么第一个通道转换完,开始第二个通道直到最后一个通道,并且继续下一轮转换。

如果没有开启扫描模式,那么会不断转换第一个通道。

3.3、扫描模式

逐个扫描规则/注入序列中的通道。

如上所述,扫描模式可以搭配单次转换、连续转换。

3.4、不连续转换模式

每次触发转换规则组/注入组中的一部分,规则/注入序列转换到最后一个产生EOC.

由于是每次触发,所以对于单次转换CONT = 0,如果配置为连续转换就失去了不连续转换模式的意义。

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

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

相关文章

MyBatis入门配置及CURD实现

目录 一、MyBatis简介 1. 什么是 MyBatis ? 2. MyBatis的特性 3. 什么是持久层框架? 二、MyBatis环境配置 2.1 创建maven工程 2.2 导入相关pom依赖 2.3 导入jdbc配置文件 2.4 Mybatis相关插件安装 3.5 Mybatis-cfg.xml 核心配置 2.6 引入Log4j2日志文件…

Pycharm与Anaconda Python的开发环境搭建

目录 一:下载 二:安装python 三:设置Pycharm 一:下载 下载Anaconda: Anaconda | The World’s Most Popular Data Science Platform 安装好以后,设置一下环境变量: 打开命令行&#xff0c…

Maven高级

目录 一、分模块开发与设计 1. 分模块开发的意义 2. 分模块开发(模块拆分) (1)创建Maven模块 (2)书写模块代码 (3)通过maven指令安装模块到本地仓库(install指令&…

记录:win10物理机ping不通虚拟机上的docker子网(已解决)

【说明】 windows10:已关闭防火墙 linux发行版本:centos7.9(已禁用SElinux、已关闭防火墙) 虚拟机软件:VMware Workstation 17 虚拟机网络模式:NAT模式 docker版本:20.4.5 docker网络模式…

一百六十一、Kettle——Linux上安装的kettle9.2开启carte服务(亲测、附流程截图)

一、目的 在Linux上安装好kettle9.2并且连接好各个数据库后,下面开启carte服务 二、实施步骤 (一)carte服务文件路径 kettle的Linux运行的carte服务文件是carte.sh (二)修改kettle安装路径下的pwd文件夹里的服务器…

华为将收取蜂窝物联网专利费,或将影响LPWAN市场发展

近日,华为正式公布了其4G和5G手机、Wi-Fi6设备和物联网产品的专利许可费率,其中包含了长距离通信技术蜂窝物联网。作为蜂窝物联网技术的先驱,华为是LTE Category NB (NB-IoT)、LTE Category M和其他4G物联网标准的主要贡献者。 在NB-IoT领域…

18-组件化开发 根组件

组件化开发 & 根组件: 1. 组件化:一个页面可以拆分成一个个组件,每个组件有着自己独立的结构、样式、行为. 好处:便于维护,利于复用->提升开发效率 组件分类: 普通组件 , 根组件 2. 根组件:整个应用最上层的组件,包裹所有普通小组件…

PHP酒店点菜管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 酒店点菜管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 代码下载 https://download.csdn.net/download/qq_41221322/88232051 论文 https://…

项目管理实战笔记1:项目管理常识

序 看了下极客时间的《项目管理实战》,觉得跟之前学习PMP的标准资料还是有所侧重。重新整理下,相比书上繁杂的知识,这个更通俗易懂。 1 角色转换:三大误区 误区1:事必躬亲 自己做事情是可控的,做项目依赖…

【论文阅读】SHADEWATCHER:使用系统审计记录的推荐引导网络威胁分析(SP-2022)

SHADEWATCHER: Recommendation-guided CyberThreat Analysis using System Audit Records S&P-2022 新加坡国立大学、中国科学技术大学 Zengy J, Wang X, Liu J, et al. Shadewatcher: Recommendation-guided cyber threat analysis using system audit records[C]//2022 I…

编写Dockerfile制作自己的镜像并推送到私有仓库

说明:我将用到的私有仓库是Harbor,安装教程参考我的这一篇文章: 安装搭建私有仓库Harbor_Word_Smith_的博客-CSDN博客 一、案例1 1、要求 编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私…

Kotlin 使用 View Binding

解决的问题: 《第一行代码——Android》第三版 郭霖 P277 视图绑定的问题 描述: kotlin-android-extensions 插件已经弃用 butter knife 已经弃用 解决办法 推荐使用 View Binding 来代替 findViewById 使用方法 1、配置 build.gradle 2、在act…

设计模式之组合模式(Composite)的C++实现

1、组合模式的提出 在软件开发过程中,使用者Client过多依赖所操作对象内部的实现结构,如果对象内部的实现结构频繁发生变化,则使用者的代码结构将要频繁地修改,不利于代码地维护和扩展性;组合模式可以解决此类问题。组…

UE4/UE5 “无法双击打开.uproject 点击无反应“解决

一、方法一:运行UnrealVersionSelector.exe 1.找到Epic Game Lancher的安装目录, 在lancher->Engine->Binaries->Win64->UnrealVersionSelector.exe 2.把UnrealVersionSelector.exe 分别拷贝到UE4 不同版本引擎的 Engine->Binaries->…

solr快速上手:聚合分组查询|嵌套分组指南(十二)

0. 引言 solr作为搜索引擎经常用于各类查询场景,我们之前讲解了solr的查询语法,而除了普通的查询语法,有时我们还需要实现聚合查询来统计一些指标,所以今天我们接着来查看solr的聚合查询语法 1. 常用聚合查询语法 以下演示我们…

linux驱动学习3-外部中断

在做中断试验时,发现中断驱动总是insmod失败,之后定位到 gpio_request 失败,之后是想到使用的野火做好的系统,在uEnv.txt中会加载大量设备树插件,将key相关的设备树插件屏蔽即可。 linux中断API函数 中断号 每个中断…

“开发和运维”只是一个开始,最终目标是构建高质量的软件工程

随着技术的飞速发展,软件行业不断寻求改进和创新的方法来提供更高质量的产品。在这方面,DevOps已经展现出了巨大的潜力。通过打破开发和运维之间的壁垒,DevOps将持续集成、持续交付和自动化流程引入到软件开发中,使团队能够更快地…

选择大型语言模型自定义技术

推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑器的3D应用场景 企业需要自定义模型来根据其特定用例和领域知识定制语言处理功能。自定义LLM使企业能够在特定的行业或组织环境中更高效,更准确地生成和理解文本。 自定义模型使企业能够创建符合其品牌…

CSS3基础

CSS3在CSS2的基础上增加了很多功能,如圆角、多背景、透明度、阴影等,以帮助开发人员解决一些实际问题。 1、初次使用CSS 与HTML5一样,CSS3也是一种标识语言,可以使用任意文本编辑器编写代码。下面简单介绍CSS3的基本用法。 1.1…

MAC钓鱼并Root权限上线CS并权限维持,以及所有的坑如何解决

本文转载于:https://www.freebuf.com/articles/web/350592.html 作者:文鸯涂鸦智能安全实验室 制作MAC 一、下载工具 首先从github上下载CrossC2。链接:https://github.com/gloxec/CrossC2/releases/tag/v3.1.0。 根据你CS客户端的操作系统选…