文章目录
一、ADC概述
1:概述
- 模数(A/D)转换: 将模拟量转换为数字量的过程
- 模数转换器 完成这一转换的器件称为模数转换器(简称ADC)
- 数模(D/A)转换 将数字量转化为模拟量的过程
- 数模转换器 完成这一转换的器件称为数模转换器(简称DAC)
A/D转换中通常要经过以下两步:
- 采样保持:A/D转换需要时间,一般在us级别
- 量化编码:将采样后得到的样点幅值转换为数字量(是模数转换的核心。以一定的量化单位,将信号的连续取值近似为有限的离散值的过程。)
常见技术:
计数式、双积分转换
逐次逼近式转换
并联式转换 - 采样保持只是保证信号一段时间内不变,量化编码才是转化中最重要的部分。
- STM32在片上集成的ADC外设非常强大,12位ADC是一种逐次逼近型模数转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。
- ADC的转换结果是12位,最后存储在16位的寄存器中:(这些都是需要自己初始化的)
左对齐:12位的最高位是寄存器的最高位,低四位没有数据;
右对齐:12位的最低位是寄存器的最低位,高四位没数据。 - 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。
2:STM32的ADC功能及结构
- STM32F103RB系列产品内嵌2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,可以实现单次或扫描转换。
- ADC的分辨率为12位;供电为2.4~3.6V;输入范围为0~3.6V(VREF-≤VIN≤VREF+);转换时间是可编程的,采样一次至少要用14个ADC时钟周期,而ADC的时钟频率最高为14MHz,也就是说它的采样时间最短为1us,足以胜任中、低频数字示波器的采样工作。
(1)具体功能
1)规则转换和注入转换均有外部触发选型;
2)在规则通道转换期间,可以产生DMA(直接存储器存取)请求;(由于转化后的12位数据一般存储在ADC的寄存器中,转化后可以直接用DMA直接存储到存储器中),注入转换不允许产生DMA请求。
3)自校准,在每次ADC开始转换前进行一次自校准;
4)通道采样间隔时间:可编程;
5)带内嵌数据一致性的数据对齐;(12位存储到16位的寄存器,我们需要设置左对齐还是右对齐)
6)可设置成单次、连续、扫描、间断模式;
7)双ADC模式,带2个ADC设备ADC1和ADC2;
8)规则转换结束、注入转换结束和发生模拟看门狗事件(输入电压超出阈值)时产生中断。
(2)硬件结构
- 1)模拟信号通道。 共有18个通道(可以看作输入的引脚,可以检测的源),可测16个外部信号源和2个内部信号源。其中16个外部通道对应ADCx_IN0到ADCx_IN15;2个内部通道连接到温度传感器和内部参考电压( V R E F I N T = 1.2 V V_{REFINT}=1.2V VREFINT=1.2V)。
- 2)A/D转换器。转换原理为逐次逼近型A/D转换,分为注入通道和规则通道。每个通道都有相应的触发电路,注入通道的触发电路为注入组,规则通道的触发电路为规则组;每个通道也有相应的转换结果寄存器,分别称为规则通道数据寄存器和注入通道