搞嵌入式要知道的ADC基本知识
嵌入式工程师成长日记 2025-01-08

(一)简介

  • ADC (Analog-Digital Converter)模拟-数字转换器
  • ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁
  • 12位(分辨率)逐次逼近型ADC,1us(1MHz)转换时间
  • 输入电压范围:0~3.3V,对应转换结果范围:0~4095(0~2^12-1)
  • 18个输入通道,可 测量16个外部和2个内部信号源
  • 规则组(常规事件)和注入组(突发事件)两个转换单元
  • 模拟看门狗自动监测输入电压范围
  • STM32F103C8T6 ADC资源:ADC1、ADC2, 10个外部输入通道

一般读取引脚我们只能获取高电平或者低电平,但是使用ADC之后,就可以把高低电平之间的任意电压进行量化,最终用一个变量表示,读取这个变量,就可以知道计算得知具体电压。

(二)ADC原理结构

1、逐次逼近型ADC学习

以前单片机性能不强的时候,需要外挂一块ADC芯片才能进行AD转换,下图中的通道选择开关表示一个可以通过模拟信号的数据选择器,有多少ADC的通道数即多少的开关,STM32内部的ADC有18个输入通道。

通过比较器进行逐次的比较,即从高位到低位依次判断是1还是0的过程。一遍遍的比较至近似相等

2、ADC框图


  • 触发ADC转换的信号:①软件触发,在程序中调用一条代码,就可以启动转换了。②硬件触发,就是这里的这些触发源(EXTI_11/EXTI15开始连接的两控制器)。
  • 参考电压:芯片的VDDA和VSSA在电路中默认接了VREF,因此没有VREF±引脚。同电源0~3.3V
  • ADCCLK:来源于外设总线预分频器,最大14MHz,因此把时钟源分频时候不能弄超了。
  • 数据寄存器:存数据
  • 模拟看门狗:可以存一个阈值高限和一个阈值低限。启动并指定了看门的通道,一旦数据超过限制范围,就会乱叫,即申请一个中断AWD。
  • 通道组完成信号:转换完成之后,也会有一个信号,EOC是规则组的完成信号,JEOC注入组完成信号。这些信号可以渠道NVIC申请中断

3、ADC基本结构


手册引脚中只有IN0~9共10个通道,其他地方就没有了。因此芯片只有10个外部输入通道。下图中ADC12_IN0的意思是ADC1和ADC2的IN0都是在PA0上的,即引脚全都是相同的。因此ADC1和ADC2可以同时运行,即双ADC模式。

4、规则组的四种转换模式

参数:单次/连续、扫描/非扫描

【单次转换,非扫描模式】

在非扫描模式下,只有序列1的位置有效,这时候同时选中一组的方式就简化为选中一个的方式。但这一个位置可以选择不同的通道,然后触发转换一次。EOC标志位置1,整个转换过程结束。如果想再次转换,只能再次触发。如果想换通道,那就触发转换之前将其通道更改。

【连续转换,非扫描模式】

仍然是非扫描模式,菜单列表只用第一个,区别是一次转换完成标志位置1结束后,还会继续触发转换,一旦开始,一直持续。

【单次转换,扫描模式】

扫描模式,每触发一次,转换结束后就会停下来。不过会把菜单列表的通道都转换了。

【连续转换,扫描模式】

同样的,连续扫描模式,一旦开始,不会停止转换,全部通道扫描。

(三 )AD转换过程补充

1、触发控制

通过设置EXTSEL寄存器来选择控制源。

2、数据对齐

数据寄存器是16位的,ADC是12位的,因此存在一个数据对齐的问题,以便正确获取数据。一般使用右对齐,直接得到转换结果。

数据对齐常用于控制精度,如果后面的四位不要了,可以左对齐后只取高八位。

3、转换时间

AD转换的步骤:采样,保持量化,编码

STM32 ADC的总转换时间为:TCONV=采样时间+ 12.5个ADC周期

需要采样保持的原因是,电压是波动的,因此想要在转换过程中,保持稳定。就需要这个采样保持电路。整个过程耗费时间即为采样时间

12位的ADC需要12个转换周期

例如:当ADCCLK= 14MHz,采样时间为1.5个ADC周期TCONV= 1.5 + 12.5 = 14个ADC周期= 1μs

4、校准

  • ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。校准期间,在每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差
  • 建议在每次上电后执行一次校准
  • 启动校准前,ADC必须处于关电状态超过至少两个ADC时钟周期

校准过程是固定的,只需要注意调用即可。

5、硬件电路

ADC外围电路设计:方便信号接入。

①电位器产生可调电压(滑动变阻器),注意阻值不要太小

②因为电阻阻值没法直接测量,就需要串联一个电阻分压(阻值近似传感器阻值),来得到一个反应电阻值电压的电路。

③电压转换电路,同样的需要电阻进行分压。根据分压公式计算PA2电压范围,PA2=VIN/50K*33K


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 模拟
  • 模电
  • 运放
  • 放大
下载排行榜
更多
评测报告
更多
EE直播间
更多
广告