10.2[ADC]ADC 模块的结构框图-嵌入式铁头山羊STM32笔记

将 ADC 外设展开,上图为 ADC 内部结构框图

目录

1.ADC的多路复用

多路复用对应上图(ADC 内部框图)中的红框部分,多个通道复用一个 ADC。

上图为之前学过的逐次逼近型 ADC,采样保持比较,比较过程类似天平增删砝码称重的过程。

组成:比较器(天平),模拟信号(重物),采样保持电路(重物托盘),结果寄存器(砝码),电压发生器(砝码托盘)。

采样保持电路:闭合开关,采样一个点,电容充电,电容两端电压等于模拟信号两端电压;断开开关,保持当前电压(比较器虚断,开关开路电容无法放电)。

将开关和模拟信号画到最左边,

将整个采样保持电路部分,用五边形的框来表示

如上图所示,可以表示为,采样开关+剩余部分电路

采样转换过程:左边输入模拟信号,闭合开关采样,断开开关保持,将模拟电压信号转为数字信号(12 位二进制数),将转换结果存储到结果寄存器。我们只需要从结果寄存器读取数据即可。

Q: 多路模拟信号如何转换,过程是怎样的呢?

A:采样开关复制很多份,给每一路模拟信号后都装采样开关,然后统一连接 ADC。

转换流程:闭合模拟信号 1 的开关,断开模拟信号 1 的开关,读取结果寄存器,闭合模拟信号 2 的开关,断开模拟信号 2 的开关,读取结果寄存器,,,以此类推。

可以看到,上图 ADC 内部框图的红框位置,有很多那样的开关。

通道 0-9,对应 MCU 上的 10 个 IO 引脚,可以外接 10 个模拟信号输入。

温度计和参考电压后期再讲。

上图为 MCU 上的十个通道引脚示意图,绿底标记。

Q:ADC 模拟信号输入有通道 0-9,14,15,那 10-13 去哪里了?

将 ADC 引脚分布表,摘出来

A: 可以看到, STM32F103C8T6 引脚:PA0-PA15;PB0-PB15;PC13-PC15;PD0-PD1。没有 PC0-PC3,所以也就没有 ADC 模拟信号输入通道 IN10-13

2.常规序列

https://www.bilibili.com/video/BV11X4y1j7si?t=732.7&p=50

如上图所示, ADC 内部框图上半部分蓝框为常规序列部分。

把上图常规序列部分摘录出来。

Q:什么是常规序列

A:ADC 模块的一个计划,用来控制 ADC 通道闭合的顺序和时间

闭合开关的先后顺序、闭合时间,都是根据这个计划(常规序列)来指定的。

16:表示 16 项计划(16 个模拟输入信号通道)。

左下角为示例计划表:先闭合通道 7 开关采样,保持 0.1us;再闭合通道 8 开关,保持 0.2us;再闭合通道 9 开关,保持 0.1us。

左上角为外部触发信号:这个触发为常规序列的启动信号。每来一个上升沿,常规序列就执行一遍。

外部触发的梯形结构为复用器。

外部触发来源:6 种定时器,EXTI1(外部中断),软件启动

通过一个示例看下常规序列如何工作的:

按上图设置:向常规序列填计划(第一个通道 7 采样 0.1us,第二个通道 8 采样 0.2us,第三个通道 9 采样 0.1us)

使用定时器 3,TIM3_TRG0

配置定时器 3 时基单元和从模式控制器。

时基单元:假设输入时钟频率 72MHZ,PSC 设置 71,可得 CNT 的输入为 1us。ARR 设置为 999,可得周期为 1000 * 1us = 1ms。

从模式控制器:TRGO 设置为 update 事件,1ms 输出一个脉冲。将这个信号输入给 ADC 中,这样就可以每 1ms 触发一次外部中断信号。

上图左下角,可以看出每 1ms 触发一次外部中断信号上升沿,常规序列就触发一遍。黄色为闭合时间(0.1us,0.2us,0.1us)

3.注入序列

https://www.bilibili.com/video/BV11X4y1j7si?t=1215.4&p=50

注入序列和常规序列类似。

两者区别:

|-------|------|------|
| 区别 | 注入序列 | 常规序列 |
| 通道 | 4 | 16 |
| 结果寄存器 | 单独 | 共有 |
| 优先级 | 注入序列比常规序列更高 ||

4.例子

https://www.bilibili.com/video/BV11X4y1j7si?t=1330.3&p=50

模拟信号输入:上图左下角五路输入

常规序列配置:ch0,ch1,ch2,三个计划。外部触发信号选择 TIM3_TRGO,1us 脉冲

注入序列配置:ch3,ch4,两个计划。外部触发信号选择软件启动。

执行过程:第一个脉冲到来,常规序列执行一次。第二个脉冲到来,常规序列执行,执行到 ch1 时,脉冲触发注入序列后,暂停 ch1 执行,先执行 ch3 和 ch4,转换结束后再继续转换 ch1 和 ch2。第三个脉冲到来,常规序列执行一次。

总结

简单看了下多路复用(采样保持电路为基础)和常规序列、注入序列,并举了个例子来解释序列的配置和在常规序列和注入序列都有的情况下,触发后的通道执行顺序是怎样的。

相关推荐
EVERSPIN2 小时前
微控制器mcu典型内部结构及MCU微控制器的工作原理
单片机·嵌入式硬件·mcu·微控制器·mcu微控制器
小李做物联网3 小时前
【单片机物联网毕设】基于单片机stm32蓝牙颜色与波长反馈物联网嵌入式项目系统
stm32·单片机·嵌入式硬件·物联网
先知后行。3 小时前
IIC学习
单片机·嵌入式硬件
fanged3 小时前
STM32(1)--Hello
stm32·单片机·嵌入式硬件
zhongvv3 小时前
对单片机C语言指针的一些理解
c语言·数据结构·单片机·指针·汇编语言
2501_927773075 小时前
嵌入式51单片机
单片机·嵌入式硬件·51单片机
恶魔泡泡糖6 小时前
51单片机独立按键
单片机·嵌入式硬件·51单片机
炸膛坦客7 小时前
Cortex-M3-STM32F1 开发:(五十)软件模拟 IIC 和硬件 IIC 的区别,以及软件 IIC 配置步骤及相关函数,以及相关问题
stm32·单片机·嵌入式硬件
清风6666668 小时前
基于单片机的电流电压可调数控电源
单片机·毕业设计·课程设计·期末大作业