前言
学习永无止境!本篇是嵌入式开发之片上外设ADC,从硬件原理到实际应用,深入了解ADC模数转换原理以及相关应用。
注:本文章为学习笔记,部分图片与文字来源于网络/江协科技课程/手册,如侵权请联系!谢谢!
一、ADC概述
1.1 ADC简介
- 定义:ADC(Analog-Digital Converter)模拟数字转换器,可以将连续变化的模拟电压转换为内存中存储的数字变量;
- 转换电压范围:0~3.3V,12位ADC转换结果范围0~4095;
- 功能单元:18个输入通道(16个外部+2个内部),规则组与注入组两个单元,模拟看门狗自动监测电压范围。
1.2 基本结构
- ①参考电压/模拟输入部分:VREF+/-是ADC的参考电压,VDDA/VSSA是供电引脚,一般VREF+接VDDA,VREF-接VSSA;
- ②输入通道:18个输入通道,包括16外部GPIO口(0~15),2个内部(温度采集与参考电压采集);
- ③触发源:注入通道触发源,规则通道触发源,有硬件定时器触发以及外部中断触发或软件出发;
- ④模/数转换器:两组通道,规则组与注入组,规则组是一个一个通道进行转换,而注入组可以一次转换4个通道;
- ⑤时钟源:APB2为72MHZ,而ADCCLK最大14MHZ,所以分频只能6分频(12MHZ)或者8分频(9MHZ);
- ⑥数据寄存器及DMA请求:注入通道寄存器(4*16bit),规则组16bit,模数转换完成除了进入数据寄存器,还可以通过DMA请求进行数据搬运;
- ⑦中断源:规则组转换结束置EOC标志,注入组转换结束置JEOC标志,模拟看门狗超过电压范围置AWD标志;
二、基本工作原理
2.1 逐次逼近型ADC(以ADC0809为例)
STM32使用ADC是逐次逼近型,以下以ADC0809模数转换芯片原理进行类比说明相关原理。
- ①供电电压与参考电压:此电压决定输入电压范围,一般供电VCC与参考VREF+连接,GND与VREF-连接;
- ②ADC时钟:内部模电转换一步一步推进需要时钟源;
- ③输入通道选择:通过通道选择开关进行通道选择;
- ④触发信号:给一个脉冲开始触发转换;
- ⑤模数转换:逐次逼近型,电压比较器输入端是待测电压与DAC输出端,通过比较大小输出高低电平,从而调节DAC(加权电阻网络)输出与输入电压近似相等的电压,这样DAC的输入数据就是外部电压的编码数据,整个电压调节过程由逐次逼近SAR寄存器完成;
- ⑥EOC:End Of Convert,转换结束。