stm32F407学习DAY.27 ADC

一、基本原理

1、并联比较型

精度低,功耗大

转换速度快

2、逐次逼近型

功耗低,结构简单

速度慢

二、特性参数

1、分辨率

ADC能辨别的最小模拟量,以二进制位数表示,如8、10、12、16

假设AD是12位,测量3.3V的电压,可分辨3.3/4096≈0.0008V

2、转换时间

完成一次AD转换所需要的时间,时间越短,采样率越高

1s内,假设转换时间为200ms,可转换5次;转换时间100ms,可转换10次

3、精度

最小刻度基础上,叠加误差影响的参数(受ADC性能、温度、气压等影响)

4、量化误差

用数字量近似表示模拟量,会出现无法完全覆盖的情况,四舍五入后,与实际值的差就是量化误差

三、STM32F1/4的ADC特点

四、框图(以F4为例)与工作原理

1、参考电压/模拟部分电压

1)框图

2)原理

2、通道

1)框图

外部:16个通道,通过GPIO复用

内部:3个,温度传感器、参考电压、电池电压(F1只有2个,无VBAT)

2)原理

3、转换序列

1)框图

利用注入通道和规则通道进行分组

2)原理

注入组可以打断规则组的转换

3个规则序列寄存器:SQR1 2 3

注入通道寄存器:1个 JSQR

假设转化2个通道,JL设定成1(∵取值0-3代表1-4个通道),x=4-1=3,则注入序列的转换顺序是从JSQ3开始的;假设第一个要转换的通道是15,第二个要转换的通道是10,将15写入JSQ3,10写入JSQ4

快速记忆:转换n个,就从寄存器4-n+1开始转换

4、触发源

1)框图

分为注入组和规则组,常用规则组

先将EXTEN控制使能位置1,再通过EXTSEL选择触发源

2)原理

触发转换方式:

a.ADON位触发转换(仅限F1,少用)

当ADC_CR2寄存器的ADON位=1,在单独给ADON位写1,会触发规则组转换

b.外部事件触发转换:规则组、触发组

F1:

F4:

5、转换时间

1)框图

2)原理

设置ADC时钟

F1:ADC挂载在APB2上 APB2时钟最大为主频的1/2

ADC转换时间:Tconv=采样时间+12.5个周期(F4为+12个周期)

(F4)

采样时间通过SMPRx寄存器设置

6、数据寄存器

1)框图

规则组只有一个16位数据寄存器,可通过DMA将数据存入SRAM中

注入组有4个16位数据寄存器

2)原理

F1:

∵对F1来说,ADC为12位,寄存器有16个位,需要利用ADCx_CR2寄存器的ALIGN,位选择左对齐、右对齐,一般选右对齐

F4:

7、中断

1)框图

数据存入内存后,产生转换结束标志位,若开启中断使能位(将某中断位置1),就会产生ADC中断

2)原理

若使能控制位,会产生中断到NVIC

DMA请求只适用于规则组

8、单次转换模式和连续转换模式

通过CONT位设置

9、扫描模式

相关推荐
Orange_sparkle4 小时前
learn claude code学习记录-S02
java·python·学习
小郑加油4 小时前
python学习Day1:python的安装与环境搭载
python·学习·小白记录,保姆式教程
senijusene4 小时前
i.MX6ULL 裸机 ECSPI 驱动开发详解:
arm开发·驱动开发·嵌入式硬件
Tomhex4 小时前
ARMv7与Cortex-M3关系解析
stm32
傻童:CPU5 小时前
stm32程序的启动过程
stm32
CheerWWW5 小时前
C++学习笔记——栈内存与堆内存、宏、auto、std::array
c++·笔记·学习
知识分享小能手5 小时前
MongoDB入门学习教程,从入门到精通,在生产环境中设置MongoDB(21)
数据库·学习·mongodb
L.fountain5 小时前
图像自回归生成(Auto-regressive image generation)实战学习(六)
学习·数据挖掘·回归
weixin_443478515 小时前
Flutter组件学习之图表
学习·flutter·信息可视化