news 2026/9/3 5:32:11

【ADC控制器原理】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【ADC控制器原理】

参考电压

分辨率

分辨率是ADC能够区分的最小电平的大小,分辨率通常以位数表示,例如:8位ADC、10位ADC、12位ADC等等,可以通过ADC_CR1.RES位进行配置。

输入通道

ADC通道指的是将模拟信号输入到ADC控制器的单个输入路径或者是信号通道,通常,一个ADC控制器可以具有多个输入通道,每个通道都可以连接到一个模拟信号源。

STM32F407上有三个ADC

外部通道:每个ADC控制器都有16个,来自外部的GPIO端口。

内部通道:只有ADC1控制器具有,有3个内部通道,通道16连接的是芯片内部的温度传感器;通道17连接的是芯片内部的参考电压;通道18连接的是电池或者是其它电源采集VBAT通道。

通过ADC通道进行输入的模拟电压的范围,VREF-≤ VIN ≤VREF

转换序列

当多个ADC 通道,以任意顺序进行转换时,就有了转换序列的概念。既然是序列,那么就有长度和顺序。长度:指的就是我们需要转换的通道个数;顺序:指的就是想以什么样的顺序转换需要转换的通道。转换序列有两种:规则序列和注入序列。

规则序列

规则转换序列可设置的长度最大为16,从规则序列1(SQ1),到规则序列16(SQ16),长度最大为16,所以,规则序列中最多可以放入16个通道进行转换。规则序列的转换顺序为,从规则序列1(SQ1)开始,依次进行转换,转换的个数就是我们设置的长度。

规则序列的设置

例如我们想转换通道0(IN0)、通道3(IN3)和通道15(IN15)三个通道,并且按照先转换通道3(IN3),再通道0(IN0),最后再转换通道15(IN15)的顺序进行转换,那就根据需要,设置规则序列相关寄存器,具体设置方法如下:

1、设置需要转换的规则序列长度(通过ADC_SQR1.L位)

当规则转换序列的长度设置为3时,规则序列的转换顺序和长度如 下侧图示:

2、为规则序列添加转换通道(通过ADC_SQRx.SQRn位)

ADC_SQRx寄存器有三个,ADC_SQR1、ADC_SQR2、ADC_SQR3,由于给规则序列添加需要转换的通道。

ADC_SQR3寄存器用于为规则序列1(SQ1)到序列6(SQ6)设置转换通道。

ADC_SQR2寄存器用于为规则序列7(SQ7)到序列12(SQ12)设置转换通道。

ADC_SQR1寄存器用于为序列13(SQ13)到序列16(SQ16)设置转换通道。

注入序列

注入序列的长度最大为4,从注入序列1(JSQ1),到注入序列4(JSQ4),长度最大为4,所以,注入序列中最多可以放入4个通道进行转换。注入序列的转换顺序与设置的注入序列长度有关。

注入序列的设置

例如我们想转换通道0(IN0)、通道3(IN3)和通道15(IN15)三个通道,并且按照先转换通道3(IN3),再通道0(IN0),最后再转换通道15(IN15)的顺序进行转换,那就根据需要,设置规则序列相关寄存器,具体设置如下:

1、注入序列的转换长度由ADC_JSQR.JL位设置

通过ADC_JSQR.JL位,设置注入序列转换长度为3。

2、为注入序列添加转换通道,由ADC_JSRQ.JSQx位设置

ADC_JSRQ.JSQ4位用于给注入序列4_JSQ4添加转换的通道

ADC_JSRQ.JSQ3位用于给注入序列3_JSQ3添加转换的通道

ADC_JSRQ.JSQ2位用于给注入序列2_JSQ2添加转换的通道

ADC_JSRQ.JSQ1位用于给注入序列1_JSQ1添加转换的通道

转换触发源

软件触发

规则序列的软件触发:当ADC控制器被使能后,若ADC_CR2.SWSTART位被写入1时,即可触发开始对规则序列中的通道进行转换。转换一旦开始,ADC_CR2.SWSTART位将会被控制器清0。

注入序列的软件触发:当ADC控制器被使能后,若ADC_CR2.JSWSTART位被写入1时,即可触发开始对注入序列中的通道进行转换。当转换开始时,ADC_CR2.JSWSTART位将会被控制器清0。

ADC控制器使能:简单来说就是给ADC控制器上电,通过向ADC_CR2.ADON位写1,即可上电ADC。

事件触发

外部触发转换,可以通过外部事件(例如,定时器捕获、EXTI中断线)触发转换,事件源可以通过ADC_CR2.EXTSEL(规则序列外部事件源选择)和ADC_CR2.JEXTSE(注入序列外部事件源选择)位进行选择。外部事件能够以所选的极性(上升沿、下降沿、上升和下降沿)触发转换。

注入序列存在的意义?

特性触发注入模式自动注入模式 (连续转换)
JAUTO 位状态0 (必须)1 (必须)
触发方式外部触发 / 软件触发规则通道完成后自动触发
连续转换❌ 不支持✅ 支持 (配合 CONT=1)
典型应用事件驱动型采样周期性规则 + 注入采样
数据处理每次触发后处理一次连续数据流,需 DMA 或中断处理

转换时间

ADC时钟

ADC外设挂载在APB2外设时钟总线上。ADC具有两个时钟,其来源都是APB2。

ADC的时钟1:用于模拟电路的时钟ADCCLK

此时钟决定了ADC通道的采样和转换的时间,此时钟来自于经可编程预分频器分频的APB2时钟,该分频器允许ADC在fpclk/2、fpclk/4、fpclk/6或fpclk/8下进行工作,分频器系数的选择可由ADC_CCR.ADCPRE位进行选择。但是需要注意的一点是:ADCCLK被允许的最大频率36MHz。

ADC的时钟2:用于数字接口的时钟

此时钟用于ADC控制器寄存器的读/写访问,此时钟等效APB2的时钟

可独立设置各通道的采样时间

扫描模式和非扫描模式

扫描模式的含义:

ADC 扫描模式是一种连续对多个输入通道进行转换的模式,这种模式下,ADC 会按照预先定义的顺序对多个输入通道轮流进行转换。

如果设置的序列长度大于1时,则为多通道转换,就需要使用扫描模式。

如果序列的长度为1时,则是单通道转换,单通道转换则不需要开启扫描模式。

注意:如果关闭了扫描模式,即使序列设置的长度大于1,ADC 仍然按照单通道进行转换。

扫描模式和非扫描模式的切换:

ADC的扫描模式和非扫描模式,由ADC_CR1.SCAN位进行控制ADC_CR1.SCAN= 0,禁止扫描模式,也就是使用非扫描模式ADC_CR1.SCAN= 1,使能扫描模式,也就是使用扫描模式。

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

连续转换模式的含义:

连续转换模式,指的是ADC 按照序列设置的长度,完成一次序列的转换后,回到序列头开始新一轮的转换。

注意:触发注入无法进行连续转换,注入序列想要连续转换的唯一例外情况是使用自动注入,将注入序列配置为在规则序列之后,自动转换。

单次转换模式的含义:

ADC 的单次转换模式,是指ADC 按照序列设置的长度,完成一次序列的转换后,ADC 停止。

数据寄存器和数据对齐

数据寄存器

数据寄存器有两类:一类是规则数据寄存器ADC_DR,另一类就是注入数据寄存器ADC_JDRx(x为1到4)。

规则数据寄存器只有一个,有效长度是16bit,用于存储规则序列中完成转换的通道的数据。规则序列中,设置的所有需要转换的通道,共用一个数据寄存器ADC_DR。

注入数据寄存器则有四个,有效长度是16bit,ADC_JDR1、ADC_JDR2、ADC_JDR3、ADC_JDR4,用于存储注入序列中通道的转换结果。ADC_JDRx中存储的数据与注入序列转换的先后顺序有关,ADC_JDR1用于存储注入序列中的第一个转换,ADC_JDR2用于存储注入序列中的二个转换,以此类推。

数据对齐

数据对齐,其实就是ADC 转换完成的结果,在数据寄存器中的存储方式,对齐方式有两种:左对齐和右对齐。数据寄存器的有效位是16 位,但是,ADC 转换出来的数字量实际占用的位数与分辨率有关,比如12 位ADC,只需要使用12位0和1的组合进行表示,12 位的数据,存储到16 位的数据寄存器中,也就规定了两种存储方式。一般常使用右对齐。

状态寄存器

模拟看门狗

各种模式组合

单次转换模式+非扫描模式

连续转换模式+非扫描模式

注意:触发注入无法进行连续转换,注入序列仅在自动注入模式下,可进行连续转换。

单次转换模式+扫描模式

连续转换模式+扫描模式

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 0:23:15

基于VUE的奶茶点单系统[VUE]-计算机毕业设计源码+LW文档

摘要:随着奶茶消费市场的不断扩大,高效便捷的点单系统成为提升奶茶店运营效率和顾客体验的关键。本文设计并实现了一个基于VUE框架的奶茶点单系统。该系统涵盖了系统用户管理、奶茶管理、订单管理、订单查询等功能模块。通过VUE的前端优势,打…

作者头像 李华
网站建设 2026/9/2 22:35:20

医疗 AI 中的隐私防线:如何构建零信任架构保护患者数据

第一章:医疗 AI 中隐私保护的挑战与演进随着人工智能在医疗领域的深入应用,患者数据的敏感性使得隐私保护成为技术发展的核心议题。医疗 AI 系统依赖大量个人健康信息进行训练和推理,包括电子病历、影像数据和基因组信息,这些数据…

作者头像 李华
网站建设 2026/9/2 23:59:41

惠普电脑战全系列官方恢复出厂系统镜像HP Cloud Recovery Tool及教程

1.先下载资源,资源网站www.91xitong.cn.打开后找到自己品牌型号的电脑系统,下载2.准备一个32G的u盘,然后将下载好的资源复制到U盘里3.开始装机,电脑重启狂按f9进U盘装机4.选择U盘启动,然后回车进U盘装机选择简体中文&a…

作者头像 李华
网站建设 2026/9/2 19:52:11

​九科信息企业自动化智能体,让AI落地为生产力

在企业数智化转型的关键阶段,AI技术如何从概念走向实用,成为衡量转型成效的核心标准。九科信息推出的企业自动化智能体,以“RPA大模型”为核心技术架构,构建动态决策闭环,激活企业既有数字化资产价值,为降本增效提供切实可行的解决方案。RPA大模型筑牢智能执行根基传统自动化工…

作者头像 李华
网站建设 2026/9/3 1:51:11

Job 对应的 Pod 运行成功后未被删除 小结

在 Kubernetes 中,Job 对应的 Pod 运行成功后未被删除、且挂载了存储卷的情况下,会明确占用集群资源,具体影响分维度说明,并给出清理和优化方案: 一、核心资源占用分析资源类型是否占用具体影响节点磁盘/存储✅ 是挂载…

作者头像 李华
网站建设 2026/9/2 9:45:19

从原始数据到功能注释,生物信息Agent全流程解析,彻底搞懂序列分析链

第一章:生物信息Agent的核心概念与架构设计生物信息Agent是一种面向生物数据处理与智能分析的自主计算实体,具备感知、推理、学习和执行能力,广泛应用于基因组学、蛋白质结构预测及药物发现等领域。其核心在于将传统生物信息学流程与人工智能…

作者头像 李华