IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 通俗理解什么是ADC -> 正文阅读

[嵌入式]通俗理解什么是ADC

通俗理解什么是ADC

学懂,用熟练之后,从头介绍一些概念时,总是比较困难的。很难站在一个什么都不懂的角度去讲明白一个概念。

入之不深,则有浅易之病;出之不显,则有艰涩之患。 ——《湖楼笔谈》

建议看完“什么是ADC”后,去实操ADC采集直流。实操结束后再往后看。

ADC实际没有这么的简单,深入了解需要去学各种寄存器之间如何协作,信号如何走通。这些概念在后面会有讲解。

什么是ADC

我们在高中物理学习时都了解过电压表,在生活中也都见过。红表头、黑表头分别去触碰待测电路两端,就可以测出来这段的分压。如果让黑表头去触碰电源的负极,那么测出来的就是红表头所在的地方的电压。

如果测试点是1V,电压表就显示1V,2V呢就显示2V。可以说他们有如下的对应关系

测试点电压万用表显示的值
0.00V0
1.65V1.65
3.3V3.3

于是我们有了概念:万用表是一种感知电压大小的器件。

ADC也是这样的器件。不过呢ADC不能显示小数,我们以STM32F1单片机12位ADC为例。他只能显示0-4095这些整数。

4095 = ( 1111 ? 1111 ? 1111 ) 二 进 制 = 2 12 ? 1 4095=(1111\ 1111\ 1111)_{二进制}=2^{12}-1 4095=(1111?1111?1111)?=212?1,这就是12位ADC的含义。

那么ADC的电压对应关系就要改一改,没有像电压表一样一一对应。具体关系如下

测试点电压ADC的测试值
0.00V0
1.65V2048
3.3V4095
表1

这个关系如果写成如下公式。

掌握表1对应关系就可以,没必要背公式

A D C 的 返 回 值 = 待 测 电 压 3.3 V ? 4095 ADC的返回值= \frac{待测电压}{3.3V}*4095 ADC=3.3V??4095

比如我用ADC去测量1V的电压,那么ADC返回的数值是 1 3.3 ? 4095 = 1241 \frac{1}{3.3}*4095=1241 3.31??4095=1241,当单片机收到ADC返回的1241,单片机就可以知道待测电压是1V了。

ADC的采样率

采样率这个概念需要在使用中去感受,这里就简单提下,在后续的文章中,我们会对他有更加准确的认识

之前我们都是在讨论用ADC去采集直流电压,比如一个稳定的1V。可是如果我们要采集的是一个在不断变化的信号呢?

比如采集1hz正弦信号。我们可以每1s采集一次,那么完全看不出这个信号的变化和波形;但如果我们每100ms采集一次呢,一个信号周期内就采集了10个点,可以大致看出这个信号的波形;如果我们每1ms,每1us采集一次呢?那么这个信号的波形就完全被我们知道了。

上面的1s,100ms,1us分别对应的是1 sps、10 sps、1M sps采样率。采样率表示的是ADC的采样速度。对于不同ADC,有自己的采样率上限的。比如STM32F103的单个ADC采样率支持1hz-1Mhz。

拿1M采样率去采集1K信号,一个周期有1000个点,效果非常好;但是如果1M去采集1M信号,这和每1s去采集一个1hz信号一样,一个周期1个点,根本看不出波形

常用单位:

? m = 1 0 ? 3 , u = 1 0 ? 6 , n = 1 0 ? 9 m=10^{-3},u=10^{-6},n=10^{-9} m=10?3,u=10?6,n=10?9

? K = 1 0 3 , M = 1 0 6 , G = 1 0 9 K=10^{3}, M=10^{6},G=10^{9} K=103,M=106,G=109

采样位数

这个对于初学者来说,可以忽略。当真的要临选择一款合适的ADC时,再来了解这个。先记住,采样位数越高,电压分辨能力越强(可以简单的认为测得越准)

(下面的讨论均默认采样位数=精度位数)

我们回看表1,一个可以测量0-3.3V的12位ADC。他有如下对于关系:

测试点电压ADC的测试值
0.00V0
1.65V2048
3.3V4095

相当于把0-3.3V等比例划分为了4096份,它的电压分辨能力是 3.3 4096 = 0.0008 V \frac{3.3}{4096}=0.0008V 40963.3?=0.0008V,这是一个什么概念呢?

因为ADC只能返回整数,我们测量0V,ADC返回的是0。我们测量0.0008V,ADC返回的是1。同理,测量0.008V,ADC返回的是10。可是如果我们测量0.0004V呢?他返回的是0,测试结果与测量0V时是一样的。

可以看到12位的ADC是没办法分辨0V和0.0004V,原因在于我们把0-3.3V分成了4096份,这个份数还不够多,要分成8192份。就可以分辨了。 3.3 8192 = 0.0004 V \frac{3.3}{8192}=0.0004V 81923.3?=0.0004V这样的话测量0V测到是0,测量0.0004V得到的是1。

测试点电压ADC的测试值
0.00V0
0.00041
1.65V4096
3.3V8191

上面所提到的4096和8192分别对应着12位ADC,13位ADC。因为 2 12 = 4096 , 2 13 = 8192 2^{12}=4096,2^{13}=8192 212=4096,213=8192

ADC位数反应的是电压的分辨能力。一个24位的ADC能非常灵敏的检测到12位ADC感应不到的电压变动。

采样精度

这个对于初学者来说,可以忽略。默认采样精度和ADC位数基本成正比就行,ADC位数越高,采集的电压越精确。虽然这样说是错的,但是目前阶段够用。——真理的相对性

这个概念经常和采样位数混淆。精度的概念需要有一定的实际操作后才能理解他的含义。

还是拿0-3.3V的12位ADC为例子。如果我们去测量80mv的信号,理论值应该是 0.08 3.3 ? 4096 = 100 \frac{0.08}{3.3}*4096=100 3.30.08??4096=100,可是实际我们测量出来的是95-105波动的,这是因为实际上的ADC不是理想器件,他会有误差。一个12位的ADC虽说能分辨0.0008V的电压,但是他的波动电压有10mv,那么这个分辨能力也就失去了他测得准的意义。

因为测得的电压的波动。通常一个12位的ADC只能当作8-9位的理想ADC来用,8-9位就是ADC的采样精度。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 17:52:21  更:2021-12-01 17:53:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/8 5:13:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码