
CW32电压电流表
简介
该项目是基于立创·地文星CW32F030C8T6开发板的电压电流表。设计和实现一款数字电压电流表。涵盖了硬件电路设计、固件开发、以及相关的校准与测试过程。
简介:该项目是基于立创·地文星CW32F030C8T6开发板的电压电流表。设计和实现一款数字电压电流表。涵盖了硬件电路设计、固件开发、以及相关的校准与测试过程。开源协议
:GPL 3.0
描述
一、项目功能介绍
该项目的功能包括:
- 电压测量:能够精确测量直流电压,显示实时电压值。
- 电流测量:能够精确测量直流电流,显示当前电流值。
- 校准功能:提供校准接口和方法,确保测量结果的准确性。
实物展示:
二、硬件设计
1. MCU的选型:该项目选用的是立创·地文星CW32F030C8T6
CW32在本项目中的重要优势:
·宽工作温度:-40~105℃的温度范围
·宽工作电压:1.65V~5.5V (STM32仅支持3.3V系统)
·超强抗干扰:HBM ESD 8KV 全部ESD可靠性达到国际标准最高等级(STM32 ESD2K)
·本项目重点-更好的ADC:12位高速ADC 可达到±1.0LSB INL 11.3ENOB 多种Vref参考电压... ...(STM32仅支持VDD=Vref)
·稳定可靠的eFLASH工艺。
2.供电电路:LDO选择了SE8550K2,最高可输入40V电压,但为了安全!!!尽量不要接入大于30V的电压。同时也可以使用开发板上的Type-C接口或者烧录口进行供电。
3.电压采样电路:设计了可以采集高达100V的电压,但为了安全,实际配置为0-30V。选择220KΩ和10KΩ电阻组成分压电路,使得分压比例为22:1。ADC参考电压,本项目中为1.5V。在电路中使用1N4148二极管作为钳位二极管,防止因输入电压过高而损坏MCU。二极管钳位能够限制电压幅度,保护电路不受过电压损坏。还增加一组电压采样电路,根据实际电压选择不同的采样通道,以提高测量精度。在0-3V范围内切换到更高精度的通道进行测量。
4.电流采样电路:采用低侧电流采样电路进行电流检测,采样电路的低侧与开发板表头接口共地。选择100mΩ(一定要选择大封装,例如2512 或者使用插件电阻)的采样电阻来检测最高3A的电流。
这两个元件是2mm香蕉头,可以在公开库中找到。
5. 电压测量校准的TL431电路设计:额外增加了一个TL431电路用来提供一个2.5V的基准电压,可用于给芯片一个用于校准AD的外部电压基准。
6.数码管显示:使用了两个0.28寸的三位共阴数码管作为显示器件,数码管的限流电阻为300Ω。
7.LED指示灯:在供电电路中加入一个电源指示灯,和一个和单片机PC13口连接的LED灯。
8. 按键电路设计:设置了三个按键供用户使用。
9. PCB设计:
电流采样电阻的开尔文接法:
在放置DC电源接口和连接开发板的排母时需要注意放置的位置和距离(连接开发板的排母的中心间距为600mil)
DC电源输入端要按原理图的顺序依次放置元件
电流采样部分使用铺铜时与焊盘连接方式不要使用默认的发散,要选择直连或者直接使用填充。
DRC设计的注意事项:
电源走线应尽可能宽,约在20~60mil之间。
普通信号线:10mil左右
ADC信号走线:10mil或8mil。太宽则在线路过长时,有可能影响信号的完整性。
三、软件部分
1. 标定的概念
标定是通过测量标准器的偏差来补偿仪器系统误差,从而改善仪器或系统准确度、精度的操作。为了提高电压电流表在测量时的测量精度和准确度,需要对电压电流进行标定校准。
常见的标定原理如下:
假设一个采样系统,AD部分可以得到数字量,对应的物理量为电压(或电流);
1.若在“零点”标定一个AD值点Xmin,在“最大处”标定一个AD值点Xmax,根据“两点成一条直线”的原理,可以得到一条由零点和最大点连起来的一条直线,这条直线的斜率k很容易求得,然后套如直线方程求解每一个点X(AD采样值),可以得到该AD值对应的物理量(电压值):
上图中的斜率k:
k =(Ymax-Ymin)/(Xmax-Xmin)
(因为第一点为“零点”,故上面的Ymin = 0)
所以,上图中任一点的AD值对应的物理量:
y = k×(Xad- Xmin)+0
上面的算法只是在“零点”和“最大点”之间做了标定,如果使用中间的AD采样值会带来很大的对应物理量的误差,解决的办法是多插入一些标定点。
如下图,分别插入了标定点(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4) 四个点:
这样将获得不再是一条直线,而是一条“折现”(相当于分段处理),若欲求解落在x1和x2之间一点Xad值对应的电压值:
y = k×(Xad– X1)+ y1
由上看出,中间插入的“标定点”越多,得到物理值“精度”越高。
在电压电流表测量可以使用“电压电流标定板”“万用表”等配合适合,对采集的电压电流进行标定处理。标定点越多,测量越精确。
2.程序部分:
在源程序中使用了3点标定。其中,电压标定点为0V、5V、15V。电流标定点为0A、0.5A、1.5A。但因为我目前没有15V以上的供电设备所以电压标定点重新设为0V、5V、10V。所以下面的程序都是围绕这三个值来编写的。
主程序代码如下:
标定代码计算斜率函数如下:
校准存储函数如下:
3.烧录注意:在烧录时要选对烧录器(根据自己的烧录器选择)
四、标定设置
1.五种显示模式,四种标定选择:
模式0: 显示正常的电压电流值(上一排数码管显示电压值*.V或.*V自动切换,下一排显示电流值,_.**A)
模式1: 电压5V标定值设置。上一排数码管显示U.05. 。下一排显示当前电压值*.**V。在该模式下,应将万用表测量被测位,调到5.00V。 按下K2键后,将当前值标定为5V电压值。
模式2: 电压10V标定值设置。上一排数码管显示U.10. 。下一排显示当前电压值*.**V或**.*。在该模式下,应将万用表测量被测位,调到10.0V。 按下K2键后,将当前值标定为10V电压值。
模式3: 电流0.5A标定值设置。上一排数码管显示A.0.5 。下一排显示当前电流值*.**A。按下K2键后,将当前值标定为0.5A电流值。
模式4: 电流1.5A标定值设置。上一排数码管显示A.1.5 。下一排显示当前电流值*.**A。按下K2键后,将当前值标定为1.5A电流值。
在模式1-4时,可以通过按键3直接返回模式0。
2.电压标定:(标定5V和10V方法一致,需要标定两个值才能准确测量)
- 使用DC电源作为输入,接上JP1处的跳线帽。
- 把万用表黑色表笔接入TGDND中,红色表笔接入T_V中。
- 通过按键1把模式调到模式1。
- 通过调节RP1使万用表上显示5.00V,然后按下按键2进行标定。
- 标定完成后,通过按键3返回模式0。
3.电流标定:(标定0.5A和1.5A方法一致,需要标定两个值才能准确测量)
标定电流使用的是电压模拟方式进行标定。万用表使用显示的电压=R0(0.1Ω)*实际电流。所以万用表显示的电压*10可以看作为实际电流值。(在标定时不要焊接R0)
- 使用DC电源作为输入,接上JP2处的跳线帽。
- 把万用表黑色表笔接入TGDND中,红色表笔接入TI+中。
- 通过按键1把模式调到模式3。
- 通过调节RP2使万用表上显示0.05V,然后按下按键2进行标定。
- 标定完成后,通过按键3返回模式0。
五、外观、外壳部分
1.嘉立创彩色PCB设计:PCB的设计使用嘉立创的彩色丝印工艺,使外观更加好看,美观。
2.嘉立创面板设计:使用了嘉立创的面板设计,并在立创商城中进行面板定制。面板的工艺使用了薄膜面板,高透明,无鼓包,厚度0.2mm,强遮光,背胶使用了3M9448A。可以贴在3D外壳上。
3.3D外壳设计:外壳在SolidWorks中进行设计,并在嘉立创进行3D打印。外壳使用上盖和后盖设计方案,并通过M3螺丝和M3螺母进行组合。(螺丝的长度为16mm)
展示视频:【立创开发板】CW32电压电流表_哔哩哔哩_bilibili
设计图

BOM


评论