1. ADC介绍

1.1什么是ADC?

全称:Analog-to-Digital Converter,指模拟/数字转换器。

ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。

12 位 ADC 是一种逐次逼近型模拟数字转换器(0~4095)。它有多达 18 个通道,可测量 16 个外部和 2 个 内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。 ADC 的结果可以左对齐或右对齐 方式存储在 16 位数据寄存器中。

模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。

ADC 的输入时钟不得超过 14MHz,它是由 PCLK2 经分频产生。

STM32F103C8T6 ADC资源:ADC1、ADC2,10 个外部输入通道

1.2 ADC工作原理(逐次逼近型)

1.3 ADC特性参数

ADC的性能指标

量程:能测量的电压范围

分辨率:ADC能辨别的最小模拟量,通常以输出二进制数的位数表示,比如:8、10、12、16位等;位 数越多,分辨率越高,一般来说分辨率越高,转化时间越长

转化时间(采样时间):从转换开始到获得稳定的数字量输出所需要的时间称为转换时间。转换时间越 长,转换结果相对越准确,但是转换速度就越慢

ADC特性

12 位精度下转换速度可高达1MHZ

供电电压:VSSA :0V,VDDA :2.4V~3.6V

ADC输入范围:VREF- ≤ VIN ≤ VREF+,0~3.3V

ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中

2.ADC框图

3.ADC的一些细节

3.1输入通道

总共 2 个 ADC(ADC1,ADC2),每个 ADC 有 18 个转换通道: 16 个外部通道、 2 个内部通道(温度传感 器、内部参考电压)。

外部的16个通道在转换时又分为规则通道和注入通道,其中规则通道最多有16路,注入通道最多有4路。

3.2 规则组/注入组

3.3转换顺序

每个 ADC 规则通道只有一个数据寄存器,16个通道一起共用这个寄存器,所以需要指定规则转换通道的转 换顺序。

规则通道中的转换顺序由三个寄存器控制:SQR1、SQR2、SQR3,它们都是32位寄存器。SQR寄存器控制 着转换通道的数目和转换顺序,只要在对应的寄存器位SQx中写入相应的通道,这个通道就是第x个转换。

和规则通道转换顺序的控制一样,注入通道的转换也是通过注入寄存器来控制,只不过只有一个JSQR寄存器 来控制,控制关系如下:

注入序列的转换顺序是从JSQx[ 4 : 0 ](x=4-JL[1:0])开始。只有当JL=4的时候,注入通道的转换顺序才会按 照JSQ1、JSQ2、JSQ3、JSQ4的顺序执行。

3.4触发转换方法

1.通过向控制寄存器 ADC-CR2 的 ADON 位写 1 来开启 ADC ,再将 SWSTART 位置 1 ,启动规则通道转换

2.也可以通过外部事件(如定时器)进行转换。

3.5 转换时间

ADC 是挂载在 APB2 总线(PCLK2)上的,经过分频器得到 ADC 时钟(ADCCLK),最高 14 MHz。

转换时间=采样时间+12.5个周期

12.5个周期是固定的,一般我们设置 PCLK2=72M,经过 ADC 预分频器能分频到最大的时钟只能是 12M, 采样周期设置为 1.5 个周期,算出最短的转换时间为 1.17us。

3.6 中断及事件

DMA请求(只适用于规则组)

规则组每个通道转换结束后,除了可以产生中断外,还可以产生DMA请求,我们利用DMA及时把转换好的数 据传输到指定的内存里,防止数据被覆盖。

3.7 校准

ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。在校准期间,在 每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误 差。

通过设置ADC_CR2寄存器的CAL位启动校准。一旦校准结束, CAL位被硬件复位,可以开始正常转换。建议 在上电时执行一次ADC校准。校准阶段结束后,校准码储存在ADC_DR中。

建议在每次上电后执行一次校准。

3.8 单次转换和连续转换

单次转换:只转换一次

连续转换:转换一次之后,立马进行下一次转换

3.9扫描模式

关闭扫描模式:只转换ADC_SQRx或ADC_JSQR选中的第一个通道

打开扫描模式:扫描所有被ADC_SQRx或ADC_JSQR选中的所有通道

3.10ADC存储

ADC1转换的结果放在DR寄存器的低16位

ADC2转化的结果放在DR寄存器的高16位

4.ADC实验

4.1硬件清单:

光敏电阻

4.2光敏电阻

1. ‌工作原理

光电导效应:

当光线照射到光敏电阻(如硫化镉材料)时,半导体中的电子吸收光子能量跃迁至导带,形成电子-空穴对,导致电阻值降低;无光照时电阻恢复高阻状态‌

‌2.硬件设计与应用

分压电路:光敏电阻与固定电阻串联,输出模拟电压信号至MCU的ADC引脚(如STM32的PA0)‌

模块类型:

数字输出(DO):通过比较器输出高低电平,适用于开关控制(如继电器触发)‌

模拟输出(AO):需配合ADC转换,获取精确光照强度值‌

4.3实验1:ADC单通道采集实验

目的:使用 ADC1 采集通道 1 的电压值,通道 1 连接光敏电阻传感器。

代码编写

ADC函数相关代码编写

ADC的时钟经过预分配器得到的所以还要配置时钟

PA1对应ADC1的通道一

主函数编写

串口助手观察实验现象:

用手捂住光敏电阻电压不断升高,拿光照光敏电阻电压不断降低

4.4实验2:ADC单通道采集实验(DMA读取)

目的:使用 ADC1 采集通道 1 的电压值+DMA读取,通道 1 连接光敏电阻传感器。

代码编写

ADC相关函数编写

主函数编写

串口助手观察实验现象:

4.5实验3:ADC多通道采集实验(DMA读取)

目的:使用 ADC1 采集通道 0 ~3 的电压值+DMA读取,通道 1 连接光敏电阻传感器。

代码编写

ADC相关函数编写

主函数编写

串口助手观察实验现象:

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐