首页-达尔闻    全部    项目分享| DIY STM32控制的电子负载(硬件方案分享,软件代码下载)

项目分享| DIY STM32控制的电子负载(硬件方案分享,软件代码下载)

今天分享的项目是余昊设计的基于STM32控制的简易电子负载,具有恒流、恒压、恒电阻以及恒功率功能,最大输入电压为100V,热设计功耗为100W,最大负载电流为12A。
收藏
  • 今天分享的项目是余昊设计的基于STM32控制的简易电子负载,具有恒流、恒压、恒电阻以及恒功率功能,最大输入电压为100V,热设计功耗为100W,最大负载电流为12A。

    感兴趣的同学可以关注下余昊的B站——饺子电子工作室

     

    系统结构图

    电子负载采用3.7V锂电池供电,在使用时就不需要单独准备辅助电源或从被测电源取电,这将大大方便用户使用。

    系统结构框图

    下面是硬件方案的分享,软件代码可以下拉文末下载。

     

    硬件设计

    ✔ 负载晶体管与电流检测

    该模块采用两根IRFP250场效应管作为电子负载的负载晶体管,P1为被测电源的电源输入接口,R3和R4为电流检测采样电阻,电流检测放大器采用INA180A3,器件,具有100V/V的电压增益、25uV的输入失调电压。

    负载与电流检测原理图

    设计注意事项:

    1)R1和R2是必须的且阻值不能过小,阻值过小会导致运算放大器输出电压发生高频振荡,影响电路工作。阻值选取应根据运算放大器的输出特性选取。

    2)电流检测放大器的输入失调电压将直接决定电流采样的精度,失调电流的计算如下:

    使用INA180A3作为电流检测放大器,失调电流约为5mA,而若使用LM358构成同相比例放大器则测量的失调电流就会达到100mA,如需进一步减小失调电流,可以通过减小电压增益和增大采样电阻来改善。

    3)电流检测电阻的精度和稳定性也直接影响测量精度,最好使用稳定性较高的金属膜电阻或康铜丝作为电流采样电阻。

    4)作为大功率设备,应将功率部分的地和测控部分的地隔离分开,两个地通过0欧姆电阻点连接,可以减少因压降或噪声导致的测量噪声干扰。

    ✔ 负载晶体管与电流检测

    该部分电路负责硬件恒定电流控制,利用运算放大器LM358的负反馈控制场效应管的导通量实现硬件恒流控制。

    恒流控制电路

    1)C3和C8以及R16、R20构成反相比例积分器,用于限制运放输出的上升下降速度,抑制过冲或振荡。若电路的电流过冲量过大,可以适当增加积分电容量,但会降低电路的相应速度。

    2)由于放大器失调电压的影响,以及DAC零点电位的偏移,会导致DAC输出0电压时,负载电流却不为0(约有几个毫安的漏电流),导致无法只通过DAC输出0电压来关闭电子负载。因此增加D3、D1、R13、R18构成简易的电压上抬电路,当需要关闭电子负载时,可以通过“OFF”网络输出高电平且DAC输出0电压来完全关断场效应管。

    目前存在的问题和改进方法:

    当电源供给的电流无法达到设定电流值时,LM358将输出高电平(约11V),场效应管进入可变电阻区,栅极电荷量积累过多,会导致场效应管切换回恒流区时速度过慢。可以通过降低LM358的电源电压(降低至7V左右),限制其输出的电压幅度,改善上述现象。

    ✔ 输入电压检测电路

    该模块负责检测被测电源的输入电压。

    电压检测电路

    1)由于STM32的集成ADC输入电阻较小(手册的数据为50kΩ,采样时间越短,输入阻抗越小),直接采用电阻分压的方法采样输入电压将会导致较大的测量误差,因此采用运算放大器作为ADC的输入缓冲。

    2)STM32的ADC采样瞬时输入电阻很小,因此建议在ADC引脚加入缓冲电容,R22和R23的作用是防止运算放大器振荡。

    3)可以通过分别设置两个不同的电压量程,以提高低电压时的电压测量精度。

    ✔ DAC电路

    DAC负责将单片机发送的数字信号转换为模拟量控制电子负载的电流。DAC采用的是16位的DAC8562,具有两个输出通道,正好对应分别控制两个场效应管的电流。

    DAC8562原理图

    1)建议将器件配置为外置参考电压输入,电压增益为1,以保证和ADC的参考电压相同,这样可以最大限度使用ADC的量程和DAC的电压输出范围。DAC配置表如下:

    DAC8562的命令格式表(摘自datasheet)

    DAC相关程序:

    DAC初始化程序:包括IO口初始化和DAC8562初始化配置。

    DAC8562初始化配置

     

    ✔ 温度检测与散热

    温度检测将热敏电阻与定值电阻构成分压电路,C2为滤波电容。热敏电阻通过导热胶紧贴场效应管,保证准确测量场效应管的温度。

    温度检测原理图

    要测量出热敏电阻的温度,就需要了解NTC的温度阻值关系,表达式如下:

    NTC热敏电阻阻值关于温度的函数关系

    这里的T1和T2指的是开尔文温度,Rt 是热敏电阻在T1温度下的阻值,R是热敏电阻在T2标称温度下的标称阻值,B值是热敏电阻的材料常数。

    利用该公式进行变换,就可以求解出温度与ADC端口电压的函数关系,求解温度的程序如下(需要添加math.h头文件):

    温度计算程序

    ADC_Filter[2]为计算后的温度结果,单位为开尔文;ADC_Sum[2]为12位ADC采样1000次的累加。

    散热风扇控制部分原理图

    散热风扇控制电路实际上就是一个低侧Buck降压电路,单片机产生的PWM驱动场效应管,通过调节PWM的占空比,可以调节风扇两端的电压值,从而控制风扇的转速。风扇的转速由热敏电阻测得的温度决定,实现温控自动启停、自动调速的目的。

    原理图总览:

    作品完整原理图

    原理图未展示单片机相关的电路,只展示关键的IO接口,关于单片机的选型和其余扩展功能读者可以在此基础上根据自己的需求自由发挥。

    实物图片:

    电子负载代码下载:

    “达尔闻说”微信回复:STM32电子负载

     

Control Render Error!ControlType:productSlideBind,StyleName:Style1,ColorName:Item0,Message:InitError, ControlType:productSlideBind Error:未将对象引用设置到对象的实例。