stm32f103c8t6学习笔记(学习B站up江科大自化协)-ADC

news2024/9/17 7:14:20

ADC简介

        ADC,英文全称是Analog to Digital Convert,意为模拟数字转换器,简称模数转换器,或者叫AD转换器,STM32主要是数字电路,数字电路只有高低电平,没有几V电压的概念,如果想读取电压值需借助ADC模数转换器来实现。ADC读取引脚上的模拟电压,转化成一个数据存在寄存器里,将这个数据读取到变量中就可以进行显示、判断、记录等操作。

        数字到模拟的桥梁除了DAC还有PWM,PWM只有完全导通和完全断开两种状态,这两种状态下都没有功率损耗,在直流电机调速这种大概率应用场景,使用PWM来等效模拟量比DAC更好,PWM电路更简单常用。DAC的应用主要在波形的生成的领域,比如信号发生器、音频解码器等等。本型号的STM32没有DAC外设,自行了解即可。

        12位逼近型ADC和1us转换时间,设计到两个关键参数,第一个是分辨率,一般用多少位来表示,12位AD值的范围就是0 ~ 2^{12} - 1,就是量化结果是0 ~ 4095,位数越高量化结果越精细,对应分辨率越高。转换时间也就是转换频率,AD转换需要一小段时间,1us表示从AD转换开始到产生结果需要花1us的时间,对应AD转换频率就是1MHz,这也是STM32的最快转换频率。

        ADC的输入电压一般要求都是在芯片的负极和正极之间变化的,最低电压是负极0V,最高电压是正极3.3V,经过ADC转换之后最小值是0,最大值是4095,最大最小分别对应,之间的值也一一对应的线性关系,计算简单乘除系数即可。

        外部信号源就是16个GPIO口,在引脚上直接接模拟信号即可,不需要任何额外的电路,引脚就能直接测电压,较为方便。2个内部信号源是内部温度传感器和内部参考电压,温度传感器可以测量CPU的温度,内部参考电压是一个1.2V左右的基准电压,不随外部供电电压的变化而变化。如果芯片的供电不是标准的3.3V,测量外部引脚的电压可能不对,此时可读取这个基准电压进行校准,得到正确的电压值。

        ADC的增强功能,普通的AD转换流程,启动一次转换读一次值,再启动再读值。STM32的ADC可以列一个组,一次性启动一个组,连续转换多个值,有两个组,一个用于常规使用的规则组,一个是用于突发事件的注入组

        模拟看门狗自动检测输入电压范围。ADC一般可以用于测量光线强度,温度这些值,当温度高于或低于某个阈值会执行一些操作,这个判断就可以用模拟看门狗去自动执行,模拟看门狗可以用于检测指定收的某些通道,当AD值高于或低于阈值时就会申请中断,并可以在中断之中执行相应的操作,省去不断手动读值再用if判断的操作

        stm32f103c8t6只有ADC1和ADC2两个外设,10个外部输入通道,也就是它最多只能测量10个外部引脚的模拟信号。前面的16个外部信号源是这个系列最多有16个外部信号源,但是这个芯片引脚较少,有些引脚未被引出。如果需要更多通道可以选择其他型号

逐次逼近型ADC

        ADC0809的内部电路图,是一个独立的8位逐次逼近型ADC芯片。左边的IN0~IN7是输入的八路通道,通过通道选择开关选择一路,输入到比较器的上方进行转换,下边是地址锁存和译码,想选择哪个通道,就把通道号放在这三个脚上,给一个锁存信号,上面对应的通道选择开关就可以自动拨好了,这部分相当于可以通过模拟信号的数据选择器。ADC转换是一个很快的过程,给一个开始信号过几us便转换完成,如果想转换多路信号,只需一个AD转换器,加上一个多路选择开关,想转换哪一路拨动对应的开关,选中对应通道,然后开始转换即可。这里的ADC0809只有八个输入通道,STM32内部有18个输入通道,对应图中就是18路输入的多路开关

        对于判断电压对应的编码数据的方法,需要用到逐次逼近的方法来一一比较,图中三角形是一个电压比较器,可以判断两个输入信号电压的大小关系,输出一个高低电平指示谁大谁小,他的两个输入端,一个是待测的电压(上),另一个是DAC电压输出端,DAC是数模转换器,给他一个数据就可以输出对应的电压,DAC内部是使用加权电阻网络进行转换。

        将一个外部通道输入的位置编码的电压,和一个DAC输出的已知编码的电压,同时输入到电压比较器进行判断,如果DAC输出电压比较大,那就调小DAC数据,如果DAC输出比较小,那么就增大DAC数据,直到DAC输出电压和外部通道输入电压近似相等,这样DAC输入的数据就是外部电压的编码数据。

        电压调节的过程是由逐次逼近寄存器SAR完成的,为了最快找到未知电压的编码,通常会使用二分法进行查找,比如这里是8位的DAC,那编码就是0~255,第一次比较的时候,给DAC输入255的一半128进行比较,如果DAC电压大了,第二次比较的时候给128的一半64,如果还大第三次比就给32,如果这次小了那第四次就给32~64之间的值然后继续,以最快找到未知电压的编码。在这个过程中如果用二进制表示的话,会发现128 64 32 正好是二进制每一位的位权,这个判断过程相当于是对二进制从高位到低位依次判断是1还是0的过程。对于8位的ADC,从高位到低位判断8次就可以找到未知电压的编码。对于12位的ADC就需要判断12次。

        AD转换结束后,DAC的输入数据就是未知电压的编码,通过右边三态锁存缓冲器进行输出,八位就有8根线,十二位就有12根线。最右上角的EOC是End Of Convert转换结束信号。Start是开始转换,给一个输入脉冲开始转换,Clock是ADC时钟,因为ADC内部是一步一步进行判断的,需要时钟推动这个过程。

        下面VREF+和VREF-是DAC的参考电压,比如给一个数据255会对应5V还是3.3V将由这个参考电压决定,这个DAC的参考电压也决定了ADC的输入范围,所以他也是ADC参考电压。左边VCC和GND是整个芯片电路的供电,通常参考电压的正极VREF+和VCC是一样的,会接在一起,参考电压的负极和GND也是一样的,接在一起,一般情况下,ADC的电压输入范围就和ADC的供电一样

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

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

相关文章

AI大模型额外学习一:斯坦福AI西部世界小镇笔记(包括部署和源码分析)

文章目录 一、简单介绍1)项目代码介绍2)重新播放模拟3)适当修改分叉模拟 二、部署斯坦福小镇Demo1)准备工作2)解决遇到的bug3)启动服务器和前端 三、源码剖析1)主题顺序 github链接 一、简单介…

排序算法:快速排序(非递归)

文章目录 一、先建立一个栈二、代码编写 !](https://img-blog.csdnimg.cn/direct/870dd101173d4522862e4459b32237a3.png) 先赞后看&#xff0c;养成习惯&#xff01;&#xff01;&#xff01;^ _ ^<3 ❤️ ❤️ ❤️ 码字不易&#xff0c;大家的支持就是我坚持下去的动力…

鸿蒙开发之导航栏tabs(类似Android tablayout)

当页面信息较多时&#xff0c;为了让用户能够聚焦于当前显示的内容&#xff0c;需要对页面内容进行分类&#xff0c;提高页面空间利用率。Tabs组件可以在一个页面内快速实现视图内容的切换&#xff0c;一方面提升查找信息的效率&#xff0c;另一方面精简用户单次获取到的信息量…

ES的集群节点发现故障排除指南(1)

本文是ES官方文档关于集群节点发现与互联互通的问题排查指南内容。 英文原文&#xff08;官网&#xff09; 集群节点发现是首要任务 集群互连&#xff0c;重中之重&#xff01; 在大多数情况下&#xff0c;发现和选举过程会迅速完成&#xff0c;并且主节点会长时间保持当选状…

3个Tips,用“AI”开启新生活

相信最近&#xff0c;很多朋友们都回归到了忙碌的生活节奏中。生活模式的切换&#xff0c;或多或少会带来身体或情绪状况的起伏。新技术正在为人们生活的方方面面带来便利。3个小Tips或许能让你也从新技术中获益&#xff0c;从身到心&#xff0c;用“AI”开启新生活。 关”A…

【研究僧总结】回顾第1095个创作日

目录 前言一. 机缘二. 日常三. 展望 前言 感觉刚过1024不久&#xff0c;现在又来个1095创作日 一. 机缘 研究僧一直在找平台做笔记&#xff0c;方便之后的回顾总结&#xff0c;也让各位网友见证你我的成长&#xff0c;相互学习 止不住的写文止不住的成长&#xff0c;大家共同…

流畅的 Python 第二版(GPT 重译)(十二)

第五部分&#xff1a;元编程 第二十二章&#xff1a;动态属性和属性 属性的关键重要性在于&#xff0c;它们的存在使得将公共数据属性作为类的公共接口的一部分完全安全且确实可取。 Martelli、Ravenscroft 和 Holden&#xff0c;“为什么属性很重要” 在 Python 中&#xff0…

腾讯云优惠券怎么领?谁知道?分享一下

腾讯云代金券领取渠道有哪些&#xff1f;腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券&#xff0c;大家也可以在腾讯云百科蹲守代金券&#xff0c;因为腾讯云代金券领取渠道比较分散&#xff0c;腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

Mysql——基础命令集合

目录 前期准备 先登录数据库 一、管理数据库 1.数据表结构解析 2.常用数据类型 3.适用所有类型的修饰符 4.使用数值型的修饰符 二、SQL语句 1.SQL语言分类 三、Mysql——Create,Show,Describe,Drop 1.创建数据库 2.查看数据库 3.切换数据库 4.创建数据表 5.查看…

Linux信号补充——信号发送和保存

三、信号的发送与保存 3.1信号的发送 ​ 必须有操作系统来保存信号&#xff0c;因为他是管理者&#xff1b; ​ 信号给进程的task_struct发送信号&#xff0c;在task_struct中维护了一个整数signal有0-31位&#xff0c;共32个bit位&#xff1b;对于信号的管理使用的是位图结…

阿里云2核4G服务器支持多少人在线?2C4G多少钱一年?

2核4G服务器支持多少人在线&#xff1f;阿里云服务器网账号下的2核4G服务器支持20人同时在线访问&#xff0c;然而应用不同、类型不同、程序效率不同实际并发数也不同&#xff0c;2核4G服务器的在线访问人数取决于多个变量因素。 阿里云2核4G服务器多少钱一年&#xff1f;2核4…

Python 深度学习第二版(GPT 重译)(三)

七、使用 Keras&#xff1a;深入探讨 本章涵盖 使用 Sequential 类、功能 API 和模型子类创建 Keras 模型 使用内置的 Keras 训练和评估循环 使用 Keras 回调函数自定义训练 使用 TensorBoard 监控训练和评估指标 从头开始编写训练和评估循环 您现在对 Keras 有了一些经…

水泊梁山108小坛酒之黑旋风 李逵

李逵是中国古典小说《水浒传》中的重要人物&#xff0c;李逵生的粗壮黝黑&#xff0c;绰号“黑旋风”。臂力过人&#xff0c;善使一双板斧&#xff0c;他也是一百零八将之一&#xff0c;梁山排座次时&#xff0c;位列第二十二位&#xff0c;是梁山第五位步军头领。

按面积筛选填充二值图中的孔洞-python源码

目录 &#x1f64b;&#x1f64b;需求 &#x1f345;&#x1f345;解决方案 &#x1f64b;&#x1f64b;需求 前提条件是二值图中0是背景&#xff0c;255是前景。 二值化后的影像中有很多小孔洞&#xff0c;现在需要按孔洞面积进行筛选&#xff0c;填充面积小于阈值的孔洞&…

华为综合案例-普通WLAN全覆盖配置(2)

组网图 结果验证 在AC_1和AC_2上执行display ap all命令&#xff0c;检查当前AP的状态&#xff0c;显示以下信息表示AP上线成功。[AC_1] display ap all Total AP information: nor : normal [1] ExtraInfo : Extra information P : insufficient power supply ---…

Unity 学习笔记 5.控制飞机飞行

目录 1.摄像机跟随的方法 2.鼠标按键响应 3.键盘按键响应 4.导入素材 5.让飞机向前飞 6.摄像机跟随飞机移动 7.鼠标控制飞机倾斜 8.键盘控制飞机飞行 下载源码 UnityPackage 1.摄像机跟随的方法 2.鼠标按键响应 3.键盘按键响应 4.导入素材 下载素材 步骤&#xff1a; 将…

C语言中的联合和枚举(未完)

1、联合体 联合体类型的声明 像结构体⼀样&#xff0c;联合体也是由⼀个或者多个成员构成&#xff0c;这些成员可以不同的类型。但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫&#xff1a;共⽤体。因为所有变量公用…

流畅的 Python 第二版(GPT 重译)(七)

第十三章&#xff1a;接口、协议和 ABCs 针对接口编程&#xff0c;而不是实现。 Gamma、Helm、Johnson、Vlissides&#xff0c;《面向对象设计的第一原则》 面向对象编程关乎接口。在 Python 中理解类型的最佳方法是了解它提供的方法——即其接口——如 “类型由支持的操作定义…

【RPG Maker MV 仿新仙剑 战斗场景UI (五)】

RPG Maker MV 仿新仙剑 战斗场景UI 五 战斗状态菜单原始RMMV 菜单窗口仿新仙剑代码仿新仙剑战斗状态菜单 战斗状态菜单 这部分比较简单&#xff0c;由于有主菜单的状态菜单打底所以开发上也容易些。 原始RMMV 菜单窗口 在原版的RMMV中显示的数据主要是人物的HP、MP、TP、和两…

鲁棒的基于表面势的GaN HEMT集成电路紧凑模型

来源&#xff1a;Robust Surface-Potential-Based Compact Model forGaN HEMT IC Design&#xff08;TED 13年&#xff09; 摘要 我们提出了一种精确且稳健的基于表面势的紧凑模型&#xff0c;用于模拟采用氮化镓高电子迁移率晶体管&#xff08;GaN HEMT&#xff09;设计的电…