蓝桥杯嵌入式——ADC介绍

1.初始化配置

ADC的功能:模拟量到数字量的转换,读引脚电压值

STM32G431内部集成2个有最高12位精度ADC(ADC1、ADC2)

可配置的转换精度:6位,8位,10位,12位

12位精度为:0000 0000 0000 ~ 1111 1111 1111,2^12 = 4096

意思是把0 ~ 3.3v分成4096份  一份精度约为0.0008v(电压变换了0.0008v,ADC都能感受到)

转换电压范围: 0 ~ Vref+(一般接到3.3V电源,不能超过STM32芯片电源电压)

Vref一定要小于等于3.3v

19个转换通道:16个外部通道(测量外部IO引脚的电压值) + 3个内部通道(温度传感器、内部电压参考、电池供电监测,测内部电压值)

采样时间可配置 :采的时间越长,精度越高,相反越低

扫描方向可配置:有1,2,3,4,5,6...个通道 可配置先转换哪个通道再转换哪个通道

多种转换模式:单次,连续(可以一次转换多个通道,或者扫描式转换12345,12345通道)

数据存放对齐方式可配置:转换后的数据存到一个寄存器,左对齐,右对齐(ADC的结果存储在一个左对齐或右对齐的 16 位数据寄存器中)

启动转换方式可配置:软件触发,硬件触发

可设置上下门限的模拟看门狗:设置一个上下限,当转换后的结果高于上限或低于下限时就会1发出警报

DMA功能

在转换结束、注入转换结束以及发生模拟看门狗或溢出事件时产生中断(ADC以发生中断的形式告诉CPU转换结束)

2.ADC输入通道

假设在使用时指定一个ADC1或ADC2,初始化IN1(通道1)并把电压接到了PA0上,这时候就能读IN1的电压值

蓝桥杯嵌入式——ADC介绍_第1张图片

考试时可能会考这两个滑动变阻器的电压值,这时候就要通过PB15对应的ADC2的IN15(通道15)和PB12对应的ADC1的IN11(通道11)来求滑变的电压值

蓝桥杯嵌入式——ADC介绍_第2张图片

上一讲的可编程电阻MCP4017则是通过PB14对应IN5来求其电压值

蓝桥杯嵌入式——ADC介绍_第3张图片

3.通道和转换顺序

规则通道:

规则通道,意思就是规规矩矩按照顺序来转换,平时用到的就是这类通道

注入通道(类似中断)

注入可以理解为插队。它是一种在规则通道转换的时候强行插入要转换的一种。这点和中断有点像,当规则通道转换中,有注入通道插队,那么得先转换注入通道的,然后才倒回来转换规则通道。

蓝桥杯嵌入式——ADC介绍_第4张图片

规则通道有四个32位的SQR寄存器,每个SQR寄存器里有四个SQ,总共有16个SQ,每个SQ对应要转换的通道

规则通道按SQ的顺序转换,L里存放的是要转换前几个通道

蓝桥杯嵌入式——ADC介绍_第5张图片

蓝桥杯嵌入式——ADC介绍_第6张图片

注入通道只有四个JSQ,在注入通道里也得按顺序来

蓝桥杯嵌入式——ADC介绍_第7张图片

4.触发源

使用控制寄存器启动时,很简单,为ADON位写1开始转换;写0停止转换。 使用外部事件来触发转换, 这个触发包括内部定时器触发和外部IO触发。

5.转换和采样时间

ADC时钟来源于HCLK,System clock(系统时钟),PLL(锁相环)

采样的时间周期最小是3个,周期 = 1/ADC_CLK,TCONV=3个采样时间周期+12个转换周期(固定),当ADC_CLK=30MHz,那么总的转换时间为:TCONV=3+12=15个周期,一个周期为1/30MHz = 1/30us,1MHz = 1 us 则15个周期为=0.5us。

蓝桥杯嵌入式——ADC介绍_第8张图片

6.数据寄存器

决定对齐方式:左对齐或右对齐

7.模拟看门狗

如果ADC转换的模拟电压低于阈值下限或高于阈值上限,则AWD模拟看门狗状态位会置1

ADC工作模式

1.单次转换模式:

转换数据存储在16位ADC_DR寄存器中

EOC(转换结束)标志置1

EOCIE位置1时将产生中断

2.不连续采样模式

规则组:

示例: n=3(一次转换几个通道),假设要转换的通道为 0、1、2、3、6、7、9、10(L[3:0]=8)

第1次触发:转换序列0、1、2

第2次触发:转换序列3、6、7

第3次触发:转换序列9、10并生成EOC事件

第4次触发:转换序列0、1、2

注入组:

n=1,要转换的通道=1、2、3(JL[1:0]=3)

第1次触发:转换通道1

第2次触发:转换通道2

第3次触发:转换通道3并生成EOC和JEOC事件

第4次触发:通道1

3.连续采样模式

依次触发一直转换下去,转换完了再重头继续转换

笔记来自蚂蚁工厂科技教程

你可能感兴趣的:(单片机,嵌入式硬件)