基于STM32G0的多功能电子负载设计

前言:

前面水了几期视频介绍到了我自己DIY的电子负载,很多小伙伴比较有兴趣,今天写个专栏做个开源和介绍吧。(我在电源网水过一个帖子,可能有的小伙伴没有账号,今天到B站专栏再水一下)

简介:

电子负载作为电子工程师经常使用的一款仪器,测试电源,电池容量等会经常用到。

先说下DIY的电子负载具体参数和技术细节吧:

一、电子负载最大电压100V,电流20A,最大功率150W

二、硬件支持恒流和恒压双闭环设计,负载支持恒压负载。恒流负载,恒阻负载,恒功率负载。

三、可以拓展支持电池直流内阻测试,太阳能电池板功率曲线测试。

四、主MCU采用STM32G0设计,32位MCU,64M主频,12位ADC,多路定时器。这是一款ST比较新的MCU,后面一段时间可能成为低成本32位机主流。可以学习下。

五、模拟量采集采用自带ADC,基准量给定采用PWM滤波处理,是一款比较低成本的方案。

六、电子负载采用两个通道设计,可以软件独立设置电流,可以保证功率均衡分布,同时可以兼容小电流的精度和大功率热量。

七、电压采样采用四线制,电压量程采用三段可编程电路设计。保证各个电压段的电压精度。

八、两路NTC实时温度检测,保护模块不过温烧坏,同时有智能风扇控制。

九、4.3寸液晶屏参数显示和设置交互,可以显示多个参数,图标显示等。

链接:https://pan.baidu.com/s/14ErBCNiB3yPpUhFxt-qJjQ 

提取码:6bsz

整体结构:

主界面

整体效果图

功率扫描模式(测试温差发电功率就用的这个模式)

静态测试:

48V恒压负载

12V恒压负载

3.7V恒压负载

5A恒流负载

2A恒流负载

整体精度还是勉强可以用的。

动态测试:

恒流启动波形

恒流关闭波形

条件:先接好电源,再开启和关闭负载。

这边顺便说下,PWM滤波成模拟量给定基准是有缺陷的,为了满足模拟量的纹波足够小,一般RC滤波常数选PWM周期的10-20倍。这样PWM的分辨率(即模拟量基准的分辨率)和动态速度不能同时最优化,需要做个均衡。

恒流负载启动波形,看下边沿时间大概3ms。没有过冲和震荡还是可以的。

恒压梯形波动态测试

恒流1A,电压3V-10V动态变化

电压波形没有明显震荡和超调,说明电子负载动态特性还行

电流波形在电压变化过程中有震荡,说明电源的恒流模式动态调节欠缺。

恒流梯形波动态测试

电压15V,电流1A-4A动态变化。

电源电压未随着电流变化而波动,说明电源恒压动态调节特性还可以。

电流也没有明显震荡和超调,说明电子负载动态特性也行。

恒流硬连接

一般电子负载使用都是先连接好电源,再设置参数并启动。

如果先设置好电压电流参数,再硬连接到电子负载上,就存在过冲的风险。

下图为硬连接电流过冲波形,当然反馈调节电路反应慢也是电流过冲的一个重要原因。

当然软件是可以做一些优化和规避的,还没着手优化。

温度测试:

MOS管A通道

MOS管B通道

180W,超过额定功率20%负载半小时以上, 温度还有余量。

开发环境:

固件基于keil5编写

STM32底层外设基于STM32CUBEMX自动生成

串口屏基于USART HMI

电路板基于cadence绘制

原理图初步讲解:

负载部分

整个负载由两个负载模块构成,这边就贴一个图出来。

电流采样采用TI INA199运放放大,采样电阻R80实际贴的是5毫欧,原理图画了10毫欧。

运放出来的电流信号一个支路给反馈调节回路,一个支路给MCU采样。

R83和R84为一个负反馈电阻,降低MOS管跨导,减少过冲和震荡,同时可以分担部分低压大电流负载时功率。这个可以取消。

U9A为恒压调节回路,

U9B为恒流调节回路,

当输入电压低于设定电压时,U9A输出低,关闭负载,当电压高于设定电压时,U9A输出高,由U9B参与回路调节。直至负载电流等于设定电流稳定,这个模式为恒流调节模式。

当电压高于设定电压,电源的输出电流低于设定电流时(比如恒流源),U9B输出高,因为D16的原因,不起作用,这时U9A也输出高,MOS管导通,拉低电压,会稳定在输入电压等于设定电压状态,这个为恒压调节模式。

再稍微补充下:

一、原理图里面得MOS管实际使用型号为IRFP250

二、电流采样得U8 INA199的基准脚这里接的是地,导致零电流或者小电流的时候有点漂移(运放不能做到理想的轨至轨输出),最好的做法将基准脚上浮50-100mv。

电压采样反馈部分

电压采样支持远端采样,解决线阻压降问题。

电压采样分两级,第一级为差分电路,增益为 51 / 1600 。保证输入0-100V时输出在3.3V以内。

第二级采用一个可编程放大电路,

两个MOS关闭时二级增益为 1,跟随模式,可以测试到 0-100V量程

Q8关闭,Q9开启时二级增益为 231/51  总的增益为 231 / 1600 ,可测量0-22V量程

Q8开启,Q9关闭时二级增益为 19,总增益为 969/1600,可测量0-5.4V电压

电阻阻值分布情况

有些小伙伴好奇,差分电路为什么用了这么多电阻串并联。

这是个非常规的做法,因为前级电路对精度要求比较高。我就设计了个多个电阻串并联调高精度。

下图是我随机测量71个精度为1%的100K电阻,均值99.915K,误差0.1%左右。通过分布差异补偿可能提高精度。

当然如果向一个方向偏就难以补偿了。

国产运放

这个电路对运放要求也比较高,用了一个国产的运放,效果还可以。国产芯片一直在升级啊。

MCU部分

MCU这页比较简答,主MCU采用32为M0+内核的STM32G030C8T6。

首先是一个MCU最小系统。

PWM1-PWM3是一个调节给定的基准模拟量,使用PWM滤波获取模拟量,这边使用了二阶滤波。

ADC3-ADC5为一些模拟量采集。

J16-J17为风扇接口

ADC0-ADC1为外接的NTC温度接口。

J15为串口屏接口

J23为预留和上位机通讯接口

J22为预留的数字电位器接口

固件初步讲解:

固件工程

程序分为两个:一个为串口屏代码,另一个为MCU固件。MCU采用KEIL5编译器,底层外设代码生成采用STM32CubeMX.

整个固件大的框架采用状态机结构。

对每个文件做个介绍吧:

AdcFb.c :模拟量采集的一些出来,包含滤波计算电压电流之类的。

Eload.c  :电子负载相关代码

Gui.c       : 界面参数显示的相关代码

HMI.c     :串口屏通讯解析,一些屏幕相关代码

LED.c       : 对LED不同模式的显示做了个封装

NTC.c      : 计算外接NTC的温度,包含对数计算法和查表法,这边用的查表法

SysParas.c : 一些系统参数

UsartBuf.c  :  对串口做了个缓存处理,串口屏的硬件底层

FAN.c  :      智能风扇的一些控制逻辑

补充说明:

有些小伙伴好奇,为什么MOS不能并联,这样就可以少一路驱动和采样。

因为两个MOS直接并联容易导致电流不均衡,电压一样,发热也就不均衡。一个卖力,一个划水。

我们看下下面的图片:

两个完全一样的MOS管,相同的GS控制电压,比如4V,温度在25度时电流3A,温度150度时电流6A。

这样就会导致,如果某一个温度稍微偏高点,相同的控制电压,电流会更大,温度进一步提高,加剧了不平衡。

但过了A点后(大概30A),相同的GS控制电压,温度升高,反而电流下降。这样反而会趋势两个温度接近。

为了保证每个MOS管发热均衡,保证每个MOS管发挥岀最大功率,一般采用多通道分别控制。

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空