[制作实践]一种基于LM2576的多功能开关电源设计
http://bbs.kechuang.org/read-kc-tid-9837-page-e.html
摘要:本文介绍了一种性价比高、功能丰富的程控开关电源的设计,对基于LM2576控制核心的升、降压电路设计、切换及恒流输出电路进行了详细介绍。性能测试结果验证了本设计的有效性及实用性。
关键词:开关电源;多功能;LM2576
引言
随着电源技术的飞速发展,开关电源以其功耗小、体积小、重量轻等优点得到了广泛的应用。目前开关电源也正在朝着集成化与多功能化的方向发展。本文以大学生电子设计竞赛为背景,介绍一种性价比高、功能较强的实用开关电源设计方案。
竞赛内容为设计具有单路恒压输出功能的开关电源,输出电压范围为0 ~ 15 V,步进100 mV;输出电流不小于1 A,纹波300 mV以下;调整过程用单片机完成,并提供数字显示功能。扩展要求为:电源具有升压功能:输入为5 V,测量负载电流为1 A时的输出电压;具有延迟输出功能,避免上电冲击;具有掉电记忆功能,存储上次设置的参数。
方案论证及设计
开关电源控制核心模块,包括开关电源控制器和配套的必要外围电路、反馈回路和继电器切换电路。这一模块的作用是完成开关电源最基本的功能,包括降压、升压和恒流等。其中开关电源控制器采用LM2576-ADJ,这是具有可调电压输出的开关电源控制芯片,内置PWM控制电路和驱动管,性价比高。此芯片最大输入电压为37V,输出通过反馈电阻分压,可在1.25V~ 35V范围内调整,输出电流可以达到3A,满足题目设计要求。反馈回路中进行比较、差分放大的电路采用CMOS型集成运放TLC2262,具有功耗低、精度高、满幅输出范围大、线性度好等特点,适合在本设计电路中应用。
单片机控制模块,包括单片机和相应的A/D、D/A转换模块、继电器切换控制模块,以及人机交互接口。这一模块的作用是通过单片机输出的D/A转换信号和继电器切换控制信号,对开关电源核心模块进行控制,从而实现程序控制升压、降压和电路切换的功能。模块中的单片机采用C8051F330D,为增强型51内核单片机,集成了10位ADC和10位DAC,满足设计精度需要。人机交互接口采用CH452L集成数码管显示和键盘控制器,完成数据显示和键盘输入的功能。扩展要求中的参数掉电记忆功能,由串行E2PROM芯片AT24C08完成。
辅助电源模块完成从220V到系统所需各路电源的变压、整流、降压等工作。辅助电源模块通过整流提供两路直流输出,一路给开关电源的核心模块提供输出所需的足够能量,另一路由LM2576和LM1117稳压给单片机和其他控制模块提供控制需要的较低压直流电。
以上描述的总体设计原理见图1。
图1 系统的模块结构和设计原理框图
硬件电路设计
降压型电路原理和设计
采用LM2576构成的降压电路如图2所示,输出电压经R1和R2分压取样后送到减法器的正输入端,负端接VSET。VSET信号是单片机给出的电压信号,输出的取样电压减去D/A转换电压后得到误差信号。再将误差信号加上参考电压(VREF)1.23V,将此结果送到LM2576的反馈端。当输出电压因某种原因下降时,取样电阻分压下降,低于单片机D/A转换信号给出的参考电压,减法器输出小于1.23V,此信号送到LM2576反馈端后,开关信号的占空比增加,电感储能增加,输出电压上升,最终使输出电压保持稳定。此反馈回路的本质仍然是负反馈,并且符合LM2576的使用要求。
图2 降压型(Buck)基本电路
相比于传统的直接反馈,本设计中的反馈回路复杂度较高,这种设计主要是出于以下考虑:首先是便于单片机控制,只要改变D/A转换输出电压,则反馈回路起作用,自动将输出取样电压向D/A转换电压靠近,完成电压调整过程;其次,可以满足设计要求中的零伏输出。若单纯用LM2576的反馈引脚,则手册中给出的参考电路最低输出只能达到1.25V,因此需要将反馈电压“平移”一个VREF参考电压的电平。最后是因为LM2576的反馈端是以1.23V为基准进行比较的:当反馈取样电压大于1.23V时,减小开关的占空比;大于1.23V时,增加占空比。一般的误差电压不会大于1V,因此需要将减法结果再向上“平移”一个VREF的电平。
反馈电阻分压得到的电压还同时送到单片机的DAC,通过D/A转换和尺度换算,得到输出电压值,作为数字量显示输出到数码管上。
升压型电路原理和升降压电路的切换
升压型开关电源的原理
图3是升压型开关电源的原理图。由于存在电感,因此可以做到输出电压大于输入电压。开关管导通时,电流经电感→开关管→接地,二极管截止;开关管截止时,电流被截断,电感放出能量,这时电流经二极管给电容充电并给负载提供电流,实现了升压型电源。
图3 升压型电路原理图
LM2576在电路中所起的作用可以看作是PWM发生器和开关管的集成,因此,虽然LM2576通常用做降压电路,但具有改造成为升压电路的能力。
升降压电路的切换
升压电路和降压电路的连接方式不同,因此无法在同一电路中同时实现升降压。本文采取的办法是用小型继电器切换。
通过受信号控制的切换,开关连接到不同的触点,完成电路连接形式的切换。
切换电路如图4所示,图中四个开关分属两个不同的继电器(双刀双掷)K4和K3,均受单片机控制。通过继电器触点切换,实现升压和降压作用。
要说明的是,图4中没有画出反馈回路。反馈既可以采用经典的取样电压直接反馈的办法,也可以采用前边说明的加入了减法器的改进反馈回路。
在实际的电路设计中采用了带减法器的电路。
图4 电路升降压切换图示
恒流输出电路设计
在上述功能基础上,本设计进一步增加了恒流输出功能,如图5所示。将输出电流在分流器上的压降取出来,并加以放大,得到适当大小的直流电压信号。此信号一方面送到单片机进行A/D转换,一方面送到反馈回路减法器的输入,并与D/A转换输出电压比较。当输出电流增加时,放大器电压增加,通过减法器与参考电压比较后得到的反馈电压增加,LM2576减少开关信号的占空比,电感中储能减少,导致输出电流下降,完成反馈过程。
图5 实现恒流输出的电流-电压转换电路
通过单片机I/O引脚对继电器的控制,实现反馈减法器输入的选择,从而实现电路恒压/恒流的切换控制。
[制作实践]一种基于LM2576的多功能开关电源设计的更多相关文章
- 基于ABP落地领域驱动设计-04.领域服务和应用服务的最佳实践和原则
目录 系列文章 领域服务 应用服务 学习帮助 系列文章 基于ABP落地领域驱动设计-00.目录和前言 基于ABP落地领域驱动设计-01.全景图 基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践 ...
- 基于ABP落地领域驱动设计-05.实体创建和更新最佳实践
目录 系列文章 数据传输对象 输入DTO最佳实践 不要在输入DTO中定义不使用的属性 不要重用输入DTO 输入DTO中验证逻辑 输出DTO最佳实践 对象映射 学习帮助 系列文章 基于ABP落地领域驱动 ...
- 基于ABP落地领域驱动设计-03.仓储和规约最佳实践和原则
目录 系列文章 仓储 仓储的通用原则 仓储中不包含领域逻辑 规约 在实体中使用规约 在仓储中使用规约 组合规约 学习帮助 围绕DDD和ABP Framework两个核心技术,后面还会陆续发布核心构件实 ...
- 基于ABP落地领域驱动设计-06.正确区分领域逻辑和应用逻辑
目录 系列文章 领域逻辑和应用逻辑 多应用层 示例:正确区分应用逻辑和领域逻辑 学习帮助 系列文章 基于ABP落地领域驱动设计-00.目录和前言 基于ABP落地领域驱动设计-01.全景图 基于ABP落 ...
- 基于ABP落地领域驱动设计-00.目录和小结
<实现领域驱动设计> -- 基于 ABP Framework 实现领域驱动设计实用指南 翻译缘由 自 ABP vNext 1.0 开始学习和使用该框架,被其优雅的设计和实现吸引,适逢 AB ...
- atitit.基于http json api 接口设计 最佳实践 总结o7
atitit.基于http json api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...
- 26种基于PHP的开源博客系统
26种基于PHP的开源博客系统 来源:本站原创 PHP学习笔记 以下列举的PHP开源Blog系统中,除了我们熟知的WordPress之外,大多都没有使用过,其中一些已经被淘汰,或者有人还在使用.除了做 ...
- 基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则
目录 前言 聚合 聚合和聚合根原则 包含业务原则 单个单元原则 事务边界原则 可序列化原则 聚合和聚合根最佳实践 只通过ID引用其他聚合 用于 EF Core 和 关系型数据库 保持聚合根足够小 聚合 ...
- [信安Presentation]一种基于GPU并行计算的MD5密码解密方法
-------------------paper--------------------- 一种基于GPU并行计算的MD5密码解密方法 0.abstract1.md5算法概述2.md5安全性分析3.基 ...
随机推荐
- 关于一些对location认识的误区
1. location 的匹配顺序是“先匹配正则,再匹配普通”. 矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”.我这么说,大家一定会反驳我,因为按“先匹配普通,再匹配正则”解释 ...
- python中的pydoc
在终端上输入pydoc会显示以下信息 pydoc - the Python documentation tool pydoc <name> ... Show text documentat ...
- 终止函数 atexit()
函数名: atexit 头文件:#include<stdlib.h> 功 能: 注册终止函数(即main执行结束后调用的函数) 用 法: int atexit(void (*f ...
- nginx文件类型错误解析漏洞
漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行.80sec发现 其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将 ...
- prototype 与 __proto__
原文:http://rockyuse.iteye.com/blog/1426510 说到prototype,就不得不先说下new的过程. 我们先看看这样一段代码: 1 <script type= ...
- iOS开发:用DES对字符串加解密
参考http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html,做了个小修改,实现PHP,JAVA,Objective-c加解密结果相同 ...
- 作死自救日记——不小心修改linux下/etc/sudoers权限的解决办法
作死自救日记,献给跟我一样不小心作了死的人 ================================================ 今天不小心作死修改了/etc/sudoers的权限,作死命 ...
- spring_150906_sqlmapclientdaosupport_getSqlMapClientTemplate
添加到ibatis相关jar包! 实体类: package com.spring.model; public class DogPet { private int id; private String ...
- Codeforces Round #371 (Div. 1) C - Sonya and Problem Wihtout a Legend
C - Sonya and Problem Wihtout a Legend 思路:感觉没有做过这种套路题完全不会啊.. 把严格单调递增转换成非严格单调递增,所有可能出现的数字就变成了原数组出现过的数 ...
- HTML中的Div Span label的区别
div与span 大家在初学div+css布局时,有很多困惑,在div与span的使用过程没觉得有一定的”章法”,觉得两个区别不大,在w3c的关于div和span的定义:div作为分割文档结构自然使它 ...