嵌入式铁头山羊stm32-SAR型ADC模块介绍、采样时间、转换时间-Day24

发布于:2025-09-05 ⋅ 阅读:(23) ⋅ 点赞:(0)

目录

一、SAR-ADC

1.ADC是什么

2.单片机里的ADC模块

3.采样深度

4.逐次逼进型ADC

5.采样保持电路

6.例子

7.扩展介绍

二、ADC的整体结构(前面只是讲了ADC的结构里面的一部分)

1.ADC的多路复用

2.常规序列

3.注入序列

三、ADC的采样时间和转换时间

1.ADC的时钟频率

2.转换时间的计算方法

3.采样时间和信号源内阻的关系

4.信号源内阻的计算方法

5.采样时间的计算方法


一、SAR-ADC

1.ADC是什么

广义ADC,其实就是把自然界连续的信号转为计算机可存储的离散的数字信号

狭义ADC,是把电压信号转为离散的数字去存储下来

模拟信号的时间连续表示的是任意时间(不管是几分几秒几毫秒等等)下都记录着值,同理幅度连续也是表示其纵轴的值的精度无限大。

2.单片机里的ADC模块

3.采样深度

12位:采样深度为12位


采样深度:用多少二进制位来存储数字


简单来说就是采样深度越大,转换后的值越精确

为啥深度越大,转换的越精确


如下:4位ADC,0-1111,共16个数,即0-15,0对应0V,1111对应3.3V,那每两数之间对应的电压是多少?即16个数对应的15个间隔下的各自的电压宽度,那就是把3.3进行15等分.


那用这16个数的15个间隔去平均存放等同的电压值,即如果是0-3.3V电压的话就是0.22V。

那2V的电压经过ADC转换后(转换时就是x个0.22V,最近的不高于2V的是1.98(即2V/0.22V=9,即二进制的1001b))为1.98V,(数字化)量化后的误差为0.02V


但是12位的就不同了,其存储的位置多,既而间隔有2的12次-1,既而得到的电压分辨率是更小的值,那也就是说其精度更高了,所以其量化误差更小

注意:采样深度  和    常规序列或注入序列的寄存器的位数    没有多大关联,也别搞混了


采样深度是数据用多少位表示,用的这个位数也决定了ADC 本身的精度(能分多细的电压间隔)。


而常规/注入序列的寄存器是最后存储结果的地方,默认是固定的16位

但是采样深度  和  逐次逼近型ADC内部的结果寄存器是有关联的


比如4位的寄存器,分辨率是0.22V,那对于2V的电压,其表示为:x个0.22V,这里最接近的就是9。换成二进制就是1001,那这个也表示结果寄存器的b0和b3都为1,另外两个都为0。

又由第6小节里面讲的,2V刚好为b3的1.76V+b0的0.22V


所以转换后的电压结果的求法:

一个方法是对多位进行逐次逼近的累加去得到结果寄存器的结果码,然后结果码对应的值为1的地方进行电压值的相加,参考下面第6节(这是SAR-ADC的底层本质)


另一个方法是采用计算的方法得到结果码,而不是累加:

结果码*分辨率 (但是其中结果码是由:输入电压//分辨率得到最接近的小于输入电压的值,注意这里是取整,因为不仅代表是第几份电压,以及也要将其转为二进制)


---但是第二种只是计算方法,并不是SAR-ADC的底层,这个只能用来便捷计算,底层还是逐次逼近的累加


而且这两个方法的结果也可以进行二进制上的转换(比如你算的除后的值为9,转为二进制是1001,将其乘分辨率,那就等价于逐次逼近法的取b0砝码的重量 +  b3砝码的重量)

特别特别注意:ADC的寄存器里面(不管是SAR-ADC内部的结果寄存器还是DR,JDR存的都是)存的统一都是输入电压的结果码,也叫量化值,而不是量化电压(即转换后的电压值,这个值一般和实际的输入电压有些量化误差,并且它不是 ADC 真的输出的,而是你用数字码 反推得到的“最接近的电压值。)

4.逐次逼进型ADC

5.采样保持电路

采样:从连续的模拟信号得到想要的某个点的电压

方法:闭合电路开关,既而快速给电容充电,冲到后面当电容逐渐平稳到想要的电压时,就达到采样的目的了。

所以采样时间就是该电路闭合的时间


保持:进行比较的时候,另一短是要逐次逼近的,所以需要时间,这个时间下需要左边的电压保持恒定,就像天平上的这一端,需要他保持电压不变

方法:当采样后得到逐渐平稳的想要的电压后,断开开关,此时左边电容不能放电,右边的比较器常常处于断路的情况,所以电容放不了电,处于恒定的电压

6.例子

如何选取砝码去匹配到2.21V.从大往小选,选择为1,不选为0


7.扩展介绍

1. 运算放大器(Op-Amp)

运算放大器是一种高增益电子器件,常用于信号放大、滤波、比较、积分等。

1.1 高速运算放大器

  • 普通运放响应速度有限(比如音频信号够用了)。

  • 高速运放强调响应快、带宽大、转换速度快,可以处理高频信号(比如几十 MHz)。

  • 比较器常常就是在高速运放的基础上,去掉一些稳定性设计,专门用来比较电压大小

2. 比较器的本质

比较器和运放长得像,也有“+”(同相输入)和“–”(反相输入)。

  • 作用:判断 V+V– 的大小,输出高/低电平。

  • 电气特性:

    • 输入端阻抗很高 → 几乎不吃电流(所以接在前级电路上不会形成明显负担)。

    • 输出是强驱动电平(0 或 1),不是连续变化的电压。

3. “电流流不流”的问题

你问的重点在这里 

  • 比较器输入端 → 阻抗极高,几乎不流电流,就像断路一样,这就是“虚断”。

  • 比较器内部 → 当然有电流流动(半导体内部电路工作),但对外界来说等效成没有电流吸收。

  • 所以你接信号到比较器输入时,可以理解成“不会被吸走电流”,也就是对外近似断路

4. 虚短 vs 虚断

这是经典运放概念:

  • 虚断:运放输入阻抗无限大 → 输入端不流电流。

  • 虚短:在负反馈条件下,运放会自动调节输出,让 V+ ≈ V–

对比:

  • 比较器:开环工作,没有负反馈,所以只有虚断,没有虚短

  • 运放做放大器(比如接电阻网络):有负反馈,才有虚短。

5. 负反馈是啥?

反馈就是把输出的一部分接回输入。

  • 正反馈:输出推着输入往同一个方向走 → 会导致震荡、触发(锁存器、振荡器用)。

  • 负反馈:输出推着输入往相反方向走 → 运放会自动调节,使输入两端电压几乎相等(虚短)。

例子:

  • 不带反馈的比较器:只会直接比较大小。

  • 带负反馈的运放:可以稳稳输出一个比例放大的电压。

6. 整体逻辑总结

  1. 运放:高增益器件,用来放大信号;高速运放可以处理高频。

  2. 比较器:基于运放结构,专门比较电压大小,输入阻抗高(虚断),输出只有高/低。

  3. 电流问题:输入端几乎不流电流,对外表现像断路。

  4. 虚短/虚断

    • 虚断 = 输入阻抗高 → 电流 ≈ 0(比较器、运放都满足)。

    • 虚短 = 负反馈下的运放才有,比较器没有。

  5. 负反馈:让运放“自我调节”,保证输入电压差几乎为零,从而实现稳定放大。

1. 什么是反馈?

反馈 = 把输出的一部分接回输入
好比:一个人说话,声音传到山谷,又被反射回来(回声),这就是一种“反馈”。

  • 如果回声 和你声音同方向加强 → 声音越来越大(正反馈)。

  • 如果回声 和你声音相反,抵消掉一部分 → 声音变小,更稳定(负反馈)。


2. 正反馈(推着同方向走)

  • 定义:输出的变化,会让输入端往同一个方向变化。

  • 结果:变化越来越大,容易失控。

  • 应用:

    • 锁存器(一旦触发就保持状态),

    • 振荡器(不断震荡产生方波/正弦波)。

👉 比喻:
好比你在秋千上推别人,秋千往前,你也继续往前推 → 越荡越高。


3. 负反馈(推着反方向走)

  • 定义:输出的变化,会让输入端往反方向变化。

  • 结果:系统会自我调节,保持稳定。

  • 应用:

    • 运放放大器(能稳定输出某个电压),

    • 控制系统(比如空调恒温)。

👉 比喻:
你拿着水龙头,水流大了,你就拧小点;水流小了,你就拧大点 → 总能保持恒定的水流。


4. 在运放里怎么体现?

开环(没有反馈)

  • 运放输出只会疯狂往正饱和或负饱和跑(几乎就是比较器的工作方式)。

有负反馈

  • 运放会“努力”让 V+ ≈ V–,因为只要有点差,它就会调整输出去抵消。

  • 这就是“虚短”现象。


5. 一句话总结

  • 正反馈 = 输出顺着输入推 → 越推越大 → 振荡/触发。

  • 负反馈 = 输出顶着输入推 → 越推越稳 → 稳定放大。

二、ADC的整体结构(前面只是讲了ADC的结构里面的一部分)

1.ADC的多路复用

上图是从前面学的ADC的一部分:单路,将这个单路的输入部分(带开关的)提出来,从形成了一个简化版的单路情况,其输入的信号,由开关控制输入

多路信号的执行顺序:

将单路扩展为多路,当多路信号复用的时候,依次先将模拟信号x输入然后转换,并将结果进行保存;之后再进行下一个模拟信号的操作。


这里的结构图里面只写到引脚IN9,是因为后面的几个引脚当前单片机不支持


2.常规序列

简单来说:这个常规序列就是定义了转换的规则

该序列主要存放了转换的各通道的序号和各通道的采样时间(即各通道的开关闭合的时间)

常规序列的实现步骤:

1.当外部触发 产生输入信号时,即产生一个触发输入的上升信号,即上升沿

2.那就执行一次常规序列里面的清单,即一次上升沿的信号就要触发通道7,通道8,通道9的依次转换


注意:常规序列的记录数是16个记录,而注入序列的记录数最多是4个记录


3.注入序列

尤其注意这个优先级更高,即同是输入的情况下,当注入序列的通道被打开,优先执行注入序列的任务,他执行完了,常规序列才能执行

三、ADC的采样时间和转换时间

总结来说就是:


采样时间:主要是需要信号源的内阻,因为信号源内阻越大,电流越小,电容充电越慢


转换时间:ADC位数*cycle+0.5cycle;//因为是要一位位的逼近比较所以需要位数


在求取ADC内部的模数转化的时间是:采样时间+转换时间

而直接想要求转换后的电压值:就在配置常规序列或注入序列的时候会用到采样时间,转换时间是不会用到的

1.ADC的时钟频率

ADC的时钟频率等于 PCLK2经过分频得到的频率


根据官方的操作手册,ADC的时钟频率必须小于14MHz,所以这里选择6分频下的12MHz,当然8分频也行。


2.转换时间的计算方法

其实就是位数*cycle+0.5*cycle


默认使用的是12位的结构寄存器,比较的时候需要对每位(每个砝码)都分别用来进行比较,每个比较都默认的消耗一个周期(cycle),所以总共是12cycle+0.5cycle(规定的)=12.5cycle


3.采样时间和信号源内阻的关系

首先一个知识是采样时间是和信号源的内阻有关的 


结论是:信号源内阻越大,电流传输越慢(因为降压了),充电越慢

4.信号源内阻的计算方法

这里以一个光敏传感器为例,举例怎么计算这个传感器的内阻


首先先画出其标准的电路图

之后根据其电路图画成一个线性二端网络

之后根据定理得到的电源电压和电源的内阻

电源归0

线性二端网络 = 由线性元件组成,对外只有两个端口的电路黑盒子


1. 什么叫“二端网络”?

  • 二端网络就是对外只有两个引脚(端口)的电路。

  • 不管里面多复杂(有电阻、电容、电感、电源等),对外就表现为“一个黑盒子”,外界只能通过这两个端子施加电压、流过电流。

👉 常见例子:一个电阻、一个电容、一个电感,甚至一个复杂滤波电路,只要对外只有两个端点,它就是二端网络。


2. 什么叫“线性”?

  • “线性”是指电路元件满足 叠加原理(输入和输出成线性关系)。

  • 对于电路来说,意味着 电压、电流关系符合欧姆定律、线性微分方程

  • 线性元件:电阻、电感、电容、理想独立源、受控源。

  • 非线性元件:二极管、三极管、MOS 管、开关等。


3. 什么是“线性二端网络”?

定义:由线性元件构成的,只对外表现为两个端口的电路。

  • 特点:外部电压与电流关系是线性的,可以用电阻、电压源、电流源等等效表示。

  • 常见分析工具:

    • 戴维南定理(等效为电压源 + 电阻)

    • 诺顿定理(等效为电流源 + 电阻)

👉 所以,“线性二端网络”就是一个“对外只有两根线的线性电路黑盒子”。


5.采样时间的计算方法

根据ADC手册公式得到其他标准参数,主要是要获取信号源的内阻


网站公告

今日签到

点亮在社区的每一天
去签到