历史上的今天
今天是:2024年10月27日(星期日)
2021年10月27日 | stm32专题二十四:ADC简介
2021-10-27 来源:eefocus
ADC简介:
ADC :Analog to Digital,模拟数字转换器
三个独立的ADC 1 / 2 / 3;
分辨率为12位;
每个ADC具有18个通道,其中外部通道16个;
ADC结构框图,主要分成7个部分:
电压输入范围、输入通道、转换顺序、触发源、转换时间、数据寄存器、中断。

(1)输入电压范围:

ADC 输入范围为:VREF- ≤ VIN ≤ VREF+。由VREF-、VREF+ 、VDDA 、VSSA、这四个外部引脚决定。
在设计原理图的时候一般把VSSA 和VREF-接地,把VREF+和VDDA 接3V3,得到ADC 的输入电压范围为:0~3.3V。

如输入电压超过3.3v,如希望测量的电压范围是 -10v ~ 10v,怎么做?

图中电路的输出:vo = (vi + 10) / 6,可以实现 -10v ~ 10v范围的电压测量。
(2)输入通道 GPIO
确定好ADC 输入电压之后,那么电压怎么输入到ADC?这里我们引入通道的概念,STM32 的ADC 多达18 个通道,其中外部的16 个通道就是框图中的ADCx_IN0、ADCx_IN1...ADCx_IN5。这16 个通道对应着不同的IO 口,具体是哪一个IO 口可以从手册查询到。其中ADC1/2/3 还有内部通道:ADC1 的通道16 连接到了芯片内部的温度传感器,Vrefint 连接到了通道17。
引脚分配:

输入通道分类:规则通道和注入通道。
外部的16 个通道在转换的时候又分为规则通道和注入通道,其中规则通道最多有16路,注入通道最多有4 路。

规则通道
规则通道:顾名思意,规则通道就是很规矩的意思,我们平时一般使用的就是这个通道。
注入通道
注入,可以理解为插入,插队的意思,是一种不安分的通道。它是一种在规则通道转换的时候强行插入要转换的一种。如果在规则通道转换过程中,有注入通道插队,那么就要先转换完注入通道,等注入通道转换完成后,再回到规则通道的转换流程。这点跟中断程序很像,都是不安分的主。所以,注入通道只有在规则通道存在时才会出现。
(3)通道转换顺序

规则组最多可以有16个通道,转换顺序也可以随意选定,由ADC_SQRx寄存器来选择。

同理,注入组最多4个通道,顺序也可以随意选择,由ADC_JSQR寄存器来配置。注入通道,还有一个切换顺序的问题。比如,当只需要一个注入通道,则JL = 0,转换顺序(4 - JL) = 4,此时该通道编号要设置在JSQ4中;当需要两个注入通道呢,JL = 1,转换顺序(4 - JL)= 3,此时要转换的两个通道顺序为JSQ3、JSQ4。

(4)触发源
对于开启ADC转换,有两种方法:
可以通过设置ADON开启;
通过其他触发条件;
首先来看通过设置ADON来开启ADC转换:

ADON位功能描述:

ADC转换时序图:
ADON只能开启规则通道的单次或连续转换,参见中文参考手册中的描述:
通过触发条件来进行触发:
1 软件触发:

2 外部事件触发:
首先是规则通道的外部触发:

触发事件线对应的触发事件:
规则通道:

注入通道,也是类似的:
寄存器配置:

(5)转换时间
ADC外设是在AHB2总线上的,AHB2总线的时钟为72MHz,而ADCCLK最大为14MHz,因此需要分频。

预分频设置,由时钟配置寄存器RCC_CFGR来选择:

通道采样时间的计算:

采样周期的寄存器配置如下:

当APB2总线时钟为72M,ADC预分频系数为6时,ADCCLK = 12M,此时:
最短转换时间:Tconv = (1.5 + 12.5) = 14周期 = 14 / 12us = 1.17us
最长转换时间:Tconv = (239.5 + 12.5) = 252周期 = 252 / 12us = 21us
(6)数据寄存器
一切准备就绪后, ADC 转换后的数据根据转换组的不同,规则组的数据放在ADC_DR 寄存器,注入组的数据放在 JDRx。
规则数据寄存器:

16位有效,用于存放独立模式转换完成数据;
ADC_CR2寄存器的ALIGN位,设置数据对齐方式;
只有一个,多通道采集的是最好使用DMA;
12位数据在16位寄存器中的对齐格式:

注入数据寄存器:

(7)中断

1 转换结束中断
数据转换结束后,可以产生中断,中断分为三种:1 规则通道转换结束中断;2 注入转换通道转换结束中断;3 模拟看门狗中断。其中转换结束中断很好理解,跟我们平时接触的中断一样,有相应的中断标志位和中断使能位,我们还可以根据中断类型写相应配套的中断服务程序。
2 模拟看门狗中断
当被 ADC 转换的模拟电压低于低阈值或者高于高阈值时,就会产生中断,前提是我们开启了模拟看门狗中断,其中低阈值和高阈值由 ADC_LTR 和 ADC_HTR 设置。例如我们设置高阈值是 2.5V,那么模拟电压超过 2.5V 的时候,就会产生模拟看门狗中断,反之低阈值也一样。

3 DMA请求:
规则和注入通道转换结束后,除了产生中断外,还可以产生 DMA 请求,把转换好的数据直接存储在内存里面。要注意的是只有 ADC1 和 ADC3 可以产生 DMA 请求。一般我们在使用 ADC 的时候都会开启 DMA传输。
(8)电压转换计算
电压输入范围为:0~3.3V;
分辨率为12位;
最小精度为:3.3/2^12;
设数字量为X,则有模拟量 Y = (3.3 / 2^12)*X;
********************************************************************************************************************************************
接下来是ADC的工作模式,可以分为独立模式和双ADC模式。
独立模式:
只使用一个ADC,如使用ADC1(可以配置规则组最多为16通道);

双ADC模式(ADC1 + ADC2):

(1)同步模式(包含同步规则和同步注入模式),应用场景:多通道示波器
什么意思呢,就是我们使用两个ADC,当设置ADC1为外部触发时,触发条件会同时开启ADC1和ADC2。如下图所示:

使用同步模式时,如果设置合理,我们能缩短至一半的时间。比如,当使用独立模式(单ADC时),转换16个通道;而现在可以将16个通道分到两个ADC中(各8个),一次序列采样完成只需要原来的一半时间。
(2)交叉模式(分为快速交叉和慢速交叉):只适用于规则通道组,而且只有一个通道,作用是提高采样速度(工作模式:ADC1和ADC2均对单通道进行采样。当ADC1采样完在转换时,ADC2即开始采样,这样不用像独立模式那样每次都得等到转换完成再开始下一次,能提高转换速度)。应用场景:高采样率示波器

快速交叉:

慢速交叉:

(3)交替触发:
只适用于注入通道组。当第一个触发条件到来时,ADC1是所有注入通道全部转换,ADC2不转换;
当第二个触发条件到达时,ADC2的所有注入通道全部转换,ADC1不转换;
循环往复...
(4)多种模式混合...
扫描模式:

单次转换模式(ADC只执行一次转换):

连续转换模式:
史海拾趣
|
:L 我正在做一个无磁芯变压器的研究,就是在PCB上直接印刷原副边的线圈,由于无磁芯,所以工作频率为MHz级,理论设计时需要计算交流电阻这一参数,我查阅的一些文献都没有太大的实际意义,那位大侠有办法?… 查看全部问答> |
|
前一阵,一些哈飞赛马车主的爱车陆续出现了更换火花塞过程中火花塞断裂的情况,有的气缸的火花塞点火电极有缺口,气缸严重窜气。株洲湘火炬火花塞厂技术、质量部近日提醒广大车主,火花塞是发动机点火系中故障较多的部件之一,在火花塞的选择、使用 ...… 查看全部问答> |
|
by Gorgon Meducer 傻孩子 http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=3668848 前言 这是一些关于人们眼中不可思议的“灵异事件”的调查报告。这些事件中,当事人往往在向当局 提交报告后便杳无音信,因此,这些档 ...… 查看全部问答> |
|
这几天在弄UCOS ii的程序,是基于IAR软件的。其中有个地方不是很明白,在程序的开始,堆栈好各堆栈后进入的系统模式(sys),也就是说任务在系统模式下运行。但中断(irq)来了后进入IRQ模式执行中断的汇编代码(os_cpu_a.asm),可是在刚进入IRQ后就切 ...… 查看全部问答> |
|
音视频播放软件:支持MPEG-1/2、4,H.264 263,MP4、WMA、DIVX、XVID/MP3等流行格式 视频在6410 播放流畅 联系方式: hpccn@163.com MSN: hpccn@163.com… 查看全部问答> |
|
我公司从事无线通讯,在罗湖区有一套90多m2的正规写字楼,此处于市区中心交通便利,周围环境优美;配带有各办公桌具、ADSL网络 现寻求从事工控行业的创业者一起创业合作 如果您创业需要有一个上好的办公环境,又希望尽可能节省成本,且享受高质量的 ...… 查看全部问答> |
|
网上有很多定时器A产生pwm波,定时器B捕获的例子。可以用定时器A产生PWM ,定时器A捕获嘛! 自己随便编了个程序!捕获PWM波的上升沿,计算pwm的周期,用数码管显示,不知道为啥老是不对,还望高手指点一二! #include \"msp430x14x.h\" ...… 查看全部问答> |












