ADC模数转换器有哪些种类?ADC模数转换器设计!
扫描二维码
随时随地手机看文章
在这篇文章中,小编将为大家带来ADC模数转换器的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。
一、ADC模数转换器分类
1、积分型
积分型AD工作原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。
2、逐次比较型
逐次比较型AD由一个比较器和DA转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置DA转换器输出进行比较,经n次比较而输出数字值。其电路规模属于中等。
3、并行比较型/串并行比较型
并行比较型AD采用多个比较器,仅作一次比较而实行转换,又称FLash(快速)型。由于转换速率极高,n位的转换需要2n-1个比较器。
4、串并行比较型
Half flash(半快速)型:是由2个n/2位的并行型AD转换器配合DA转换器组成,用两次比较实行转换。
三步或多步实现AD转换的叫做分级(Multistep/Subrangling)型AD,而从转换时序角度又可称为流水线(Pipelined)型AD,现代的分级型AD中还加入了对多次转换结果作数字运算而修正特性等功能。
5、Σ-Δ调制型
Σ-Δ型AD由积分器、比较器、1位DA转换器和数字滤波器等组成。原理上近似于积分型,将输入电压转换成时间(脉冲宽度)信号,用数字滤波器处理后得到数字值。
6、压频变换型
压频变换型是通过间接转换方式实现模数转换的。将输入的模拟信号转换成频率,然后用计数器将频率转换成数字量。
二、ADC模数转换器电路设计
我们先来看一下电路设计:
我们可以看到,电源输出VIN通过R6和R5两个分压电阻,将其线性的降压到ADC1_CH0电路中,并接到PA0引脚上。可以计算得到以下内容:
我们通过了这个两个电阻分压的线性降压电路将11.1v到12.6v的电压降低到2.868v到3.256v。为什么这个做呢?原因是STM32的AD转换引脚能够接受的模拟电压范围为的最大值是3v。当我们通过STM32的ADC采集将降压后的电源转为数字信号,再通过程序还原成原始的电压数值,我们就可以得到电源电压了。假设ADC采集到的电压为v,于是我们可以得到电源电压V的值的计算方法为:
接下来,我们来编写STM32程序,通过ADC采集到我们的电源电压:
这样我们就完成了ADC1的CH0的配置工作。之后我们还需要编写一个函数用于读取ADC1中CH0的数字信号值:
最后,我们通过在main函数中对ADC1中的CH0进行配置,并在主循环中读取电源电压信息:
当我们通过调用adc_get(0)函数得到采集电压v之后,再通过uart_write(v)函数将电压值发送到串口当中方便我们观察。读者只需要了解得到电压v之后如何计算出电源电压即可。例如我们从串口中得到的数据如下:
实际上,我们得到了很多组数据,它们之间会存在一些小的差别,但并不很大。
我们,可以在电源电压接近11v时再进行一次采集和计算,我们采集到的数据为50 DF:
通过上述方法计算得到电源电压为:
16进制转10进制: 0xDF50 = 57168
除以16通道分辨率: 57168 / 65535 = 0.872327764
乘以电路中分压值3.256v: 0.872327764 × 3.256 = 2.840299199
转为实际电源电压: 2.840299199 × 387 ÷ 100 = 10.992
最后,我们就得到了电源电压为10.992v约等于11v
于是,我们通过程序来计算上面的内容:
这样我们就完成了通过STM32采集电源的电压,方便我们以后实时查看小车的电源情况。
以上便是此次的全部内容,经由小编的介绍,不知道你对ADC模数转换器是否充满了兴趣?如果你想对它有更多的了解,不妨尝试在我们的网站里进行搜索哦。