该文章内容来源于江协助科技,如有侵权,联系删除。
目录:
ADC原理
逐次逼近型ADC
ADC框图介绍
注入通道,规则通道介绍
ADC基本结构:重点
转换模式
数据对齐
内部校准
ADC原理可以将引脚上连续变化模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。
ADC简介:
ADC可以把电压的模拟信号转换为数字信号,存入到寄存器中,是模拟电路到数字电路的桥梁。
DAC 数字量转换为模拟量
分辨率:12位主次逼近型就是2^12-1=4095,
1us转换时间就是1MHZ
18个输入通道,可测量16个外部和2个内部信号源。
外部是GPIO口,内部信号源是内部温度传感器和内部参考电压 。
规则组和注入组两个转换单元
模拟看门狗自动检测输入电压范围。检测某些通道,在中断里进行操作。
逐次逼近型ADC:
ADC0809:
通过通道选中开关就是In0-In7选择一路通道开关,输入进行转换。
地址锁存和译码类似38译码器,就是三条通路可以去选择输入通道比如000,就是选择IN0,ALE为锁存编码,选择好编码就选择好了通道,到比较器上。比较器可以去比较两个电压的大小关系。通过DAC来和通道上的模拟量进行对比,采用二分法。外部位置的电压和已知编码的电压进行比较。直到电压值相等就是外部模拟量的数据。
通过三台锁存缓冲器输出。
EOC:转换结束信号
START: 开始转换信号
CLOCK:ADC时钟,ADC内部是一步步进行转换需要时钟去推动。
VREF+,VREF-:参考电压。就是相当于举例:255为3.3V,0为0v。
ADC框图:
输入通道18路ADCxIN0-ADCxIN15:就是16个IO口,一个温度传感器,一个VREFINT。
注入通道最多4通道,规则通道最多16通道。
模拟至数字转换器就是逐次性逼近比较,值数相同就输出到寄存器中。
由于规则通道数据寄存器只有16位,所以当你传输16个通道你智能存放一个数据在这个寄存器,前面15个就丢失了,所以需要DAM来配合,当你输出一个数据时,通过DMA去搬运出去,然后进行下一个数据比较。DMA可以快速搬运数据,防止覆盖。
注入通道:不用担心数据覆盖。
开始转换:硬件触发
规则通道:可以设置TIM3 定时器1ms触发中断,TTIM3的更新事件到TRGO,
ADC选择TIM3_TRGO就可以触发ADC。
TIM
注入通道:
软件转换:函数接口进行转换。
VREF+和VREF就是最大电压,就是阀值接正负极。
ADCCLK:来源于ADC预分频器,ADCCLK最大14MHZ,选择6分频和8分频。
模拟看门狗,存入最高值和最低值至NVIC。
ADC基本结构:
根据ADC框图得到如图所示结构,
转换模式:
单次转换:选择通道到序列上,通过触发转换,ADC会对通道进行模数转换,转换完成数据放到寄存器中EOC置1。
连续转换非扫描模式:
只需要触发一次可以连续触发下去,不需要等到EOC置1才去寄存器采集数据,想读数据,直接去寄存器里读取
单次转换扫描模式
触发之后进行数据转换,下次转换需要再触发一次。选择通道数目,对通道数目进行转换,通道数目全都转换完成EOC置1
每当1个通道上的数据完成转换,需要通过DMA进行数据搬运。
连续转换,扫描模式
触发控制:
数据对齐:由于数据是12位的,寄存器占16位,需要对数据进行左对齐或右对齐。
左对齐:就是当数据不需要这么大的分辨率就可以数据右移8位就是取D11-D4,高8位。舍弃后面精度,12位退化为8位
右对齐:
ADC转换的步骤:采样、保持、量化、编码。
量化、编码:就是逐次逼近需要花费时间。
采样、保持:由于逐次逼近需要时间,输入的电压在不断变化就逐次逼近就没有意义,所以需要一个采样开关,收集电压,用小容量的电容存储电压,使得输入的模拟量的值没有波动。采样时间越大越能减少毛刺干扰。
Stm32总转换时间为采样时间+12.5个adc周期
当ADCCLK=14MHZ,采样时间为1.5个ADC周期
Tconv=1.5+12.5=14个ADC周期=1.us
校准:
ADC内部有一个自校准模式,校准可以减少内部电容期(存放采样电压)的变化而造成的准精度误差。校准期间,每个电容会计算出一个误差修正码,这个码用于消除在随后的转换中每个电容器产生的误差。
启动校准前,ADC必须处于关电状态,超过两个ADC周期。