
开源协议
:GPL 3.0
描述
主要是使用的ADC功能模拟数字转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。CW32F030 内部集成一个 12 位精度、最高 1M SPS 转换速度的逐次逼近型模数转换器 (SAR ADC),最多可将 16 路模拟信号转换为数字信号。现实世界中的绝大多数信号都是模拟量,如光、电、声、图像信号等,都要由 ADC 转换成数字信号,才能由 MCU 进行数字化处理。
在软件设计方面,CW32F030单片机的ADC模块是实现电压电流测量的核心。ADC模块具有多种转换模式,支持单次转换、多次转换、连续转换等,并具备序列扫描转换和序列断续转换功能。ADC的基本参数包括分辨率、采样率和采样范围 。软件设计中,需要对ADC通道进行配置,通过编写相应的初始化代码来完成电压和电流的采样,并将其结果显示在数码管上 。对于电压电流的测量精度,可以采用均值滤波算法来减少数据波动,提高测量结果的稳定性。在CW32数字电压电流表软件进阶教程中,介绍了如何对实时显示的电压电流值进行均值滤波处理,以消除原始数据的波动 。此外,为了提高测量精度和准确度,可以对电压电流表进行标定校准。标定是通过测量标准器的偏差来补偿仪器系统误差的操作。在实验九中,介绍了带有标定功能的数字电压电流表的实现方法,包括标定的概念、重要代码讲解和标定操作方法 。
原理解析(硬件说明)
- 电压采样
本项目采用分压电路实现高电压采集,设计可采集电压100V,当前配置采集电压为0-30V。本项目设计分压电阻为220K+10K,因此分压比例为22:1(ADC_IN11)
1.1 电压采样分压电阻选型
设计测量电压的最大值,出于安全考虑,本项目为30V(实际最大可显示99.9V或100V);ADC参考电压,本项目中为1.5V,该参考电压可以通过程序进行配置;为了降低采样电路的功耗,通常根据经验值将低侧电阻(R7)选择为10K;随后便可以通过以上参数计算出分压电阻的高侧电阻:计算所需的分压比例:即ADC参考电压:设计输入电压,通过已知参数可以计算出1.5V/30V=0.05,计算高侧电阻:即低侧电阻/分压比例,通过已知参数可以计算出10K/0.05=200K。选择标准电阻:选择一颗略高于计算值的电阻,计算值为200K,通常我们选择E24系列电阻,因此本项目中选择大于200K且最接近的220K。如果在实际使用中,需要测量的电压低于2/3的模块设计电压,即66V,则可以根据实际情况更换分压电阻并修改程序从而提升测量的精度,下面将进行案例说明:假设被测电压不高于24V,其他参数不变,通过计算可以得到1.5V/24V=0.0625,10K/0.0625=160K,160K为标准E24电阻可以直接选用,或适当留出冗余量选择更高阻值的180K
如果在实际使用中,需要测量的电压若高于模块99V的设计电压,可以选择更换分压电阻或通过修改基准电压来实现更大量程的电压测量范围,下面将进行案例说明:假设被测电压为160V,选择提升电压基准的方案扩大量程已知选用电阻的分压比例为0.0145,通过公式反推,我们可以计算出160V*0.0145=2.32V,因此我们可以选择2.5V的电压基准来实现量程的提升(扩大量程将会降低精度)考虑到被测电源可能存在波动,在电路设计时,在低侧分压电阻上并联了10nF的滤波电容提高测量稳定性。
1.2 电压采样二极管钳位保证MCU安全
我在设计本项目的时候,额外在采样电路中增加了一个1N4148(D1等)作为钳位二极管。尽可能避免在学习和调试使用中由于接入不正确的电压,导致芯片引脚损坏。 二极管钳位是一种重要的电子电路设计技术,它的主要作用是通过限制电压的幅度来保护电路,避免信号过大或过小导致的损坏或故障。
钳位在电路中是指限制电压的意思,而二极管钳位特指利用二极管将电路中的某点电位进行限制的技术。
二极管钳位主要利用了二极管的单向导电性。当二极管的正极电压大于负极电压并且导通后,二极管两端的电压被限制在其管压降上,通常硅管的管压降约为0.7V。
钳位过程:通过二极管的钳位作用,将被钳位的电位强制拉向参考端,从而实现电位的限制。钳位并不改变原信号的波形,只是抬高或降低了信号的基准电位。根据二极管连接方式的不同,钳位电路可分为正向钳位电路和负向钳位电路。本项目仅设计了正向钳位。
正向钳位电路:当二极管的正极接地时,为正向钳位电路。在正半周时,二极管截止;在负半周时,二极管导通,电容被充电至一定电压,使输出电压限制在一定范围内。
负向钳位电路:当二极管的负极接地时,为负向钳位电路。工作原理与正向钳位电路相反。
增加一组电压采样电路实现换挡
在本项目中,额外增加了一组电压采样电路,因此,我们可以探讨一下换挡对于提高测量精度的意义。万用表想要测的更准确,往往设置了多个档位。通过对不同档位的调整,获得被测点位在相应量程下的最佳的测量精度。
本项目实现此功能需要实现软硬件结合。当我们首先使用前文所讲的ADC_IN11通道测量30V以内电压时。若所测得电压在0~3V以内,则使用ADC_IN9通道测量。此时,由于分压比减小,测量精度大大提高。
实现换挡的思路有很多种,开发板的设计给大家提供了更多设计的可能。
旁边标注为:T_V、T_GND的器件为开发板上的2mm香蕉座接口,用来连接万用表表笔。可插入万用表或高精度台式数字万用表的表笔探头验证开发板测量是否准确。也可插入2mm香蕉头的万用表表笔,代替CH1端口,进行手持式测量。
VP引脚为开发板供电引脚,在使用DC端口时,不接。在没有使用DC端口供电,且测量值大于5V小于30V时,可接入被测电源,也可由此独立供电。
在学习相应电路测量原理时,考虑到用户可能无法便捷的搭建测试和调试的外围电路,本着开发板易于开发的原则,特设置用来模拟电压的测量、测量的标定、和测量校准辅助电路。无需使用CH1外接电压。使用多圈可调电位器(RP1)对开发板电源电压进行分压,通过开发板内部电路连接入+V网络。此时注意,需要短接H2,使用跳线帽即可,推荐使用长柄跳线帽。不使用此功能,请勿短接H2。
软件代码
软件代码见附件压缩包“CW32电压电流表代码”
注意事项
此处我主要写一些我在软件烧录的时候遇到的问题:官方的文档
查看官方文档,将编译器设置成5版本的
CMSIS版本,在下面的设置页面中将6.1.0版本的CMSIS移除,安装5.6版本的,其他版本我没有试过,但是低于5.4的肯定不行(不知道为啥在这个界面装的是5.4版本的,实际只有5.1.2.现在装了5.6版本的,实际是5.3,可以正常编译了我也不知道什么原因)
下载实验7,8,9,会报下图的错误是因为默认的芯片选的不对,修改正确即可。
焊接排母的时候,可以先把单片机插到两个排母上面,两个一起焊,方便控制间距,我焊的时候是分开焊接的,最后往上插单片机其实有点大力出奇迹的意思,还扳了扳排针才按进去
供电的话,可以在优信买9V的干电池和9VDC转接线,两个加起来也就两块半搞定,电池供电肯定比那种廉价电源头稳定,安全
上电之前要用万用表蜂鸣档测一下vcc和gnd有没有短路,应该问题不大
电流表的接入方法,可以将电流表串联进测试系统中
设计图

BOM


评论