ADC--模拟量转换成数字量

目录

一、ADC硬件组成七大部分:

二、单次转换,连续转换,不连续采样模式,扫描模式区别

1、举例(5种组合情况)

2、模拟看门狗中断的作用:

三、MCU使用ADC步骤


一、ADC硬件组成七大部分:

①输入电压:

(1) ADC 输入范围 VREF–≤VIN≤VREF+

② 输入通道

(1) ADC 的输入通道, ADC1 有 16 个外部通道和 3 个内部通道,而 ADC2和 ADC3 只有有 16 个外部通道。 ADC1 的外部通道是通道 17、通道 18 和通道 19,分别连接到内部温度传感器、内部 Vrefint和 Vbat,具体的外部通道对应的GPIO引脚,要看对应的芯片手册,比如STM32F407的ADC通道:

③ 转换顺序

(1)规则组:每个外部通道,都可以放入规则组的任何序列,由SQR1、 SQR2 和 SQR3 寄存器决定,转换顺序由序列组决定,从小到大,序列组的长度由SQL 寄存器决定。

(2)注入组

转换顺序由序列组决定,从小到大;但注入组可以中断到规则组先转换。

④ 触发源

(1)软件触发(常用):通过写 ADC_CR2 寄存器的 ADON 这个位来控制,写 1 就开始转换,写 0 就停止转换,

(2)硬件触发:定时器事件,外部中断。

⑤ 转换时间

(1) STM32F407 的 ADC 总转换时间的计算公式如下: 

TCONV = 采样时间(至少三个时钟周期) + 12 个周期(逐次逼近型转换决定)

ADC的时钟频率:不高于36M Hz

(2)由于ADC在STM32中是挂载在APB2总线上的,所以ADC得时钟是由PCLK2(72MHz)经过分频得到的。

⑥ 数据寄存器

ADC 转换完成后的数据输出寄存器。根据转换组的不同,规则组的完成转换的数据输出到ADC_DR 寄存器,注入组的完成转换的数据输出到 ADC_JDRx 寄存器:

(1)规则组:16个规则通道共用一个ADC_DR 寄存器保存转换结果,所以多通道转换要用扫描模式,并且要开DMA保存转换结果。

(2)注入组:4个注入通道分别对应四个ADC_JDRx 寄存器保存转换结果。

⑦ 中断

(1)规则和注入组转换结束时能产生中断;

(2)当模拟看门狗状态位被设置时也能产生中断 ;

(3)规则和注入组转换结束时还可以产生 DMA 请求,把转换好的数据存储在内存里面,防止读取不及时数据被覆盖。

二、单次转换,连续转换,不连续采样模式,扫描模式区别

1、举例(5种组合情况)

用ADC1 规则通道的顺序为CH0,CH1,CH2,CH3,

(1) 在单次转换模式下,不启动SCAN模式

启动ADC1,则

a、开始转换CH0(ADC_SQR的第一通道)

b、转换完成后停止,等待ADC的下一次启动,继续从第一步开始转换

(2) 在单次转换模式下,启动SCAN模式

启动ADC1,则

a、 开始转换CH0

b、转换完成后自动开始转换CH1

c、转换完成后自动开始转换CH2

d、 转换完成后自动开始转换CH3

e、转换完成后停止,等待ADC的下一次启动下一次ADC启动后从第一步开始转换

(3) 在连续转换模式下,不启动SCAN模式

启动ADC1,则

a、开始转换CH0(ADC_SQR的第一通道)

b、转换完成后回到第一步,继续转换

(4) 在连续转换模式下,启动SCAN模式下:

启动ADC1,则

a、开始转换CH0

b、转换完成后自动开始转换CH1

c、转换完成后自动开始转换CH2

d、转换完成后自动开始转换CH3

e、转换完成后返回第一步,继续转换

(5)不连续采样模式举例:

规则组:

ADC多通道必须开启扫描模式此模式必须搭配DMA功能才能实现ADC的数据处理,注意;另外DMA只能用于ADC的规则序列,不能用于注入序列

2、模拟看门狗中断的作用:

(1)掉电检测

(2)程序可以基于各通道的转换结果进行合法性或安全性监测,此时使用ADC模拟看门狗功能就很方便。我们可以先让模拟看门狗做第一步把关,只有出现异常数据时才去进一步检查确认。

(3)模拟看门狗可以设置为多通道和单通道模式,即可以通过设置相应的寄存器位来选择某一通道或多通道打开模拟看门狗检测:

4、多通道扫描模式开启DMA?

三、MCU使用ADC步骤

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

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

相关文章

103.网游逆向分析与插件开发-网络通信封包解析-网络完成端口模型的流程

内容参考于:易道云信息技术研究院VIP课 上一个内容:解读喊话道具数据包并且利用Net发送 通过之前的内容,把游戏的网络通信中关于发送数据的分析好了(任意涉及网络的应用程序里发送数据的数据包定位与分析都可以参考之前的内容&a…

Java实战:构建智能工作量统计系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

如何清除谷歌浏览器的缓存?这里有详细步骤

如果你想解决加载或格式化问题,以改善你在谷歌Chrome上的浏览体验,那么清除缓存和cookie是一个很好的开始。以下是删除它们的方式和操作。 删除缓存和cookie时会发生什么 当你访问一个网站时,它有时会保存(或记住)某…

MybatisPlus大量数据批量新增优化

首先我们如果for循环依次遍历插入数据效率是十分底下的&#xff0c;大概耗时5分钟左右。 for循环插入测试代码&#xff1a; Test void testSaveOneByOne() {long b System.currentTimeMillis();for (int i 1; i < 100000; i) {userService.save(buildUser(i));}long e …

DS:八大排序之堆排序、冒泡排序、快速排序

创作不易&#xff0c;友友们给个三连吧&#xff01;&#xff01; 一、堆排序 堆排序已经在博主关于堆的实现过程中详细的讲过了&#xff0c;大家可以直接去看&#xff0c;很详细,这边不介绍了 DS&#xff1a;二叉树的顺序结构及堆的实现-CSDN博客 直接上代码&#xff1a; …

算法||实现典型数据结构的查找、添加和删除数据 并分析其时间和空间复杂度

实现典型数据结构的查找、添加和删除数据 并分析其时间和空间复杂度 线性结构&#xff1a; 数组&#xff1a;是一种线性表数据结构&#xff0c;它用一组连续的内存空间&#xff0c;来存储一组具有相同类型的数据。 查找数据 &#xff1a;随机访问 流程图 /** 查询元素下标…

QML | 属性特性(property)

一、属性特性 属性是对象的一个特性,可以分配一个静态的值,也可以绑定一个动态表达式。属性的值可以被其他对象读取。一般而言,属性的值也可以被其他对象修改,除非显式声明不允许这么做,也就是声明为只读属性。 1.定义属性特性 属性可以在C++中通过注册一个类的Q_PROPERT…

anaconda安装路径默认在D盘,但安装环境的envs路径跑到C盘,修改为D盘

安装的anaconda环境&#xff0c;路径是在anaconda安装目录下的envs中&#xff08;D:\APPFile\Anaconda3\envs&#xff09;&#xff0c;然而&#xff0c;这次创建的却是在 C:\Users\xxx.conda\envs 中。 首先&#xff0c;找到用户目录下的.condarc文件&#xff08;C:\Users\use…

随想录刷题笔记 —二叉树篇7 617合并二叉树 700二叉搜索树中的搜索 98验证二叉搜索树

617合并二叉树 递归&#xff1a;如果root1和root2其中有一个为空&#xff0c;则将另一个的结点直接赋值即可——将该节点和子树都直接赋值过去了。 如果都不是空&#xff0c;就需要重新建立一个结点再进入递归。 class Solution {public TreeNode mergeTrees(TreeNode root1…

力扣题目训练(12)

2024年2月5日力扣题目训练 2024年2月5日力扣题目训练476. 数字的补数482. 密钥格式化485. 最大连续 1 的个数148. 排序链表164. 最大间距 2024年2月5日力扣题目训练 2024年2月5日第十二天编程训练&#xff0c;今天主要是进行一些题训练&#xff0c;包括简单题3道、中等题2道和…

LeetCode--代码详解 231.2的幂

231. 2的幂 题目 给你一个整数 n&#xff0c;请你判断该整数是否是 2 的幂次方。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 如果存在一个整数 x 使得 n 2x &#xff0c;则认为 n 是 2 的幂次方。 示例 1&#xff1a; 输入&#xff1a;n 1…

一起学量化之DMI指标

DMI指标(Directional Movement Index)是由J. Welles Wilder在1978年开发的,用于分析资产价格动向和趋势强度的技术指标。DMI包括两条主要的线:正向指标(+DI)和负向指标(-DI),以及衡量趋势强度的平均方向指数(ADX)。 1. DMI指标的组成 +DI(正向指标):测量上升趋势…

项目第一次git commit后如何撤销

问题描述&#xff1a; # 1. 新建gitcode目录&#xff0c;然后在目录下 git init# 2. 用idea打开目录后&#xff0c;新建.gitignore文件后 git add .git commit -m "init project"git log# 3. 就出现如下图情况目的&#xff1a;向撤销该次代码提交 # 仅撤销 git com…

Stable Diffusion教程——常用插件安装与测试(一)

前言 随着Stable Diffusion不断演进&#xff0c;越来越多的开发者开始涉足插件开发。尽管网络上存在大量教程&#xff0c;但它们通常零散分布&#xff0c;逐个学习和查找非常耗时&#xff0c;使人感觉每天都在劳累思考。这里总结了Stable Diffusion常用的插件安装与测试方法。…

表的操作【mysql数据库】

目录 一、创建表 二、查看表 三、修改表 改表名&#xff1a; 新增一列&#xff1a; 修改某列的属性&#xff1a; 删除某列&#xff1a; 改列名 四、删除表 一、创建表 二、查看表 desc&#xff1a;查看表的详细信息 查看建表时的详细信息&#xff1a; 三、修改表 改表…

第15讲 用户投票实现

用户投票实现 新建用户投票详情表t_vote_detail create table t_vote_detail (id int (11),vote_id int (11),vote_item_id int (11),vote_date datetime ,openid varchar (600) ); /* SQLyog Ultimate v11.33 (64 bit) MySQL - 5.7.18-log : Database - db_vote3 **********…

springboot/ssm自动售货机系统Java在线购物商城管理系统

springboot/ssm自动售货机系统Java在线购物商城管理系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&…

Java多线程系列——(一)概述

简介 在计算机编程中&#xff0c;多线程是一种重要的概念&#xff0c;允许程序同时执行多个任务&#xff0c;提高程序的效率和性能。Java作为一门广泛应用于软件开发的编程语言&#xff0c;也提供了丰富的多线程支持。本文将简要介绍Java多线程的基本概念、使用方法以及相关特…

Spring学习笔记(二)Spring的控制反转(设计原则)与依赖注入(设计模式)

一、控制反转&#xff1a;缩写IoC 是一种设计原则&#xff0c;降低程序代码之间的耦合度 对象由Ioc容器统一管理&#xff0c;当程序需要使用对象时直接从IoC容器中获取。这样对象的控制权就从应用程序转移到了IoC容器 二、依赖注入&#xff1a;缩写DI 依赖注入是一种消除类之…

20-k8s中pod的调度-nodeSelector节点选择器

一、概念 我们先创建一个普通的deploy资源&#xff0c;设置为10个副本 [rootk8s231 dns]# cat deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: name: dm01 spec: replicas: 10 selector: matchLabels: k8s: k8s template: metadata: …