一.为什么要使用ADC模拟数字转换器
STM32主要是数字电路,数字电路只有高低电平,没有几V电压的概念,所以如果想要读取电压值,就需要借助ADC模数转化器来实现。可以说ADC是模拟到数字的桥梁,与之相反的是DAC
PS:PWM也是数字到模拟的桥梁,在直流电机调速这种大功率应用场景,选择PWM等效模拟量而非DAC
1.ADC(Analog-Digital Converter)模拟-数字转换器
2.ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁
3 . 12位逐次逼近型ADC,1us转换时间
输入电压范围:0~3.3V,转换结果范围:0~4095(3.3对应4095)
4. 18个输入通道,可测量16个外部和2个内部信号源
5. 规则组和注入组两个转换单元
6. 模拟看门狗自动监测输入电压范围
STM32F103C8T6 ADC资源:ADC1、ADC2,10个外部输入通道
内部信号源:1.内部温度传感器2.内部参考电压(内部基准电压)
10个外部输入通道:10个外部引脚的模拟信号
二.逐次逼近型ADC
参考八个外部输入通道的结构图
三.stm32ADC基本结构
DMA帮助规则组解决数据覆盖的问题
触发ADC转换有两种
1.软件出发,调用代码
2.硬件触发主要是定时器
对于频繁进入中断,并且在中断里只完成简单工作一般有硬件支持
例如:给TIM3 定1ms时间,把TIM3的更新事件选择为TRGO输出,ADC选择开始触发信号为TIM3 的TRGO这样TM3的更新事件就能通过硬件自动触发ADC转换。节省中断资源
四.对应输入通道
ps:stm32f103C8t6的GPIO口只有这些可以进行ADC转换
五.转换模式
单次转换 扫描模式/非扫描模式
连续转化 扫描模式/非扫描模式
六.触发控制
AFIO重映射决定信号来自于引脚还是定时器
七.数据对齐
数据左对齐和数据右对齐
八.转化时间
AD转换的步骤:采样,保持,量化,编码
STM32 ADC的总转换时间为:
TCONV = 采样时间 + 12.5个ADC周期
例如:当ADCCLK=14MHz,采样时间为1.5个ADC周期
TCONV = 1.5 + 12.5 = 14个ADC周期 = 1μs
九.校准
我们只要负责加代码就好
建议在每次上电后执行一次校准,启动校准前, ADC必须处于关电状态超过至少两个ADC时钟周期
如果觉得《stm32学习笔记 ADC模拟数字转换器 ADC模数转化器详解》对你有帮助,请点赞、收藏,并留下你的观点哦!