多路可调电源_第1页
多路可调电源_第2页
多路可调电源_第3页
多路可调电源_第4页
多路可调电源_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2016年全国大学生电子设计竞赛多路低压输出电源(吕刚、兰元帅、杨玉凯组)2016年7月5日II摘 要 竞赛结束时,参赛队应将设计报告密封纸在距设计报告上端约2厘米处装订,然后将参赛队的代码(代码由赛区组委会统一编制,在发放题目时通知各参赛队)写在设计报告密封纸的最上方。设计报告装订好后将密封纸掀起并折向报告背面,最后用胶水在后面粘牢。设计报告上不允许出现参赛队的学校、姓名等文字。目 录1系统方案11.1 DC-DC的论证与选择11.2 低压差线性稳压的论证与选择11.3 控制系统的论证与选择12系统理论分析与计算22.1 低压差线性稳压的分析22.1.1 低压差线性稳压芯片的分析22.2 低

2、压差线性稳压的计算22.2.1 输出电压计算22.3 DC-DC的计算32.3.1 LM2596分析33电路与程序设计43.1电路的设计43.1.1系统总体框图43.1.4电源43.2程序的设计53.2.1程序功能描述与设计思路53.2.2程序流程图54测试方案与测试结果54.1测试方案54.2 测试条件与仪器64.3 测试结果及分析64.3.1测试结果(数据)64.3.2测试分析与结论6附录1:电路原理图7附录2:源程序8多路低压输出电源1系统方案本系统主要由DC-DC模块、低压差线性稳压模块、电流电压采样模块、控制组成,下面分别论证这几个模块的选择。1.1 DC-DC的论证与选择方案一:采

3、用MC34063 开关电源芯片早期的开关电源芯片之一,开频率40KHz 80KHz ,最大输出电流1A ,但是由于输出的纹波比较大,一般很难做到20mV 以下,所以无法满足设计需求。方案二:采用LM2596 开关电源芯片也算是早期开关电源芯片了,但是其性能比MCP34063好,开关频率可达200KHz ,输出可以很容易做到20mV 以内,可以满足设计需求。综合以上两种种方案,选择方案二。1.2 低压差线性稳压的论证与选择方案一:采用LM317LM317 是比较老的可调线性稳压器,具备1.5A 输出电流,最大压差2.5V。输入、输出压差比较大,效率相对较低。方案二:采用AMS1117新一代低压差

4、线性稳压,具备1A输出电流,最大压差1.35V方案三:采用三极管做射极跟随器直接采用三极管做跟随器,由于基极电压会等于发射极电压减结电压,能够实现电压可调输出。但实际测试发现发射极电压带上负载后电压会被拉低,从而无法满足设计需求。综合以上三种方案,选择方案二。1.3 控制系统的论证与选择方案一:采用STM32F103ZET6-ARM 32位的Cortex-M3-最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHZ单周期乘法和硬件除法。-2个DMA控制器,共12个DMA通道:DMA1有7个通道,DMA2有5个通道-支持的外设:定时器、ADC、SPI、USB、IIC和U

5、ART-多达112个快速I/O端口(仅Z系列有超过100个引脚)-26/37/51/80/112个I/O口,所有I/O口一块映像到16个外部中断;几乎所有的端口均可兼容5V信号。整体具有较强的性能。方案二:采用TI-MSP430F5438AMSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。MSP430单片机称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案。该系列单片机多应用于需

6、要电池供电的便携式仪器仪表中。综合考虑采用TI-MSP430F5438A2系统理论分析与计算2.1 低压差线性稳压的分析 2.1.1 低压差线性稳压芯片的分析由于输出电压比较低,所以采用超低压差线性稳压,可以减轻设计难度,减小EMI,提高系统稳定性,同时还具有低成本的特点。本设计采用艾曼斯公司AMS1117、AMS1085 两款低压差稳压芯片,在满足电压电流的同时,由于压差很低,最高压差1.2V,相比开关电源,二极管整流,及其MOS开关损耗,在低压输出这里,效率相差不大。2.2 低压差线性稳压的计算 2.2.1 输出电压计算根据数据手册资料可知: 2-2-1由上式可得,最小输出电压为参考电压V

7、REF=1.25V。通道一需要输出1.1V电压通道一:输出1.1V在输出串联一个二极管(利用二极管导通后两端电压不变原理分压0.6V),所以将输出电压调节到1.7V ,由于串联了二极管管,输出就只有1.1V 了。通道二:输出1.5VR1 固定为1KR,调节R2阻值,使之输出电压达到1.5V。通道三:输出1.8VR1 固定为1KR,调节R2阻值,使之输出电压达到1.8V。通道四:输出3.3VR1 固定为500R,调节R2阻值,使之输出电压达到3.3V。通道五:输出3.0VR1 固定为500R,调节R2阻值,使之输出电压达到.3.0V。通道六:输出3.3V直接采用固定电压输出的AMS1117_3.

8、32.3 DC-DC的计算 2.3.1 LM2596分析前级采用DC-DC变化器,将输入电压降到5.0V 和 3.0 V 为低压差线性稳压芯片提供电源,从而提高效率。根据手册搭建电路,并根据提供的计算公式计算各阻值,公式如下: 2-3-1VREF=1.25V通过固定R1,调节R2 就可以得到输出5.0V 和3.0 V 电压。3电路与程序设计3.1电路的设计3.1.1系统总体框图系统总体框图如图3.3.1所示:输入控制电路DC-DCAMS1117_ADJ_3.0AMS1085_ADJ_3.3AMS1117_ADJ_1.8AMS1117_ADJ_1.5AMS117_ADJ_1.1AMS1117_3

9、.3电压电流检测PWM开关电压电流检测PWM开关电压电流检测PWM开关电压电流检测PWM开关电压电流检测PWM开关通道六输出且为系统供电通道五输出通道四输出通道三输出通道二输出通道一输出图3.3.1系统总体框图3.1.4电源电源由学生电源提供5V - 30V电压范围。故不作详述。3.2程序的设计3.2.1程序功能描述与设计思路1、程序功能描述根据题目要求软件部分主要实现按键控制输出开关、PWM控制、电压电流检测以及OLED显示。1)按键:实现一键开关机,PWM选择及其调节。2)PWM:调节脉宽实现LED 亮度变化。3)电压电流检测:采用输出电压、电流及其输入电压、电流,计算系统总效率,并做过流

10、保护。3.2.2程序流程图1、主程序流程图2、XXX子程序流程图3、XXX子程序流程图4、XXX子程序流程图4测试方案与测试结果4.1测试方案1、硬件测试通过万用表测试各路输出电压、电流,同时测量输入总电压、电流。2、软件仿真测试通过示波器测量控制电路产生的PWM,在通过逻辑分析仪分析各通道启动时序。并测量显示是否正常。3、硬件软件联调通过示波器测量输出PWM,通过逻辑分析仪测量个输出通道启动时序。并观察显示是否正常。4.2 测试条件与仪器测试条件:检查多次,硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。测试仪器:高精度的数字万用表,数字示波器,学生电源。4.3 测试结果

11、及分析4.3.1测试结果(数据)4.3.2测试分析与结论根据上述测试数据,由此可以得出以下结论:1、2、3、综上所述,本设计达到设计要求。15附录1:电路原理图整体电路图附录2:源程序#include <msp430F5438A.h>void Delay_ms(unsigned int i);#define uchar unsigned char#define uint unsigned int#define ulong unsigned long int#define CPU_F (double)24000000UL) /XT2 -> 24MHZ#define Delay_

12、us(x) _delay_cycles(long)(CPU_F*(double)x/1000000.0) /延时1us#define Delay_ms(x) _delay_cycles(long)(CPU_F*(double)x/1000.0) /延时1msuchar num = 0;void Set_Vcore(uint level);void Init_Clock();void Timer_B0_1_init() /TAB0.1输出PWM 由P4.1输出 TB0CTL |= TBSSEL_1+MC_1+TBCLR; /ACLK,增计数 TB0CCTL1 = OUTMOD_7; /输出模式7

13、 TB0CCR0 = 164; /时钟频率为32768HZ,波形32768/CCR0=199HZ TB0CCR1=123; /占空比3/4void Timer_B0_2_init() /TB0.2输出PWM 由P4.2输出 TB0CTL |= TBSSEL_1+MC_1+TBCLR; /ACLK,增计数 TB0CCTL2=OUTMOD_7; TB0CCR0 = 164; TB0CCR2=41; /占空比1/4void Timer_B0_3_init() /TB0.3输出PWM 由P4.3输出 TB0CTL |= TBSSEL_1+MC_1+TBCLR; /ACLK,增计数 TB0CCTL3 =

14、 OUTMOD_7; /输出模式7 TB0CCR0 = 164; /时钟频率为32768HZ,波形32768/CCR0=199HZ TB0CCR3=123; /占空比3/4void Timer_B0_4_init() /TB0.4输出PWM 由P4.4输出 TB0CTL |= TBSSEL_1+MC_1+TBCLR; /ACLK,增计数 TB0CCTL4 = OUTMOD_7; /输出模式7 TB0CCR0 = 164; /时钟频率为32768HZ,波形32768/CCR0=199HZ TB0CCR4=123; /占空比3/4void Timer_B0_5_init() /TB0.5输出PWM

15、 由P4.5输出 TB0CTL |= TBSSEL_1+MC_1+TBCLR; /ACLK,增计数 TB0CCTL5 = OUTMOD_7; /输出模式7 TB0CCR0 = 164; /时钟频率为32768HZ,波形32768/CCR0=199HZ TB0CCR5=123; /占空比3/4void Timer_B0_6_init() /TB0.6输出PWM 由P4.6输出 TB0CTL |= TBSSEL_1+MC_1+TBCLR; /ACLK,增计数 TB0CCTL6 = OUTMOD_7; /输出模式7 TB0CCR0 = 164; /时钟频率为32768HZ,波形32768/CCR0=

16、199HZ TB0CCR6=123; /占空比3/4void IO_init() P4SEL|=BIT1+BIT2; P4DIR|=BIT1+BIT2;/P4.1 P4.2输出 P4SEL|=BIT3+BIT4; P4DIR|=BIT3+BIT4;/P4.3 P4.4输出 P4SEL|=BIT5+BIT6; P4DIR|=BIT5+BIT6; /P4.5 P4.6输出void main(void) /主函数 WDTCTL = WDTPW + WDTHOLD; /关闭看门狗 Init_Clock(); /初始化系统时钟 P4OUT |= BIT1 + BIT2 + BIT3 + BIT4 + B

17、IT5 + BIT6; /P8.1 P8.2 P8.3 P8.4 P8.5 P8.6 为上拉 P4OUT &= BIT6; TA1CCTL0 = CCIE; / CCR0 interrupt enabled TA1CCR0 = 10000; /定时10ms TA1CTL = TASSEL_2 + MC_1 + TACLR; / SMCLK, upmode, clear TAR TA1CTL |= ID_3; / 对SMCK进行8分频,然后作为TACLK使用 TA1EX0 |= TAIDEX_2; / 对SMCK8分频后再进行3分频,然后作为TACLK使用,总共为24分频得到1Mhz P

18、1DIR &= ( BIT4 + BIT5 + BIT6); /P1.4、P1.5,P1.6 设置为输入 - KEY P1OUT |= BIT4 + BIT5 + BIT6; /P5.4 P5.5 为上拉 P1IE |= BIT4 + BIT5 + BIT6; / 允许P1.4、P1.5,P1.6中断 P8DIR |= BIT0+BIT1;/P8.0设置为输出 P8OUT |= BIT0+BIT1; /P8.0 = 1,LED灭 P1IFG &= (BIT4 + BIT5 + BIT6); P1IES |= BIT4 + BIT5 + BIT6; / P1.4、P1.5,P1.

19、6设为下降沿中断 P1REN |= BIT4 + BIT5 + BIT6; /上拉下拉电阻使能 _EINT(); /while(1); while(1) if(!(P5IN&BIT4) /P5.4按下 /Delay_ms(10); if(!(P5IN&BIT4) /确认P5.4按下 IO_init(); Timer_B0_4_init(); Timer_B0_1_init(); Timer_B0_2_init(); Timer_B0_3_init(); Timer_B0_5_init(); Timer_B0_6_init(); _EINT(); / 总中断允许 TB0CCR0

20、= 164; TB0CCTL4 = OUTMOD_7; TB0CCR4=123; TB0CTL |= TBSSEL_1+MC_1+TBCLR; while(1); /while(!(P5IN&BIT4); /等待按键松开 / Timer A0 interrupt service routine#pragma vector=TIMER1_A0_VECTOR_interrupt void TIMER1_A0_ISR(void) num+; if(num = 1) P4DIR |= BIT2; /P8.2设置为输出,P8与第0位(与1相与等于1,其他位不变)P4OUT &= BIT2

21、; /P8.2 = 0,P8OUT &= BIT0; /P8.0 = 1,LED灭 /num = 0; if(num = 10) P4DIR |= BIT5; /P8.5设置为输出,P8与第0位(与1相与等于1,其他位不变) P4OUT &= BIT5; /P8.5 = 0,LED亮 P4DIR |= BIT1 + BIT3 + BIT4; P4OUT &= BIT1; P4OUT &= BIT3; P4OUT &= BIT4; P8OUT &= BIT1; /P8.0 = 1,LED灭 num = 0; #pragma vector = POR

22、T1_VECTOR /P1口中断源_interrupt void P1_ISR(void) /声明一个中断服务程序,名为P1_ISR() if(P1IFG & BIT4) P8OUT &= BIT0; /P8.0 = 1,LED灭 TB0CCR4+; /LED显示状态取反 /在这里写P1.5中断处理程序 if(TB0CCR4=TB0CCR0) TB0CCR4=1; P1IFG &=BIT4; if(P1IFG & BIT5) TB0CCR4-; /LED显示状态取反 /在这里写P1.5中断处理程序 if(TB0CCR4=0) TB0CCR4=1; P1IFG &

23、amp;=BIT5; if(P1IFG & BIT6) TB0CCR4-; /LED显示状态取反 /在这里写P1.5中断处理程序 if(TB0CCR4=0) TB0CCR6=1; P1IFG &=BIT4; P1IFG=0; /清除P1所有中断标志位void Init_Clock()uchar i; P5SEL |= BIT2 + BIT3; /P5.2和P5.3选择为晶振XT2输入 P7SEL |= BIT0 + BIT1; /P7.0和P7.1选择为晶振XT1输入 Set_Vcore(PMMCOREV_3); / Set frequency up to 25MHz UCSC

24、TL6 &= (XT1OFF + XT2OFF); / Set XT1 & XT2 On UCSCTL6 |= XCAP_3; / Internal load XT1 cap 12pF,MSP430F5438A V4.0最小系统XT1未接外部晶振 do / Loop until XT1,XT2 & DCO stabilizes UCSCTL7 &= (XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); SFRIFG1 &= OFIFG; / 清除振荡器失效标志 for (i = 0xFF; i > 0; i-); / 延时,等待XT2起振 while (SFRIFG1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论