断续

注册

 

发新话题 回复该主题

CW32数字电压电流表软件教程实验五A [复制链接]

1#
北京哪家医院能治好白癜风 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/xcxbdf/

6.1.ADC基础知识

6.1.1.什么是ADC

模拟数字转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。

6.1.2.CW32的ADC介绍

CW32F内部集成一个12位精度、最高1MSPS转换速度的逐次逼近型模数转换器(SARADC),最多可将16路模拟信号转换为数字信号。现实世界中的绝大多数信号都是模拟量,如光、电、声、图像信号等,都要由ADC转换成数字信号,才能由MCU进行数字化处理。

主要特性

12位精度

可编程转换速度,最高达1MSPS

16路输入转换通道

-13路外部引脚输入-内置温度传感器-内置BGR1.2V基准-1/3VDD电源电压

4路参考电压源(Vref)

-VDD电源电压-ExRef(PB04)引脚电压-内置1.5V参考电压-内置2.5V参考电压

采样电压输入范围:0~Vref

多种转换模式,全部支持转换累加功能

-单次转换-多次转换

-连续转换

-序列扫描转换

-序列断续转换

支持单通道、序列通道两种通道选择,最大同时支持4个序列

支持输入通道电压阈值监测

内置信号跟随器,可转换高阻抗输入信号

支持片内外设自动触发ADC转换

6.1.3.ADC基本参数

分辨率:表示ADC转换器的输出精度,通常以位数(bit)表示,比如8位、10位、12位等,位数越高,精度越高。

采样率:表示ADC对模拟输入信号进行采样的速率,通常以每秒采样次数(samplespersecond,SPS)表示,也称为转换速率,表示ADC能够进行多少次模拟到数字的转换。

采样范围:指ADC可以采集到的模拟输入信号的电压范围,范围见下:

0≤ADC≤Vref

Vref为参考电压,CW32F有四路电压参考源见上文。

6.1.4.基本原理

CW32F采用的是逐次逼近型的12位ADC,逐次逼近型ADC是一种常见的ADC工作原理,它的思想是通过比较模拟信号与参考电压之间的大小关系来逐步逼近输入信号的数字表示。在逐次逼近型ADC中,输入信号和参考电压被加入一个差分放大器中,产生一个差分电压。然后,这个差分电压被输入到一个逐步逼近的数字量化器中,该量化器以逐步递减的方式将其与一系列参考电压进行比较。具体来说,在每个逼近阶段,量化器将输入信号与一个中间电压点进行比较,将该电压点上方或下方的参考电压作为下一个逼近阶段的参考电压。这个过程一直持续到量化器逼近到最终的数字输出值为止。

我们数字电压电流表的采样电路原理图如下图所示,

图6-1电压采样电路原理图

如果使用1.5V作为参考电压,根据R8和R7的阻值配比可以得到最高采样电压为:

1.5/10*(+10)=34.5V

电流采样的电路原理图见图6-2,对电流采样本质上是对检流电阻的电压进行采样。

图6-2电流采样原理图

6.2.ADC优点

1.数字信号具有良好的抗干扰性。数字信号是由一系列离散的数字表示,因此可以抵抗模拟信号受到的各种干扰,如噪声、漂移等。

2.方便数字信号的存储、处理和传输。由于数字信号是离散的,因此它们可以轻松存储在计算机内存或其他数字设备中,方便进行处理和传输。

3.具有可编程性。现代的ADC出现了很多可编程的功能,例如可编程增益、采样率和滤波器等,可以根据不同的应用场景进行优化。

4.适用性广泛。ADC被广泛应用于工业、通信、医疗、电子测量、音频、视频等领域,可转换各种不同类型的模拟信号,包括电压、电流、声音、光信号等。

6.3.ADC应用

ADC的应用非常广泛。例如,我们可以用ADC将传感器的模拟信号转换为数字信号,然后通过计算机进行处理和分析;ADC在音频处理中也起着重要的作用,将模拟声音信号转换为数字信号,并接下来进行数字信号处理;无线电通信中的信号调制也需要使用ADC等。总的来说,ADC在现代电子工程中非常重要,是数字信号处理和控制技术的关键部分。

6.4.ADC采样显示

在下面我们对CW32F的ADC通道进行配置,输入5V电压给电压表,CW32将采样得到的值输入数码管显示,对ADC通道的配置代码如下;

在主函数中初始化ADC后在BTIM1的中断服务程序中调用Get_ADC_Value得到ADC采样的值,再在主函数的while循环中调用数码管显示函数Display将ADC采样值显示到数码管上。下图为数字电压电流表接入5V电压时的采样显示图。可以看到接入5V时ADC采样得到,我们可以计算:

(/)*[(1.5/10)*(+10)]=5.V

其中代表CW32的ADC采样精度12位为2^12=,由于我们的测试样品中KΩ的电阻被替换成了KΩ,所以计算公式如上,与万用表测量数值相符。(各位学员最终收到的版本是KΩ的电阻)

图6-3ADC采样显示

图6-4万用表测量5V

6.5.ADC采样计算

根据上文,ADC所采样的值虽然准确地显示在数码管上,但采样值仍需要转换成标准值。计算思路与上述公式类似,只是显示到数码管上需要将数值扩大倍。因此采样计算的思路为:将采样得到的值(比如在5V输入的情况下ADC采样得到)用上述计算公式计算得到的结果后乘以:

(/)*[(1.5/10)*(+10)]*=.7V

由于变量为整形,最终输入给显示函数Display的值为,在Display函数里对输入的值进行判定,如果输入值大于0,则数码管只能显示xx.xV,所以我们只取输入值的千百十位;如果输入值小于0,比如现在输入值为,则数码管可显示x.xxV,分别将的百十个位存入Seg_Reg数组中。

最终需要添加一个Cal_Buffer变量来存储Volt_Buffer的值、一个电压计算函数,再修改Display函数见下文:

在while循环中调用数码管显示函数Display之前先调用Volt_Cal函数。

Display函数的更新如下:

最终显示效果如下图(输入接5V):图6-5采样计算后显示值此时万用表测得电压如下:图6-6万用表测量值(5V)

如需产品规格书、样片测试、采购、BOM配单等需求,请加客服。

分享 转发
TOP
发新话题 回复该主题