DCDC开关电源设计.docx
- 文档编号:11337343
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:29
- 大小:308.29KB
DCDC开关电源设计.docx
《DCDC开关电源设计.docx》由会员分享,可在线阅读,更多相关《DCDC开关电源设计.docx(29页珍藏版)》请在冰豆网上搜索。
DCDC开关电源设计
DC-DC开关电源设计
摘要开关稳压电源因为其具有功耗小、效率高、体积小、重量轻、稳压范围宽等优点日益得到广泛的应用。
目前,国内外开关稳压电源的发展的趋势是不断提高输出效率和输出功率。
要提高输出的效率,必须提高电源的开关频率。
这就对电路中其它器件的频率特性提出了更高的要求。
并且现在的开关调节模块大多都已经集成化,使用方便,有很高的线性和负载调节特性,转换效率高负载调整率低而且输出纹波小,这里我用lm2596开关调节器实现降压,用STC89S52为核心电路控制ADC0809模数转换对输出电压电流的监测,将监测到的数据显示在液晶LCD1602上,有过流保护功能,监测电路使用的电源由降压后转换提供。
关键字开关稳压电源开关调节器ADC0809STC89S52LCD1602
一、设计要求和指标
要求
1.基本部分:
1.输出可调电压5—15V,输出电流不小于1.5A,接入负载能
长时间稳定工作;(15)
2.DC/DC转换效率不低于70%;(5)
3.能够显示输出电压,电流,误差小于2%;(10)
4.U=12V、Io在0.1~1A范围内变化,负载调整率SI≤2%;(10)
5.输入电压24V,输出电压稳定12V,输出电流为1.5A时输出纹波小于200mv;(10)
2.发挥部分:
1.输出可调电压为3—18V,输出电流达到2.5A以上,接入
负载能长时间稳定工作,进一步扩展电源输出功率;(5)
2.能够显示输出电压,电流,误差小于0.5%;(10)
3.Uo=12V、Io在0.1~2.5A范围内变化,负载调整SI≤0.5%;(5)
4.输出电压稳定为12V,输出电流为2.5A时,输出纹波小于50(10)
5.输出电流为2.5A进一步提升DC/DC转换效率,使不低于85(10)
6.具有输出过流保护功能,Io≥3.5A时动作;且故障排除后够恢;(5)
7.其他;(5)
3、说明
(1)输入电压由直流稳压电源提供,逆变电源全部电路均由UI供电,不得再使用其他电源;
(2)负载调整率计算方法:
Io=0.1A时输出电压为Uo1,Io=1A时输出电压Uo2,则负载调整率:
(3)注意作品制作工艺,留出电流、电压测试端口。
二、系统框图设计
三、电路设计方案选择
1.DC-DC模块
DC-DC模块式将输入的直流电压转换为另一直流电压,而设计要求是将24v转换为可调的稳压直流电压输出,就用到了DC降压型电路。
方案一:
使用隔离式的PWM(脉宽调制)控制高频开关变压器。
该电路电路结构简单,外围元件少。
但是要用到变压器,体积大,负载调整率的,电源效率低。
方案二:
使用集成的开关电压调节芯片lm2596-adj,LM2596开关电压调节器是降压型电源管理单片集成电路,能够输出3A的驱动电流,同时具有很好的线性和负载调节特性,该器件内部集成频率补偿和固定频率发生器,开关频率为150KHz。
负载调整率高,能够输出小于37V的可调电压,使用方便,且体积小。
对比两个方案,电路使用方案二。
2.监测显示模块
方案一:
使用数码管显示,数码管是由多个发光二极管封在在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
有共阴,共阳两种。
方案二:
使用液晶显示屏lcd1602,1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
比较两种方案将选用方案二,lcd1602操作简单,可以直接对1602的引脚直接操作。
3.电流电压采样模块
方案一:
使用8位的adc0809多通道模拟量采集,逐次逼近型转换芯片。
转换速度快,转换精度高。
方案二:
使用8位的adc0804一路模拟量输入,操作简单,体积小,且方便电路的设计,但是该芯片只能一路模拟量输入。
综合两者的比较,本实验选用adc0809。
四、各个模块分析
1.电压转换模块
因为由单个lm2596组成的dc-dc转换电路最高能输出3A的驱动电流,所以这里设计使用两个一样的电路进行并联增大电路带动负载能力。
1.1主要元件介绍
LM2596开关电压调节器是降压型电源管理单片集成电路,能够输出3A的驱动电流,同时具有很好的线性和负载调节特性。
固定输出版本有3.3V、5V、12V, 可调版本可以输出小于37V的各种电压。
该器件内部集成频率补偿和固定频率发生器,开关频率为150KHz,与低频开关调节器相比较,可以使用更小规格的滤波元件。
由于该器件只需4个外接元件,可以使用通用的标准电感,这更优化了LM2596的使用,极大地简化了开关电源电路的设计。
该器件还有其他一些特点:
在特定的输入电压和输出负载的条件下,输出电压的误差可以保证在±4%的范围内,振荡频率误差在±15%的范围内;可以用仅80μA的待机电流, 实现外部断电;具有自我保护电路(一个两级降频限流保护和一个在异常情况下断电的过温完全保护电路)
1.2参数计算
1.2.1输出电压的计算(及R22和R4,R5的选择)
已知参数
Vout=3~18VVref=1.23vVd=0.5vVsat=1.16vF=150KHZ
Vin=24V
选择精度为1%的1k电阻R4,则R22根据公式
当vout=18v,R22=13.634k当vout=3v,R22=1.439k
则去R22=20K,R5=1.5K,
1.2.2电感的选择
根据公式,代入相应数值求得,再对比电压调节器的电气特性
选择电感值为47uh
1.2.3输入输出电容的选择
根据电压调节器芯片使用手册中调节器外围元件的选择方法,结合设计要求和指标电压转换模块,输入电容470uf/35v,输出电容220uf/35v。
1.2.4吸纳二极管的选择
二极管的最大承受电流能力至少要为最大负载电流的1.3倍,且反向耐压至少是最大输入电压的1.25倍,有较快的恢复,这里选择肖特基二极管IN5822.。
2测量与显示模块
2.1电路辅助电源
由于设计要求不能外接供电电源,所以电路的辅助电源由自己设计提供,电路还是使用电压调节器调节输出稳定的5v,参数的计算根据上述计算方法求得。
2.2电路控制芯片STC89C52RC
STC89C52RC单片机是新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
2.2.1主要特性如下:
1. 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以意
选择,指令代码完全兼容传统8051.
2. 工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单机)3. 工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
4. 用户应用程序空间为8K字节
5. 片上集成512字节RAM
6. 通用I/O口(32个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8. 具有EEPROM功能
9.具有看门狗功能
10. 共3个16位定时器/计数器。
即定时器T0、T1、T2
11. 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒
12. 通用异步串行口(UART),还可用定时器软件实现多个UART
2.2.2单片机的复位电路
在单片机启动0.1S后,电容C两端的电压持续充电为,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。
当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。
随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。
根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。
单片机系统自动复位。
2.2.3单片机时钟电路
单片机晶振是单片机内部电路产生单片机所需的时钟频率的部件,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
晶振结合单片机内部电路产生单片机所需要的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行的速度就越快,单片机的一切指令的执行都是建立在单片机晶振提供的时钟频率。
这里电路使用12M晶振供单片机时钟频率。
2.3AD转换模块芯片ADC0809
ADC0809是8位逐次逼近型A/D转换器,是目前应用比较广泛、典型的A/D转换芯片之一。
2.3.1管脚介绍
(1)IN7~IN0——模拟量输入通道
(2)ALE——地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
(3)START——转换启动信号。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。
本信号有时简写为ST.
A、B、C——地址线。
通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。
(4)CLK——时钟信号。
ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。
通常使用频率为500KHz的时钟信号
(5)EOC——转换结束信号。
EOC=0,正在进行转换;EOC=1,转换结束。
使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
(6)D7~D0——数据输出线。
为三态缓冲输出形式,可以和单片机的数据线直接相连。
D0为最低位,D7为最高
(7)OE——输出允许信号。
用于控制三态输出锁存器向单片机输出转换得到的数据。
OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。
Vcc—— +5V电源。
(8)Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V).
使用adc0809对电源输出的模拟量电压和电流转换为能够显示的数字量,对DC-DC开关电源的实时监测控制。
2.3.2电压采集电路
检测电压是通过使用四个相同阻值为10K的电阻串联平均分压再使用adc0809测量其中的一个电阻的电压,转换为单片机能够显示的数值,处理后显示在lcd1602上。
2.3.3电流采集电路
检测电流是通过使用一个0.1欧的电阻采样电流转换为电压,但是转后的电压比较小,所以使用双运放的lm358对电压十倍(放大倍数=(R15+R14)/R14)放大后输入adc0809转化为数字量,经过单片机的处理后显示在lcd1602上。
2.4监测的显示
LCD1602
引脚功能介绍
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
指令介绍
1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。
(说明1为高电平,0为低电平)
指令1:
清显示,指令码01H,光标复位到地址00H位置 指令2:
光标复位,光标返回到地址00H
指令3:
光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:
屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。
指令4:
显示开关控制。
D:
控制整体的显示开与关,高电平表示开显示,低电平表示关显示。
C:
控制光标的开与关,高电平表示有光标,低电平表示无光标 B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位 S/C :
高电平时显示移动的文字,低电平时移动光标
指令6:
功能设置命令 DL:
高电平时为4位总线,低电平时为8位总线 N:
低电平时为单行显示,高电平时为双行显示,F:
低电平时显示5X7的点阵字符,高电平时显示5X10的显示字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址 BF:
忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。
使用lcd先根据液晶的使用手册写出液晶屏的驱动程序,后使用把信息显示到液晶上时直接调用液晶子程序即可。
2.5过流保护模块
单片机输出的电流只有几个毫安,不足以驱动一个继电器,所以使用一个三极管增大驱动能力,并且在继电器接了个反向的二极管用来保护继电器。
将继电器一端接电源输出端,一端接负载,通过STC89C52程序控制继电器的断开吸合实现过流保护和恢复,当监测到电源转换电路出现过流时软件控制断开继电器从而断开电源的输出,当监测到电流恢复到正常范围时继电器吸合,电路恢复正常。
五、程序设计
程序流程图
六、监测电路仿真
软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。
Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。
Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点的特点是可以与keil4工具软件结合进行编程仿真调试。
1.仿真结果与分析
1.1仿真图
1.2误差分析
标准电压/V
测量电压/V
绝对误差
0.00
0
0
1.00
1.01
0.01
1.49
1.49
0
2.48
2.50
0.02
2.98
2.98
0
3.48
3.45
0.03
3.98
4.00
0.02
4.49
4.47
0.02
4.99
5.01
0.02
根据测量数据测量效果完全符合设计要求。
七、DC-DC转换电路参数测试与误差分析
1.测试数据
负载调整率测试
负载调整率
IO(A)
UO(V)
SI(%)
U2=12V
0.1
3.302V
1.09%
1
3.266V
2.5
输出纹波电压
输入电压(V)
输出电压(V)
输出电流(A)
纹波(mv)
24
12
1.5
24
12
2.5
输出可调电压:
V;
输出电流:
A;
DC-DC变换器的效率:
72.38%;((Uin*Iin)/(Uout*Iout))
过流保护功能:
动作电流>=3.50A;
测量结果表示,均达到基本设计要求,甚至有些测试结果远远超过给定的基本设计指标,尤其是效率的提高有效地保证电源的可靠性;所有经过大电流的线路均尽量采用粗导线,开关器件均选用优良器件,器件的各项指标参数均远大于额定值,所以电压调整率和负载调整率均得到提高。
八、设计总结
本次设计,有一些功能,我们没有很好的实现,比如我们感觉我们的输出效率还有提高的空间,还有我们的输出部分还不是很稳定,一个原因可能是我们的电压输出相对还不是很稳定;还有一个,我们觉得在输出方面我们还可以进一步改进和提升,比如在显示输出电流上,精度能设计得更高。
本次设计中,由于我们的能力以及时间有限,以及硬件方面的问题。
通过本次设计大赛,我们学到了很多我们在课堂上学不到的实践能力,我们的动手能力得到了很大的提升,我们在书本所学到的知识得到了很大的实践,让我们书本上的知识有了更加深刻的理解。
我们同时还学会了团队合作的精神,非常感谢学校组织的设计大赛,让我们学到了很多很多实践经验,并对我们的自主学习能力起到了很大的作用。
附件:
程序
#include
#include"intrins.h"
#include"ADC0809.h"
#include"1602.h"
#defineucharunsignedchar
#defineuintunsignedint
ucharcodestr1[]="V/Adisplay";
/************将电压值送人液晶lcd1602显示*****************/
voiddisplay_V(void)
{
uinti;
write_com(0x80+0x40+1);
for(i=0;i<6;i++)
{
write_dat(tab_V[i]);
_nop_();
}
}
/************将电流值送人液晶lcd1602显示*****************/
voiddisplay_A(void)
{
uinti;
write_com(0x80+0x40+9);
for(i=0;i<5;i++)
{
write_dat(tab_A[i]);
_nop_();
}
}
voidmain(void)//主函数
{
uinti;
Init_ADC0809();
Init_1602();
write_com(0x80);
for(i=0;i<14;i++)
{
write_dat(str1[i]);
_nop_();
}
while
(1)//循环扫描显示
{
datepro_V();
display_V();
datepro_A();
display_A();
}
}
ADC0809子程序
#ifndef__ADC0809_H__
#define__ADC0809_H__
#defineucharunsignedchar
#defineuintunsignedint
sbitST=P3^0;
sbitEOC=P3^1;
sbitOE=P3^2;
sbitADDA=P2^2;
//sbitADDB=P0^1;
//sbitADDC=P0^2;
sbitALE=P3^3;
sbitCLK=P3^7;
sbitKEY=P3^6;
uchartab_V[5];
uchartab_A[5];
/********************************************************
ADC0809的非精准毫秒延时(使用12M晶振)
********************************************************/
voiddelay_adc(uintz)
{
uinti,j;
for(i=z;i>0;i--)
for(j=120;j>0;j--);
}
/*********************************************************
用51的T1中断产生一个500khz的时钟信号
******************************************************/
voidInit_ADC0809(void)
{
TMOD=0x20;//启用定时器方式2
TH1=(255-250);//附初值
TL1=(255-250);
EA=1;//总中断开
ET1=1;//开定时器1中断
TR1=1;//启动定时器1
ST=0;//初始化ADC0809
OE=0;
ALE=0;
}
/*************************************************
控制ADC0809读出二进制电压值
**************************************************/
ucharADC_V()
{
uchartemp_V=0;
ST=0;
ADDA=0;//A,B,C三条地址线选择模拟量输入通道
//ADDB=0;
//ADDC=0;
ST=0;//ST=0;ST=1;ST=0;产生一个正选脉冲启动转换
ALE=1;//
ST=1;//ST=1;
ALE=0;//
ST=0;//ST=0;
delay_adc
(2);
if(EOC==0)OE=1;//如果转换结束,OE置”1“允许从ADC0809读取数据
temp_V=P1;
delay_adc
(2);
OE=0;//读取结束后OE置“0”
returntemp_V;
}
/************电压值转换*****************/
voiddatepro_V(void)
{
floatdat_V,tem_V;
dat_V=ADC_V();//取出二进制码
tem_V=dat_V/255*5*4*100;//转换为可显示数值并增大100倍
//这里测量电压0~20v用四个等值电阻(电阻使用两个以上)
//平均分压出5v进行测量(可根据此方法测量其他范围的电压值)
tab_V[0]=((int)tem_V)/1000+0x30;//数值十位
tab_V[1]=((int)tem_V)%1000/100+0x30;//数值十位
tab_V[2]=0x2e;//字符“.”
tab_V[3]=((int)tem_V)%100/10+0x30;//小数点后两位(精确0.01v)
tab_V[4]=((int)tem_V)%10+0x30;//
tab_V[5]=0x56;//字符“V”
if(tab_V[0]==0x30){tab_V[0]=0x20;}//判断十位是否为“0”,为“0”不显示
}
/*************************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DCDC 开关电源 设计