ADC模拟/数字转换器

ADC是什么?

全称: Analog-to-Digital Converter ,指模拟 / 数字转换器
它是一种电子设备或电路,用于将连续的模拟信号转换为相应的数字形式,以便于数字系统进行处理。模拟信号是连续变化的,而数字系统则处理离散的数字信号。
ADC的工作原理是采样和量化。采样是指按照一定的时间间隔测量模拟信号的值,而量化则是将这些连续的模拟值映射为离散的数字值。ADC通常具有不同的性能参数,如分辨率(量化级别)、采样率、精度等,这些参数决定了其性能和适用范围。

ADC的性能指标

  • 量程:能测量的电压范围
  • 分辨率:ADC能辨别的最小模拟量,通常以输出二进制数的位数表示,比如:81012
  • 16位等;位数越多,分辨率越高,一般来说分辨率越高,转化时间越长
  • 转化时间:从转换开始到获得稳定的数字量输出所需要的时间称为转换时间

ADC特性

  • 12位精度下转换速度可高达1MHZ
  • 供电电压:V SSA 0VV DDA 2.4V~3.6V
  • ADC输入范围:VREF- ≤ VIN ≤ VREF+
  • 采样时间可配置,采样时间越长, 转换结果相对越准确, 但是转换速度就越慢
  • ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中

ADC通道

总共 2 ADC ADC1 ADC2 ),每个 ADC 18 个转换通道 : 16 个外部通道、 2 个内部通道(温度
传感器、内部参考电压)。
外部的 16 个通道在转换时又分为规则通道和注入通道,其中规则通道最多有 16 路,注入通道最多
4 路。
规则组:正常排队的人;
注入组:有特权的人(军人、孕妇)

 

 ADC转换顺序

  • 每个ADC只有一个数据寄存器,16个通道一起共用这个寄存器,所以需要指定规则转换通道的转换顺序。
  • 规则通道中的转换顺序由三个寄存器控制:SQR1SQR2SQR3,它们都是32位寄存器。
  • SQR寄存器控制着转换通道的数目和转换顺序,只要在对应的寄存器位SQx中写入相应的通道,这个通道就是第x个转换

 

和规则通道转换顺序的控制一样,注入通道的转换也是通过注入寄存器来控制,只不过只有一个
JSQR 寄存器来控制,控制关系如下:

 

注入序列的转换顺序是从 JSQx[ 4 : 0 ] x=4-JL[1:0] )开始。只有当 JL=4 的时候,注入通道的转换
顺序才会按照 JSQ1 JSQ2 JSQ3 JSQ4 的顺序执行。

ADC触发方式

  1. 通过向控制寄存器ADC-CR2ADON位写1来开启转换,写0停止转换。
  2. 也可以通过外部事件(如定时器)进行转换。

 ADC转化时间

ADC 是挂载在 APB2 总线( PCLK2 )上的,经过分频器得到 ADC 时钟( ADCCLK ),最高 14 MHz
转换时间 = 采样时间 +12.5 个周期
 12.5 个周期是固定的,一般我们设置 PCLK2=72M ,经过 ADC 预分频器能分频到最大的时钟只能
12M ,采样周期设置为 1.5 个周期,算出最短的转换时间为 1.17us

在STM32系列微控制器中,PCLK2是ADC(模数转换器)的时钟。ADC预分频器用于将PCLK2分频以得到ADC的时钟。ADC时钟的最大频率由ADC的最大工作频率决定。对于STM32系列微控制器,ADC的最大时钟频率一般为14 MHz。

假设你设置PCLK2为72 MHz,然后通过ADC预分频器进行分频,得到的ADC时钟最大频率为:

                                        最大ADC时钟频率=PCLK2/分频因子

ADC转化模式

扫描模式
  • 关闭扫描模式:只转换ADC_SQRxADC_JSQR选中的第一个通道
  • 打开扫描模式:扫描所有被ADC_SQRxADC_JSQR选中的所有通道
单次转换/连续转换
  • 单次转换:只转换一次
  • 连续转换:转换一次之后,立马进行下一次转换

 

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

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

相关文章

sensitive-word 敏感词之 DFA 双数组实现源码学习

拓展阅读 敏感词工具实现思路 DFA 算法讲解 敏感词库优化流程 java 如何实现开箱即用的敏感词控台服务? 各大平台连敏感词库都没有的吗? v0.10.0-脏词分类标签初步支持 v0.11.0-敏感词新特性:忽略无意义的字符,词标签字典 …

分享一个项目——Sambert UI 声音克隆

文章目录 前言一、运行ipynb二、数据标注三、训练四、生成总结 前言 原教程视频 项目链接 运行一个ipynb,就可操作 总共四步 1)运行ipynb 2)数据标注 3)训练 4)生成 一、运行ipynb 等运行完毕后,获得该…

全国1900+监测站点空气质量日数据,shp/excel格式,2023年最新数据

基本信息. 数据名称: 全国1900监测站点空气质量监测日数据 数据格式: shpexcel 时间版本:2023年 数据几何类型: 点 数据精度:全国 数据坐标系: WGS84 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1province省…

echarts饼图点击区块事件

loadEchart: function (echartname, data) {option {title: {text: ,subtext: ,left: center},tooltip: {trigger: item,formatter: {c}%},legend: {orient: vertical,left: left,},series: [{name: ,type: pie,radius: 70%,data: [[name>合同额,value>12312312],],labe…

ros2机器人在gazebo中移动方案

原文连接Gazebo - Docs: Moving the robot (gazebosim.org) 很重要的地方:使用虚拟机运行Ubuntu的时候,需要关闭”加速3D图形“的那个选项,否则gazebo无法正常显示。 Moving the robot(使用命令移动机器人示例) In t…

SpringBoot知识点回顾01

Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。 Spring是如何简化Java开发的 为了降低Java开发的复杂性,Spring采用了以下4种关键策略: 1、基于POJO的轻量级和最小侵入性编程,所有东西都是bean; 2、通…

《JVM由浅入深学习【一】 2023-12-19》JVM由简入深学习提升

JVM由浅入深一(类加载) JVM的类加载1. java运行时是什么时候被加载的?2. JVM类加载过程大致阶段3. 父类与子类初始化各个类型顺序4. 什么是类加载器?6. 双亲委派机制 JVM的类加载 1. java运行时是什么时候被加载的? …

TikTok获客工具开发,这些代码不能少!

随着TikTok的全球影响力不断扩大,越来越多的企业和个人开始将目光投向这个短视频平台。 为了在竞争激烈的市场中脱颖而出,开发一款高效的TikTok获客工具成为了迫切的需求,而在开发过程中,掌握一些基础源代码是必不可少的。 本文…

虾皮ERP系统:提升电商企业管理效率和水平的利器

虾皮ERP(Enterprise Resource Planning,企业资源规划)系统是电商企业管理业务流程和资源的重要工具。通过整合企业的各种功能模块,如采购、销售、库存和财务等,虾皮ERP系统实现了数据共享和流程自动化,从而…

数据结构学习 Leetcode300最长递增子序列

是我在学习动态规划时遇到的一道题。 题目: 一共有两种解法: 动态规划贪心 二分(很难理解,我还没完全懂。。。) 解法一:动态规划 思路: 状态:nums的前i个数的最长递增子序列。dp…

量子登月计划!Infleqtion与日本JST研发中性原子量子计算机

​(图片来源:网络) 美国量子信息公司Infleqtion,已被日本科学技术振兴机构(JST)选定为“量子登月计划”唯一的外国量子计算合作伙伴。该计划旨在增强日本的量子技术能力,预计将在2050年之前对日…

LDO的工作原理

LDO,全称是低压差线性稳压器。LDO使用的是在线性区域内运行的晶体管或者场效应管。通过调节晶体管或场效应管两端的电压,产生经过调整过的输出电压。 但仅能使用在降压应用中,也就是输出电压必须小于输入电压。 LDO内部基本都是由4大部件构成…

翻译: 负责任的人工智能 Responsible AI

负责任的人工智能指的是以道德、值得信赖和社会负责任的方式开发和使用人工智能。许多开发者、企业和政府都关心这一点,并且一直在进行对话,也在努力确保人工智能的构建和使用是负责任的。由于对负责任的人工智能的所有这些关注和努力,我们在…

苏州和数荣获苏州市软件行业协会“杰出贡献理事单位”

2023年12月14日,苏州市软件行业协会第五届第五次理事会议在金螳螂大厦顺利召开。 苏州市工信局副局长万资平,苏州市工信局大数据处处长卢剑荣,苏州市工信局大数据处丁天龙,江苏省软件行业协会副秘书长夏冰莹,苏州市软…

【SpringBoot快速入门】(2)SpringBoot的配置文件与配置方式详细讲解

之前我们已经学习的Spring、SpringMVC、Mabatis、Maven,详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例,上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动,从这一节开始,我们开始学习SpringBoot…

SpringSecurity深度解析与实践(1)

目录 引言1. SpringSecurity1.1 SpringSecurity简介1.2 SpringSecurity工作原理1.3.特点 2. SpringSecurity的快速使用总结 引言 SpringSecurity作为Spring框架中的一个重要组成部分,扮演着保护应用程序安全的重要角色。本文将深入探讨SpringSecurity的原理、使用方…

logging模块

【 一 】前言 logging 模块是 Python 中用于记录日志信息的标准库模块。通过使用 logging 模块,你可以在应用程序中设置日志记录以追踪代码执行、错误报告等信息。 debug : 打印全部的日志( notset 等同于 debug )info : 打印 info, warning, error, critical 级别的…

Playground AI刚刚推出了它的新宠儿——Playground V2,去试试?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

react useState异步问题

1. useState执行后 不能立马拿到新的数据,下次更新绘图就可以拿到了 然后当执行完第一次render时候,比如去点击按钮啥的执行某个方法这个时候就可以拿到数据了 例子: const UseState () > { // 函数组件中没有this const [count, setCou…

vlan的通信(hcia)

有两种情况 第一种 vlanif的接口 VLANIF接口:VLANIF接口是一种三层的逻辑接口。在VLANIF接口上配置P地址 后,没备会在MAC地址表中添加VLANIF接口的MAC地址VD表项,并且为表项的 三层转发标志位置位。当报文的目的MAC地址匹配该表项后&a…