深入理解STM32 ADC模拟数字转换器和模数转化器

     一.为什么要使用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时钟周期

物联沃分享整理
物联沃-IOTWORD物联网 » 深入理解STM32 ADC模拟数字转换器和模数转化器

发表评论