基于STM32的多功能数控电源设计

基于STM32的多功能数控电源设计

摘要

本文介绍了基于STM32单片机的多功能数控电源设计。该电源具有输出电压和电流在一定区间内连续可调、实时显示参数、具备温度检测和过流保护功能等特点。采用STM32F103系列单片机作为核心控制器,通过模块化设计实现高精度调节、实时显示和安全保护。

引言

电源技术特别是稳压电源技术在工程技术方面使用性很强,在各个行业里得到了广泛的应用。数控电源是从20世纪80年代才真正发展起来的,系统的一些电力电子理论基础在那期间刚刚建立。随着电子技术的快速发展,数控直流电源在科研、教学和工业生产等领域的应用越来越广泛。为了满足现代电子设备对高精度、高稳定性直流电源的需求,本文设计了一款基于STM32单片机的多功能数控电源。

1. 总体方案设计

1.1 数控稳压电源原理

本设计以高性能单片机作为核心控制器,设计了AD电压电流检测电路、驱动电路、人机交互,MOS管电路为数控稳压电源主电路。检测电路为电压、电流值反馈回路,通过A/D采集到单片机,与预置值进行比较,作为单片机进一步调节PWM占空比的依据,单片机输出DA信号,通过控制电路控制MOS管的导通和关断时间,来获得实际所需的电压、电流值。

1.2 系统硬件设计
  1. 单片机控制电路:以STM32F103ZET6单片机作为该数控稳压电源的控制芯片,该芯片是32位基于ARM核心的带512K字节闪存的微控制器。

  2. 电压电流控制电路:选择型号为IRFP460的N-MOS作为主电路开关元件,驱动电路采用由两个小功率的NPN和PNP三极管组成的射极跟随器,通过光耦TLP521实现单片机对MOS管的直接控制,同时起到信号隔离作用。

  3. 电压控制电路:采用TL072低噪声、轨到轨、高输入阻抗的双运算放大器,构成差分运算电路,将输出电压衰减后送给单片机进行AD采样,并通过比较电路控制MOS管驱动电路,实现电压的精确控制。

  4. 电流控制电路:同样采用TL072运算放大器,通过电流采样电阻将电流值转化为电压值,再经过放大、滤波后送给单片机进行AD采样,通过比较电路控制MOS管驱动电路,实现电流的精确控制。

  5. 供电电路:整机供电变压器使用带5组绕组的大功率环牛,主绕组为6V、8V、16V、24V,副绕组为双12V。主输出电压切换使用4个继电器,继电器用ULN2803来驱动。

1.3 软件设计

系统上电后,首先进行初始化操作,包括配置单片机的输入输出端口、设置ADC和DAC的参数等。单片机通过ADC接口读取电源的输出电压和电流等参数,并进行数据处理和逻辑判断。根据用户通过按键设置的电压和电流值,控制DAC输出相应的模拟信号,调节电源的输出电压和电流。液晶显示模块采用LCD1602液晶显示屏实时显示输出电压和电流等参数。同时,通过温度传感器和过流检测电路实时监测电源的工作状态,当温度过高或电流过大时,单片机自动切断电源输出,并通过液晶显示屏显示相应的报警信息。

2. 功能特点

  1. 输出电压:范围0V~30V,输入交流220V,通过变压器将220V市电降至安全电压内。
  2. 恒压模式步进:短按0.1V,长按1V,纹波30mV。
  3. 最大输出电流:1.5A。
  4. 液晶显示:采用LCD1602液晶显示屏实时显示输出电压和电流等参数。
  5. 按键控制:通过“加、减”两键控制输出电压步进增减。
  6. 温度检测:关键器件温度检测,超过60度声光报警。
  7. 过流保护:具有输出过流保护,过流值大小通过电位器可调。
  8. 恒流输出和恒压输出:具有恒流输出和恒压输出两种模式,按键切换。

3. 系统调试与优化

在系统硬件和软件设计完成后,进行了系统的调试与优化。硬件调试主要包括各模块电路的测试与调整,确保各模块正常工作。软件调试主要包括数据采集与处理、液晶显示控制、温度检测和过流保护等功能的测试与优化,确保系统能够稳定运行。

结论

基于STM32的多功能数控电源设计,采用STM32F103系列单片机作为核心控制器,通过模块化设计实现了高精度调节、实时显示和安全保护等功能。该电源具有输出电压和电流在一定区间内连续可调、实时显示参数、具备温度检测和过流保护功能等特点,能够满足现代电子设备对高精度、高稳定性直流电源的需求。

通过系统调试与优化,验证了设计的可行性和可靠性。该设计不仅具有广泛的应用前景,也为后续的研究提供了参考和借鉴。

参考文献

[此处列出参考文献]


本文详细阐述了基于STM32的多功能数控电源设计的整体方案、硬件设计、软件设计以及功能特点,通过系统调试与优化验证了设计的可行性和可靠性。该设计具有广泛的应用前景,并为后续的研究提供了参考和借鉴。

项目概述

本项目旨在设计一款基于STM32的多功能数控电源,具有电压和电流的可调输出、实时显示、温度监测以及过流保护等功能。我们将使用STM32F103系列单片机作为核心控制器,结合ADC(模数转换)、DAC(数模转换)、LCD显示、按键输入、温度传感器以及过流检测等模块来实现这些功能。

硬件连接

  1. STM32F103单片机:作为核心控制器,负责数据处理和控制逻辑。
  2. ADC:用于采集输出电压和电流,以及温度传感器的数据。
  3. DAC:用于生成控制电压,调节电源输出。
  4. LCD显示:实时显示输出电压、电流和温度等信息。
  5. 按键输入:用于设置输出电压和电流的值,以及切换工作模式。
  6. 温度传感器:监测电源内部温度,防止过热。
  7. 过流检测:通过电流传感器监测输出电流,防止过流损坏电源。

代码框架

1. 初始化
void System_Init(void) {  
    // 初始化系统时钟  
    SystemInit();  
      
    // 初始化GPIO  
    GPIO_Config();  
      
    // 初始化ADC  
    ADC_Init();  
      
    // 初始化DAC  
    DAC_Init();  
      
    // 初始化LCD显示  
    LCD_Init();  
      
    // 初始化按键输入  
    Key_Init();  
      
    // 其他初始化(如定时器、中断等)  
    // ...  
}
2. ADC采集
uint16_t ADC_GetValue(ADC_TypeDef* ADCx, uint16_t Channel) {  
    // 启动ADC转换,并等待转换完成  
    // 读取ADC转换结果  
    // 返回转换结果  
    return ADC_ConvertedValue;  
}
3. DAC输出
void DAC_SetValue(DAC_TypeDef* DACx, uint16_t Value) {  
    // 设置DAC输出值  
    // 启动DAC转换  
}
4. LCD显示
void LCD_Display(float Voltage, float Current, float Temperature) {  
    // 将电压、电流和温度转换为字符串  
    // 在LCD上显示这些字符串  
}
5. 按键处理
void Key_Scan(void) {  
    // 扫描按键状态  
    // 根据按键状态执行相应的操作(如设置电压、电流值,切换工作模式等)  
}
6. 温度监测与过流保护
void Monitor_Temperature_And_Overcurrent(void) {  
    // 读取温度传感器的值  
    uint16_t TempSensorValue = ADC_GetValue(ADC1, TEMP_SENSOR_CHANNEL);  
      
    // 将温度传感器的值转换为实际温度  
    float Temperature = ConvertTempSensorValueToTemp(TempSensorValue);  
      
    // 判断是否过热,如果过热则执行保护措施(如关闭输出)  
    if (Temperature > MAX_TEMPERATURE) {  
        // 执行过热保护措施  
    }  
      
    // 读取电流传感器的值  
    uint16_t CurrentSensorValue = ADC_GetValue(ADC1, CURRENT_SENSOR_CHANNEL);  
      
    // 将电流传感器的值转换为实际电流  
    float Current = ConvertCurrentSensorValueToCurrent(CurrentSensorValue);  
      
    // 判断是否过流,如果过流则执行保护措施(如关闭输出)  
    if (Current > MAX_CURRENT) {  
        // 执行过流保护措施  
    }  
}

主程序

int main(void) {  
    // 初始化系统  
    System_Init();  
      
    // 主循环  
    while (1) {  
        // 读取电压和电流值  
        float Voltage = ConvertADCValueToVoltage(ADC_GetValue(ADC1, VOLTAGE_CHANNEL));  
        float Current = ConvertADCValueToCurrent(ADC_GetValue(ADC1, CURRENT_CHANNEL));  
          
        // 监测温度和过流  
        Monitor_Temperature_And_Overcurrent();  
          
        // 显示电压、电流和温度  
        LCD_Display(Voltage, Current, /*Temperature from Monitor function*/);  
          
        // 处理按键输入  
        Key_Scan();  
          
        // 根据需要调节DAC输出值以控制电源输出  
        // ...  
          
        // 延时一段时间(如100ms)  
        Delay_ms(100);  
    }  
}

注意事项

  1. 库函数:在实际开发中,你需要使用STM32的HAL库或标准外设库来初始化和管理硬件外设。
  2. 转换函数ConvertADCValueToVoltageConvertADCValueToCurrentConvertTempSensorValueToTempConvertCurrentSensorValueToCurrent等函数需要根据你的硬件连接和传感器特性进行实现。
  3. 保护机制:在过热和过流保护中,你需要确保电源能够安全地关闭输出,并可能需要设置一些恢复机制。
  4. 实时性:由于电源控制需要较高的实时性,你可能需要使用中断或定时器来定期读取ADC值和处理按键输入。
  5. 校准:在实际应用中,你可能需要对ADC和DAC进行校准,以确保测量的准确性和输出的稳定性。

请根据你的具体硬件和需求,在上述框架的基础上进行详细实现。

前言: 美国Vicor公司是现时世界最大的高密度电源模块生产商, 同时也是全球唯一能以零电压、零电流技术大批量生产电源模块的厂家。Vicor电源模块包括DC-DC、AC-DC电源模块,隔离、非隔离电源模块转换器。其中VICOR公司电源模块的核心技术是 “零电流”开关,它使变换器的工作频率达到 了1MHz,效率大于80%。 本文介绍多功能数控电源设计 从最基本的说起吧,DC-DC的变换电路有很多种,线性电源、开关电源、电荷泵,线性电源大家比较熟悉的应该就是78XX系列的芯片了,电荷泵主要用在小电流的应用中,我们也不加讨论。主要讲讲开关电源,我呢也是一个先学先卖的人,就对照资料啥的随便介绍下拉,权当是开源本设计前的一点准备工作。 开关稳压器的工作原理,就是通过控制电路来控制开关器件的通断,配合负反馈完成稳压,跟线性稳压比起来,具有效率高体积小的特点,但是输出没有线性电源稳定。开关电源的基本结构有很多种,包括BUCK、BOOST、BUCK-BOOST、CUK等非隔离式的DCDC变换器,也有Flyback、LLC等隔离式的DCDC变换器。 开源的这个设计,是以buck拓扑为核心,配合STM32F334的高级定时器的PWM、PI算法,实现的一个很简单的闭环控制,设计输入电压60V时,输出电压可调,输出电流最大5A,输出最大功率在200W左右。 数控电源系统设计框图: 首先说明我这款电压是从HP电源的基础上增加人机界面和改善栅极驱动做的,具体设计心得及电路分析详见附件内容。 数控电源程序的设计思路: 因为这款设计为了尽可能减少体积,因此使用了较大频率的PWM波,取值为250k,所采用的主控stm32f334是意法半导体专为数控电源设计的一款MCU。STM32F334xx微控制器具有高分辨率定时器(HRTIM)外设,可产生多达10个信号,能够处理用于控制、同步或保护的各种不同输入信号。其模块化架构允许对大部分转换拓扑和多并联转换器进行处理,并可在运行中重新配置它们。(具体详见附件内容) 配置的代码和PI算法的代码部分截图展示:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科创工作室li

你的鼓励将是大学生的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值