电子设计竞赛开关稳压电源设计.docx
《电子设计竞赛开关稳压电源设计.docx》由会员分享,可在线阅读,更多相关《电子设计竞赛开关稳压电源设计.docx(13页珍藏版)》请在冰豆网上搜索。
![电子设计竞赛开关稳压电源设计.docx](https://file1.bdocx.com/fileroot1/2022-11/28/c02c70de-23df-4472-bebd-a8483eef2764/c02c70de-23df-4472-bebd-a8483eef27641.gif)
电子设计竞赛开关稳压电源设计
大学生电子设计竞赛设计报告
题目:
实用开关稳压电源
参赛人:
徐天慧
郑春阳
李良起
2012年12月
一、设计任务与要求
1.1设计任务
设计并制作如图1所示的开关稳压电源。
图1开关稳压电源框图
1.2技术指标
在电阻负载条件下,使电源满足以下要求:
1.基本要求
(1)输出电压UO可调范围:
0V~15V,最大输出电流IOmax:
0.5A。
(2)U2从12V变到15V时,电压调整率SU≤5%(IO=0.5A)
(3)IO从0变到0.5A时,负载调整率SI≤5%(U2=18V)
(4)输出噪声纹波电压峰-峰值UOPP≤0.5V(U2=20V,UO=15V,IO=0.5A)
(5)DC-DC变换器的效率
≥50%(U2=18V,UO=15V,IO=0.5A)
2.发挥部分
(1)具有过流保护功能,动作电流IO(th)=1.5±0.1A,当排除过流故障后,电源能自动恢复为正常状态。
(2)能对输出电压进行键盘设定和步进调整,步进值小于等于1V,同时具有输出电压、电流的测量和数字显示功能。
(3)尽量提高变换器的效率。
(4)其它。
1.3题目分析
从设计任务上看,本次设计是个DC--DC的电源开关变换器,而且其中电源变换器的效率要求也是非常高的,并且本题的第一个难点在于它输出电压为可调,输出电流也可调。
所以要求电压调节与电流调节要精确。
二、方案论证与比较
2.1DC-DC主回路拓扑的方案选择
DC-DC变换有隔离和非隔离两种。
输入输出隔离的方式虽然安全,但是由于隔离变压器的漏磁和损耗等会造成效率的降低,而本题没有要求输入输出隔离,所以选择非隔离方式,根据要求,需要升降压电路,具体有以下几种方案:
方案1:
串并联开关电路形式。
实际上此电路是在串联开关电路后接入一个并联开关电路。
用电感的储能特性来实现升降压,电路控制复杂,但能达到题目要求的0-15VU,可以满足U2从从12V变到15V时,电压调整率SU≤5%的变化。
(见图1)
图1
方案2:
采用恒频脉宽调制控制器芯龙XL6009E01,这个芯片可推挽或单端输出,工作频率为400KHz,输出电压可达40V,内有5V的电压基准,死区时间可以调整,输出级的拉灌电流可达200mA,驱动能力较强。
芯片内部有两个误差比较器,一个电压比较器和一个电流比较器。
电流比较器可用于过流保护,电压比较器可设置为闭环控制,调整速度快。
输出电压为:
以上比较,故选择方案2。
2.2控制方法的方案选择
考虑到发挥部分要显示输出的电压和电流,所以采用单片机系统控制。
控制开关的导通与截止。
本系统采用STC12C5A32S2作为系统的核心,内部自带10位AD,精度较高,满足题目要求。
通过采集取样电阻的电压,可以计算出输出电压。
采集电流传感器的电压,计算出对应电流,当达到动作电流时,单片机控制升降压芯片的EN脚,给低电平,可以关闭升降压模块的输出。
2.3提高效率的方案选择
影响效率的因素主要包括单片机及外围电路功耗,单片机及外围电路供电电路的效率和DC—DC变换器的效率。
1)升降压斩波电路中开关管的选取:
电力晶体管(GTR)耐压高、工作频率较低、开关损耗大;电力场效应管(PowerMOSFET)开关损耗小、工作频率较高。
从工作频率和降低损耗的角度考虑,选择电力场效应管作为开关管。
2)选择合适的开关工作频率:
为降低开关损耗,应尽量降低工作频率;为避免产生噪声,工作频率不应在音频内。
综合考虑后,我们把开关频率设定为20kHz。
3)升降压电路中二极管的选取:
开关电源对于二极管的开关速度要求较高,可从快速恢复二极管和肖特基二极管中加以选择。
与快速恢复二极管相比,肖特基二极管具有正向压降很小、恢复时间更短的优点,但反向耐压较低,多用于低压场合。
考虑到降低损耗和低压应用的实际,选择肖特基二极管。
4)控制电路及保护电路的措施:
控制电路采取超低功耗单片机ICXL6009E01,其工作电流仅280μA;显示采取低功耗1602LCD;控制及保护电路的电源采取了降低功耗的方式,,单片机由7805从输入端引出单独供电。
三、详细软硬件分析
3.1整体设计:
整机原理图
单片机通过键盘控制电压的步进,在芯龙XL6009E01内部的电压误差放大器产生一个高或低电平,控制脉宽变化,来达到调整输出电压的变化,反复调整后使输出达到设定得值为止。
参考电压输出后电压的反馈调节是由芯龙XL6009E01自动调节的,调节速度快。
由于本设计对效率的要求比较高,所以在设计时尽量选用低功耗的单片机,而且单片机的外围电路要尽量少,本系统外围电路只有键盘,显示(A/D集成在STC12C5A32S2内部),这样可以尽可能的提高效率。
框图见图4。
3.2理论分析与参数计算
3.2.1控制电路设计与参数设计:
控制电路选用单片机来采集电压和电流,并且在液晶上显示。
通过判断电流值的大小,控制开关管的导通,过流保护。
3.2.2效率的分析:
输入功率计算公式:
,输出功率计算公式:
。
由于题目要求DC/DC变换器(控制器)都只能由Uin端口供电,不能另加辅助电源,所以单片机及一些外围电路消耗功耗要尽量的低。
提高效率主要是要降低变换器的损耗,变换器的损耗主要有MOSFET导通损耗,MOSFET开关损耗MOSFET驱动损耗,二极管的损耗、输出电容的损耗,和控制部分的损耗,这些损耗可以通过降低开关频率等方法来降低。
3.2.3保护电路设计与参数设计:
康铜电阻的大小选择:
康铜丝主要起两个作用,过流保护和测试负载电流。
康铜丝接在整流输入地和负载地之间,越小越好,这样会使两个地之间的电压很小。
但是如果太小由于干扰问题会造成过流保护的误判,并且对于后级运放的要求比较高,经过实验,选择0.1欧姆的电阻效果比较好。
由于电阻太小,难以测量,所以先测得1欧姆的电阻,然后截取其长度的十分之一。
芯龙XL6009片内有电流误差放大器。
可用于过流保护。
康铜电阻上的压降,与预先调好的值进行比较.若电流过大,输出高电平,开关管处于关断状态,使输出电压降低,形成保护功能。
一旦输出电压降低,导致输出电流降低,检测电压降低,电流误差放大器就会输出低电平,所以该电路具有自恢复功能。
3.4软件设计:
本设计的软件设计比较简单,完全出于效率的要求,把外围电路设计的尽可能的少,所以单片机驱动外围芯片均采用I/O口直接控制,没有采用总线方式。
四、系统调试
调试过程共分三部分:
硬件调试,软件调试,软硬件联调。
4.1 硬件调试:
由于该系统的闭环控制主要由芯片芯龙XL6009自动控制,单片机主要起输出参考电压,显示等一些辅助作用,再者根据理论值进行元器件的选择由于精度和干扰的影响,往往得到的结果和理论分析值又有一定的偏差,所以硬件调试难度很大。
4.2软件调试:
本系统的软件程序完全由C51编写,C语言效率高,但同时也存在一些缺点,比如严格定时比较困难。
在调试过程中采取的是自上至下的调试方法,单独调试好每一个模块,然后在联结成一个完整的系统调试。
五、 指标测试
5.1测试仪器
示波器,数字万用表;
5.2指标测试
5.2.1输出电压范围测试结果如表1:
表1输出电压范围测试
预置电压(V)
1.25
3
6
9
12
14
15
输出电压(V)
1.25
2.95
6.04
8.98
12.05
14.04
15.06
5.2.2电压调整率测试结果如表2:
表2电压调整率测试
输入电压(V)
输出电压(V)
输入电压(V)
输出电压(V)
12
14.89
14
15.00
13
14.96
15
15.00
电压调整率为(15-14.89)/15=0.7%
5.2.2负载调整率测试结果如表3:
表3负载调整率测试
输出电流(A)
0.25
0.30
0.50
输出电压(V)
15.1
15.05
14.9
负载调整率为(15.1-14.9)/15=1.3%
5.2.4噪声及纹波测试:
(U2=18V,Uo=14V,Io=0.5A,示波器AC耦合,扫描速度20ms/div)Vopp<=290mV
5.2.5效率测试:
(U2=18V,Uo=15V,Io=0.5A)Iin=0.53A,Uin=18.01V,Uo=14.89V,Io=0.44A,计算得效率为:
73%。
5.2.6过流保护:
过流保护动作电流为1.42A
5.3系统对题目的完成情况:
表4系统对题目的完成情况对照表
基本部分
要求
实现
输出电压范围0-15V
输出电压范围为0-16V
最大输出电流0.48A
符合要求
电压调整率Su<5%
电压调整率为4.54%
负载调整率
负载调整率5%
输出噪声纹波电压峰峰值
Vopp<=490mV
变换器的效率
73%
过流保护的动作电流
1.42A
发挥部分
电压调整率5%
电压调整率为4.52%
负载调整率5%
负载调整率4.67%
变换器的效率
73%
过流后能否自动恢复
能
键盘设置步进1V
达到指标
5.4结果分析和总结:
各项结果都符合系统指标,产生误差的原因包括:
测量时设备不同,所用元器件精度不够,两个不同地之间的干扰等。
电压调整率方面:
电压采样电阻的精度会影响其电压的变化。
电阻随温度的变化而阻值相应的会有所变化,这样给反馈的电压不准,导致输出地电压会变化。
这是最主要的原因之一。
外界的干扰也会导致不同程度的变化,外界干扰会导致输出有一个冲击偏差,这样进入反馈就会导致所有的都变化,调整率会变化。
纹波电压方面:
纹波电压主要有电感的电流变化与电容的等效串联电阻的大小,线路的组织大小有关系。
最重要的是外界的干扰和开关噪声的干扰,使纹波电压太大。
通过这次比赛收获不少,总感觉时间不够用,自己掌握的知识太少。
在此也学到了很多,团队合作很重要,把理论运用到实践中去需要多方面的能力。
通过此次比赛,我们的动手能力得到了提升,知识得到了巩固。
以后会注意把知识学有所用。
六、附件
6.1附件一:
键盘模块的方案选择
方案一:
采用集成芯片8279控制键盘,单片机资源占用少,响应稳定,这样单片机可以很方便的控制,但功耗高,本设计只需要3个键盘就可以满足要求,故不采用这种方案。
方案二:
按键直接接在I/O口上,编程简单,应用方便,且满足要求,在没有键按下时根本没有任何功耗。
鉴于上面分析,本设计采用方案二。
6.2附件二:
XL6009升压型直流电源变换器芯片
●最大输出电流:
3A;
●最高输入电压:
XL6009为5~32V
●输出电压:
Adj(1.25V)可调;改变R2和R1的比例关系,来调节输出电压。
例如:
R2=18KR1=1K
VOUT=1.25*(1+R2/R1)得出输出电压为23.75V。
●振动频率:
400kHz;
●转换效率:
80%~90%(不同电压输出时的效率不同);
●封装形式:
TO263-5L;
●控制方式:
PWM;
●工作温度范围:
-40℃~+125℃
●工作模式:
低功耗/正常两种模式可外部控制;
●工作模式控制:
TTL电平兼容;
●所需外部元件:
只需极少的外围器件便可构成高效稳压电路;外围元件少,低纹波。
●器件保护:
热关断及电流限,输出短路保护功能;输入电源开关噪声抑制功能;Enanle开关信号的迟滞功能;
6.3附件三:
核心原理图
由于开关电源的频率高,对外有干扰,并且本题指标要求高,抗干扰能力要求特别严格,所以在布线时要特别小心,所以我们选择了画PCB图,然后自行腐蚀,然后把线刻出,这样的话测试方便,抗干扰性能也好。
图5和图6分别是核心原理图。
图5核心原理图
图6过流恢复原理图
7.5附件六:
重要源程序
#include
#include"delay.h"
#include"AD.h"
#include"1602.h"
sbiten=P1^7;
ucharcodezifu[]={'0','1','2','3','4','5','6','7','8','9','.'};
ucharcodevoltage[]={"Uv"};
ucharcodeI[]={"IA"};
uchara[5];
ucharbb[5];
ucharnum;
voidvall()
{
floatval;
val=AD_work(0);
val=(val+0.075)*40;
a[0]=(uchar)val/100;
a[1]=(uchar)val%100/10;
a[2]=10;
a[3]=(uchar)val%10;
LCD_Write_Char(2,0,zifu[a[0]]);
LCD_Write_Char(3,0,zifu[a[1]]);
LCD_Write_Char(4,0,zifu[a[2]]);
LCD_Write_Char(5,0,zifu[a[3]]);
}
voidII()
{
floatii;
ii=AD_work
(1);
ii=ii*10;
bb[0]=(uchar)ii/100;
bb[1]=(uchar)ii%100/10;
bb[2]=10;
bb[3]=(uchar)ii%10;
bb[4]=(uchar)(ii-a[0]*100-a[1]*10-a[3]);
LCD_Write_Char(2,1,zifu[bb[0]]);
LCD_Write_Char(3,1,zifu[bb[1]]);
LCD_Write_Char(4,1,zifu[bb[2]]);
LCD_Write_Char(5,1,zifu[bb[3]]);
LCD_Write_Char(6,1,zifu[bb[4]]);
}
voidmain()
{
LCD_Init();
AD_init();
LCD_Write_String(0,0,voltage);
LCD_Write_String(0,1,I);
while
(1)
{
vall();
if(AD_work(0)<=1.5)
{en=1;
II();}
else
{en=0;
LCD_Write_String(0,1,I);}
delayms(200);
delayms(200);
}
}
/*voidysv(floatys)
{ys=ys*10;
c[0]=(uchar)ys/100;
c[1]=(uchar)ys%100/10;
c[2]=10;
c[3]=(uchar)ys%10;
LCD_Write_Char(3,0,zifu[c[0]]);
LCD_Write_Char(4,0,zifu[c[1]]);
LCD_Write_Char(5,0,zifu[c[2]]);
LCD_Write_Char(6,0,zifu[c[3]]);
}*/
/*voidzkb()
{
floatbb;
bb=CCAP0H;
bb=bb*100/256;
d[0]=(uchar)bb/10;
d[1]=(uchar)bb%10;
d[2]=10;
d[3]=(uchar)(bb-d[0]*10-d[1])*10;
LCD_Write_Char(10,0,zifu[d[0]]);
LCD_Write_Char(11,0,zifu[d[1]]);
LCD_Write_Char(12,0,zifu[d[2]]);
LCD_Write_Char(13,0,zifu[d[3]]);
}