移向全桥零电压开关pwm设计实现_第1页
移向全桥零电压开关pwm设计实现_第2页
移向全桥零电压开关pwm设计实现_第3页
移向全桥零电压开关pwm设计实现_第4页
移向全桥零电压开关pwm设计实现_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

移相全桥零电压开关PWM设计实现摘要移相全桥电路具有结构简单、易于恒频控制和高频化,通过变压器的漏感和功率开关器件的寄生电容构成谐振电路,使开关器件的应力减小、开关损耗减小等优点,被广泛应用于中大功率场合。近年来随着微处理器技术的发展,各种微控制器和数字信号处理器性能价格比的不断提高,采用数字控制已经成为大中功率开关电源的发展趋势。相对于用实现的模拟控制,数字控制有许多的优点。本文的设计采用TI公司的高速数字信号处理器TMS320F28027系列的DSP作为控制器。该模块通过采样移相全桥零电压DC-DC变换器的输出电压、输入电压及输出电流,通过实时计算得出移相PWM信号,然后经过驱动电路驱动移相全桥零电压DC-DC变换器的四个开关管来达到控制目的。实验表明这种控制策略是可行的,且控制模块可以很好的实现提出的控制策略。关键词:移相全桥;零电压;DSPPhase-shiftedFull-bridgeZero-voltageSwitchingPWMDesignand

ImplementationABSTRACTPhase-shiftedfull-bridgecircuithastheadvantagesofsimplestructure,easytoconstantfrequencycontrolandhigh-frequencyresonantcircuitconstitutedbytheleakageinductanceofthetransformerandtheparasiticcapacitanceofthepowerswitchingdevices,toreducethestressoftheswitchingdevices,switchinglossisreduced,whichwidelyusedinhigh-poweroccasion.Inrecentyears,withthedevelopmentofmicroprocessortechnology,avarietyofmicrocontrollersanddigitalsignalprocessorcostperformancecontinuestoimprove,theuseofdigitalcontrolhasbecomethedevelopmenttrendofthelargeandmedium-sizedpowerswitchingpowersupply.Relativetoachieveanalogcontrol,digitalcontrolhasmanyadvantages.ThedesignusesDSP,theTIcompanyTMS320F28027seriesofhigh-speeddigitalsignalprocessor,asthecontroller.Themodulethroughthesamplingphase-shiftedfull-bridgezero-voltageDC-DCconverteroutputvoltage,inputvoltageandoutputcurrent,obtainedthroughreal-timecalculationofphase-shiftedPWMsignalphase-shiftedfull-bridgezero-voltageDC-DCconversion,andthenafterthedrivecircuitthefourswitchcontrolpurposes.Theexperimentsshowthatthiscontrolstrategyisfeasible,andthecontrolmodulecanachievetheproposedcontrolstrategy.Keywords:phase-shiftedfull-bridge;zero-voltage;DSP目录TOC\o"1-5"\h\z\o"CurrentDocument"引言 1\o"CurrentDocument"移相全桥软开关研究背景及现状 1\o"CurrentDocument"本文要做的工作 1\o"CurrentDocument"移相全桥电路的工作原理 2\o"CurrentDocument"电路工作状态及特点 2\o"CurrentDocument"电路的运行模式分析 3\o"CurrentDocument"工作过程分析 3软开关实现的条件 7\o"CurrentDocument"DSP结构功能 9\o"CurrentDocument"DSP适合于数字信号处理的特点 9\o"CurrentDocument"TMS320系列DSP概况 9\o"CurrentDocument"TMS320F2802x芯片特点 9\o"CurrentDocument"CCSv5平台 11\o"CurrentDocument"利用CCSv5.1导入已有工程 12\o"CurrentDocument"利用CCSv5.1调试工程 13\o"CurrentDocument"系统程序设计实现 14\o"CurrentDocument"PWM的产生原理 14主程序的流程图 14程序设计 17最终实现的波形图 17\o"CurrentDocument"总结 22参考文献 23\o"CurrentDocument"致谢 24引言移相全桥软开关研究背景及现状[1]随着电力电子技术的飞速发展,电子设备与人们的关系越来越密切,可靠的电子设备都离不开可靠的电源。进入20世纪90年代以后,开关电源相继进入了电子、电气设备等领域,通信电源、电子检测电源等都已经广泛采用开关源,从而在很大程度上对开关电源的技术的发展起到了很好的推动作用。开关电源是采用电力电子技术,通过控制开关管的通断,来达到变换输入和输出能量关系的一种电源。软开关技术是20世纪80年代初由李泽元教授直接提出的,并应用于DC-DC变换中,由于它具有减少变换器的开关损耗,降低电磁干扰等特点,所以在各种电力电子变换器中得到了广泛的应用。全桥变换电路拓扑是DC-DC变换器中比较常见的拓扑之一,在中大功率场合中得到广泛应用。全桥拓扑电路的主要优点在于开关器件可以承受的电压和电流的应力较小,高频变压器的变换效率较高,开关频率固定等。全桥拓扑电路根据其输入的方式可以分为电压型和电流型这两种,其中电压型DC-DC全桥拓扑是在Buck的基础上衍生出来的,因此也成为全桥Buck变换器。移相全桥电路的移相控制方式的实质上是谐振变换技术和PWM变换技术的结合,利用功率开关管上的寄生电容和高频变压器的漏感作为谐振元件,实现移相全桥电路的四个功率开关管在零电压情况下开通,实现了恒频软开关技术。移相全桥软开关变换电路是通过控制两桥臂对角开关管驱动脉冲的移相角度,来调节输出电压的大小。两桥臂的对角开关管驱动脉冲相差一个移相角,同一桥臂上下开关管成180度互补导通并且没有死区。利用功率开关管上的寄生电容和高频变压器的漏感来实现谐振,以错过在大电压和大电流下的硬开关状态,有效克服了在感性关断下的电压尖峰和容性开通时的电流尖峰。因此在大功率变换场合,移相全桥软开关变换器得到了广泛应用。本文要做的工作1)本文首先对移相全桥ZVS变换器的拓扑结构、工作原理等电路性能进行了系统的分析,得出了移相全桥ZVS变换器电路的独特优点。并分析了移相全桥ZVS变换器实现PWM控制的各种控制策略。2)控制电路的设计采用TI公司的高性能数字信号处理器TMS320F28027系列DSP作为控制器,通过软件编程来实现而提出的控制策略,并和一些数字逻辑电路一起产生移相全桥变换器的移相PWM控制电路。

移相全桥电路的工作原理[2]移相全桥零电压开关PWM电路原理图如图2-1所示。V为输入直流电压。S〜S为i14V。R为输0L功率MOSFET,并联的二极管为MOSFET内部寄生二极管,C〜CV。R为输0L容。L为谐振电感。变压器输出采用全桥整流,经LC滤波输出直流电压r出负载。图2-1图2-1移相全桥电路原理图电路工作状态及特点1) 同硬开关全桥电路相比,仅增加了一个谐振电感,就使四个开关均为零电压开通。2) 变换器工作在恒频PWM调制方式。3) 每个开关管的导通占空比为小于但接近50%,固定不变。为了防止直通,同一个桥臂的两个开关管互补导通。同时设置了一定安全范围的死区,即同时处于关断状态的时间间隔。4) 互为对角的两对开关管S-S和S-S,S的波形比S超前0〜T/2时间,而TOC\o"1-5"\h\z4 2 3 1 4 SS的波形比S超前0〜T/2时间,因此称S和S为超前桥臂,而称S和S为滞后桥臂。3 S 1 2 3 45) 开关管S、S的驱动波形相位是固定不变的,开关管S、S的驱动波形相位是可4 1 2调的。变换器通过调节超前桥臂S〜S的驱动波形相位,即调节有效占空比,来控制变12换器的输出电压。6) 有开关管S-S或S-S同时导通时,变压器才向副边输送功率。其余时间段电1 4 2 3路处在续流或关断状态。电路的运行模式分析分析时假设:1)所有功率MOSFET开关管均为理想,忽略正向压降及开关时间;四个开关管的输出电容相等,即C=C,i=l,2,3,4,C为常数;iSS忽略变压器绕组及线路中的寄生电阻。工作过程分析t~t时段:S与S导通,电容C(i=2,3)被输入电源充电。变压器原边电压V=V。0114iTi功率由变压器原边输送到负载。此状态原、副边的电流回路如图2-2所示。直到t时刻S11关断。此时原边电流增长到最大值i。PC3厶CR头C3厶CR头图2-2 t0〜t]时刻等效电路图t~t时段:t时刻开关S关断后,电容C、C与电感L、L构成谐振回路,等效121112r电路如图2-3所示。在这个时段里,变压器原边谐振电感L和滤波电感L是串联的,而rf且L很大,因此可以认为原边电流i近似不变,类似于一个恒流源,其大小为I二I.n。f P Lr0'C上电压线性增加,C上电压线性下降,即V不断下降,直到V=0,S的体二极管导13AA2通,电流I通过S的体二极管续流。TOC\o"1-5"\h\zLr 2VC)二i2CC-1) (2-1)C1 Lr•S 1VC)二V-i2C(t-1) (2-2)C2 iLrS 1

当C的电压下降至零,S的反并联二极管自然导通,该模态所用的时间为:22t二2C-V.i (2-3)12 Si'Lr图2-3 -〜I?时刻等效电路图t〜t时段:t/寸刻开关S开通,由于此时其反并联二极管VD正处于导通状态,因23 2 2 S2此S为零电压开通。等效电路如图2-4所示。此时,V的电压被钳为到0V。原边谐振2AB电感的电流通过S、S、变压器原边进行环流状态。由于回路内阻消耗,电流值稍有下24降。6图2-4 -2〜-3时刻等效电路图t〜t时段:t时刻开关S关断后,变压器二次侧D〜D同时导通,变压器一次侧343414和二次侧电压均为零,相当于短路。此时,等效电路如图2-5所示。

LLr3匕qd2LLr3匕qd2图2-5t〜t时刻等效电路图34此时C、C与L构成谐振回路。L的电流不断减小,B点电压不断上升,直到S的34rr3反并联二极管VD导通,等效电路如图2-6所示。这种状态维持到t时刻S开通。因此STOC\o"1-5"\h\zS3 4 3 3为零电压开通。图2-6t〜t时刻等效电路图34t〜t时段:S开通后,L的电流继续减小,等效电路如图2-7所示。i下降到零后5 3 r Lr反向增大,此时原边电流的表达式为:iC)=—VL(t-1)+i (2-4)LR ir 4 4DCi7^OD2nDCi7^OD2n4图2-7t〜t时刻等效电路图45t时刻iI/n,变压器二次侧D、D的电流下降到零而关断,电流I全部转移LRLf14Lf到D、D中,等效电路如图2-8所示。在此时间段内,尽管变压器原边有电压波形,但23没有提供负载电流,即成为占空比丢失状态。图2-8t时刻等效电路图5t~t时段:变压器输出能量,等效电路如图2-9所示。图2-9t〜t时刻等效电路图56到此时段为止,电路完成了半个工作周期的工作过程。下半个工作周期的变换过程与前面阐述的过程基本相同,在此不再叙述了。2.3软开关实现的条件互为对角开关的关断时间错开是实现软开关的必要条件。在前述讨论中我们可以看出,移相控制可以满足这个要求。按照一般的定义,如果某一桥臂的开关首先关断,则称此桥臂为超前桥臂,另一桥臂则称之为滞后桥臂。通过上述分析可知,不管是超前桥臂还是滞后桥臂的开关管转换时,都形成了谐振回路。谐振时,参与谐振的电感释放储能,使谐振电容电压下降到零,从而实现ZVS。所以ZVS条件为:电感能量必须大于所有参与谐振的电容能量。1)超前臂ZVS条件分析S、S相互转换时,变压器处于能量传送阶段。原边电流I=_I,滤波电感L很1210f大,可看作是恒流负载。原边等效电感L二L+n2L所以根据ZVS条件,电感能量必须

er大于所有参与谐振的电容能量,应有:TOC\o"1-5"\h\zL(Ifn》/2+励磁能量〉(4C2+C2》2 (2-5)e0 S t S式中:4C2是考虑MOSFET输出电容非线性的等效电容值,C为变压器绕组分布电容。S' t由式(2-5)可见,实现ZVS的电感能量包括:L(I..n1/2和励磁能量,相当大,故即e0使轻载下超前桥臂较容易满足ZVS条件。滞后桥臂ZVS条件分析S、S相互转换时,变压器副边处于续流阶段。参与谐振的电感只有原边的谐振电感,34所以根据ZVS条件:电感能量必须大于所有参与谐振的电容能量,应有:L12f2>(4C/'3+C2b2 (2—6)r' S' tS由式(2—6)可见,实现ZVS主要靠原边电感储能,轻载时不够大。因此滞后桥臂不易满足ZVS条件。DSP结构功能数字信号处理器DSP是一种具有特殊结构的微处理器,与普通的单片机相比,它的一些独有的特点非常适合进行数字信号处理。DSP适合与数字信号处理的特点[6]1)改进的哈佛结构计算机总线结构分两种。一种是冯•诺依曼结构,其特点是程序和数据共用一个存储空间,统一编址依靠指令计数器提供的地址来区分是指令还是数据地址。由于对数据和程序进行分时读写,速度较慢,虽然半导体工艺的发展可弥补这一缺点,但这一结构不适合进行具有高度实时要求的数字信号处理。另外一种是哈佛结构,其主要特点是程序和数据具有独立的存储空间,有各自独立的程序和数据线;2) 流水线操作;3) 用硬件乘法器一般的单片机采用移位和加法来实现乘法运算,速度较慢,而DSP采用硬件乘法器,则可大大提高乘法运算速;4) 特殊的DSP指令;5) 快速的指令周期DSP芯片采用低工作电压的CMOS技术,使得DSP主频不断提高,有些型号的DSP指令周期已经下降到5nS;6) 良好的多机并行运行能力随着要求处理数据容量不断增加,DSP芯片价格的下降。多个DSP芯片并行处理已经成为近些年来的研究热点,某些型号的DSP专门提供了用于多个并行运行的通信接口。TMS320系列DSP概况TI公司TMS320系列DSP的体系结构专为实时信号处理而设计,该系列DSP控制器则将实时处理能力和控制器外设功能集于一身,为系统实现数字控制应用提供了一个理想的解决方案。下列特性使得TMS320系列成为很多解决方案的理想选择:1) 灵活的指令集;2) 内在的灵活操作性;3) 高速运算能力;4) 改进的并行结构;5) 有效的成本。TMS320F2802x芯片特点[7]由于本课题应用DSP实现对开关电源的控制,需要能够产生PWM波形的DSP,另外开关电源开关频率较高,要求DSP处理速度要较快。TMS320F2802XPiccolo系列DSP是TI公司的最新基于TMS320C28XTM内核的定点处理器。它通过DSP和MCU功能的整合,弥补了传统意义上二者的不足,实现了计算与控制的完美结合。新型TMS320F2802X/3XPiccolo系列DSP微控器包含高达128KB的快闪存储器、内部硬件模拟比较器、12位ADC、EPWM,以及包括通信协议、片上振荡器、通用I/O等各种标准外设。其寄存器资源十分丰富,配置特别的灵活,可以通过实时更改寄存器配置,由内部硬件产生所需的逻辑信号,大大降低了程序的编写难度。TMS320F28027芯片的特点如下:1) 有高效率32位的CPU(TMS320F2802X),60MHZ的时钟频率,单周期指令为16.67ns6*16和32*32的乘法运算,6*16双乘法器,高代码效率,快速中断响应处理以及哈佛总线结构;2) 低成本、低功耗,单一的3.3V供电电源,无电源排序要求以及上电复位和复位要求;3) 时钟系统,片上晶体振荡器(可用于SCI通信)/外部时钟输入,看门狗时钟模块,时钟丢失检测电路;4) 22个可编程,带输入滤波的多路复用GPIO引脚,除用以JTAG(35-38)的4个引脚,可用引脚只有18个;5) 外设中断扩展PIE模块,支持所有外设中断;6) 3个32位CPU定时器;7) 每个EPWM模块具有16位独立定时器;8) 片上存储器Flash(16位32k,64k)、SARAM(16位6k,12k)、OTP(16位lk),BOOTROM;9) 128位安全密钥;10) 通信接口,UART模块、SPI模块及IIC模块;11) 增强的控制外设,两组共8路增强型脉宽调制器(EPWM)、3对互补高分辨率PWM(HRPWM),增强型捕获模块(ECAP),13路12位ADC,转换时间216.67ns,片上温度传感器,比较器;12) 48个引脚;13) 无并口总线;14) 无MCBSP模块;15) 无ECAN模块;16) 具有入门的亲和力,C2000入门级芯片;17) 应用领域:数字照明、电机控制、数字电源转换、精密传感器。GPioisrrzi^scrxDA「GPIO2BirSCIR)CDA?SDAA/TZ2[GPID2/EPWM2A[GPIO3?EPWM2BJCOMP2OUT「GPIO4/EPUVM3A「GPIO5/EPUVM3B^E€AP1[GPIO6/EPWM4AJEPMM$YNCIfEPWMSYNCO[GPioisrrzi^scrxDA「GPIO2BirSCIR)CDA?SDAA/TZ2[GPID2/EPWM2A[GPIO3?EPWM2BJCOMP2OUT「GPIO4/EPUVM3A「GPIO5/EPUVM3B^E€AP1[GPIO6/EPWM4AJEPMM$YNCIfEPWMSYNCO[GPIC7/EPWM4Bf$CIRXDA[V0D[烁LX1LX2[4748尸a-5山玄口曲0£5切<山«-色d蚁wlg-ogEI-QKCJw<scls_dsE:・o瓦幻痰NJJ<Q=一s_d里9■□瓦DInoT-dsQyB■壬芸¥0_d也<・sMd豐opflzd1SI11JLCWCJ-O隔7Q<nozAREsdE□Js>ss>olaaKJIQsKJav/oulu带Esa-UJAnusw衿□£©241GPI018JSPICLKA/SCITXDA/XCLKOUT2322201&ia1GPIO33JXCLKIN(TCK)]GPIOJ7"6]GPIO16西创]GPIOS5(TDI)]GPlO$«COMP20UT]ADCINB7]AIDCINB6?AIQ14It」ACCINB4/COMF3BJAIO1215」ADCINB314IADCINB2/CDMP1B/A1O10131ADCIHB1〕SJJ-J」-H专aoqzSJQ』5z-ua<-«<zoa<-ss^s‘S=KZ-VO<j5^5-.一瞿JLEzu<d«云QKLuEflJ5MQ瓦也图3-1 2802x48引脚PTLQFP(顶视图)VdmdLGPIO2/EPMM2A[nTn^GPIQ3JEPWM2B[GFIO4JEFWM3AVdmdLGPIO2/EPMM2A[nTn^GPIQ3JEPWM2B[GFIO4JEFWM3A[GPIOSJEPWM3B/EGAP1[GPI0flJEPWM4WEPWMS¥NCI/EPWMSYNCC[GPIO7/EPWM4B/SCIRXDA[Vm-[V«[GPIO12l7T/StlTJCD4[IRXQA/SDAAJTZ2[GPIO£9)$CITXDArSCLA/TZ3〔fRSTrxrsrACCINA6JAIO«7ADCINA4/AIO4[o133237343S534633732E319铀10>2911281227132@142!&1524162317221&21ia20]TE$T]GFIDWEFWM1A]GRID1/EFWM1B^COMPIOlFTJGPIO1B;SPISIMOA/TZZ]GPI017/SPISOMIAHZ31GPI019;XCLKIWSPISTEA/SCIRXDAJECAP11GPI01B;SPICLKA;SCITXDAffiCLKOUT]GPIO3B/KCLKIN{TtKJ]GPIO37(TDD)]GPIO56(TMS(]GPlO$5(TDI)]GPIW]ADCINBE/AIQ14JADCINB4;AIQ12]ADCINBZ;COMP1BIMOWIVs9a/VreFLQ1]ADCINADA/f^FH!]ADCINA2;C0MP1A/AI02图3-2 2802x38引脚DATSSOP(顶视图)CCSv5平台CCSv5是建立在Eclipse基础上的一个集成开发环境(IDE),融合TI设备的支持与功能;Eclipse是一个开源框架平台,目前由IBM牵头有150多家软件公司参与到Eclipse

项目中,成为了一个庞大的Eclipse联盟,TI将直接向开源社区提交改进;众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的优势,用户可随意将Eclipse插件或TI工具拖入现有CCSv5环境;用户可以享受到Eclipse中所有最新的改进所带来的便利。3.5利用CCSv5.1导入已有工程1)假如,某工程LAB1,下面以LAB1为例来说明导入工程的步骤。首先打开CCSv5.1并确定工作区间C:\Users\Administrator,选择File-->Import弹出图3-3对话框,在CodeComposerStudio下选择ExistingCCS/CCEEclipseProjects。2)单击Next\ ■>* SelectExi&tingCCSEclipseProjectSele>21adire>:t口 forEtinECCSEclipseproie>:t£.SelectExi&tingCCSEclipseProjectSele>21adire>:2)单击Next\ ■>* SelectExi&tingCCSEclipseProjectSele>21adire>:t口 forEtinECCSEclipseproie>:t£.SelectExi&tingCCSEclipseProjectSele>21adire>:七口丁卩t口 forstingCCSEclipseproje>:t£.IICopyprojectsiiitoworksp□AjjAomatiuallyimportrefer12<Eack ITent》 | Finish Cancel3) 单击Browse,选择:C:\Users\Administrator.PTVDBSX4JVQQVNA(在此之前,需将实验代码复制到工作区间下)。4) 单击Finish,即可完成已有工程的导入。利用CCSv5.1调试工程1) 以本次设计的实验为例,首先将zac工程进行编译:选择Project-->BuildProject,编译工程。编译结果没有错误,可以进行下载调试;如果程序有错误,会在Problems窗口显示,根据错误修改程序,并重新编译,直到没有错误。2) 单击按钮^■进行下载调试。3) 单击张运行程序,观察显示结果。系统程序设计实现PWM的产生原理[8]1)模块设置初始化相关寄存器的值后,使能定时器,计数器通过一定计数方式开始计数,它的值不断与相关的比较寄存器的值进行比较,当定时器计数值与比较寄存器值相匹配时,相关的PWM输出将发生跳变。对称PWM波形,即PWM波形关于PWM周期中心对称,需要在一个计数周期内比较两次,如下图4-1所示,在一个计数周期内,EPWMXA、EPWMXB分别对CMPA、CMPB进行了两次比较。只能在增减计数模式下产生,如图4-1,为在增减计数模式下产生的对称的PWM波形。图4-1对称PWM波形非对称PWM波形和对称PWM波形相对应,可以在增计数模式、减计数模式、增减计数模式下产生。图4-2所示,为在增减计数模式下产生的非对称PWM波形。图4-2非对称PWM波形2)寄存器配置输出对称PWM波形,TB设置为增减计数模式,在增计数时TBPRD=CA的时候EPWMXA输出高电平,在减计数时TBPRD=CA的时候输出低电平,如图4-1所示。

输出非对称PWM波形,TB设置为增减计数模式,在TBPRD=CA的时候EPWMXA输出高电平,在TBPRD=CB的时候输出低电平,如图4-2所示。4.2主程序的流程图图4-3主程序流程图图4-4中断处理程序图4.3程序设计#defineEPWM1_TIMER_TBPRD2000//时间寄存器#defineEPWM1_MAX_CMPA1950#defineEPWM1_MIN_CMPA50#defineEPWM1_MAX_CMPB1950#defineEPWM1_MIN_CMPB50#defineEPWM2_TIMER_TBPRD2000//时间寄存器#defineEPWM2_MAX_CMPA1950#defineEPWM2_MIN_CMPA50#defineEPWM2_MAX_CMPB1950#defineEPWM2_MIN_CMPB50#defineEPWM3_TIMER_TBPRD2000//时间寄存器#defineEPWM3_MAX_CMPA950#defineEPWM3_MIN_CMPA50#defineEPWM3_MAX_CMPB1950#defineEPWM3_MIN_CMPB1050以上代码段实现的功能是对每个定时器进行时间配置。GPIO_setPullUp(myGpio,GPIO_Number_0,GPIO_PullUp_Disable);GPIO_setPullUp(myGpio,GPIO_Number_1,GPIO_PullUp_Disable);GPIO_setMode(myGpio,GPIO_Number_0,GPIO_0_Mode_EPWM1A);GPIO_setMode(myGpio,GPIO_Number_1,GPIO_1_Mode_EPWM1B);GPIO_setPullUp(myGpio,GPIO_Number_2,GPIO_PullUp_Disable);GPIO_setPullUp(myGpio,GPIO_Number_3,GPIO_PullUp_Disable);GPIO_setMode(myGpio,GPIO_Number_2,GPIO_2_Mode_EPWM2A);GPIO_setMode(myGpio,GPIO_Number_3,GPIO_3_Mode_EPWM2B);GPIO_setPullUp(myGpio,GPIO_Number_4,GPIO_PullUp_Disable);GPIO_setPullUp(myGpio,GPIO_Number_5,GPIO_PullUp_Disable);GPIO_setMode(myGpio,GPIO_Number_4,GPIO_4_Mode_EPWM3A);GPIO_setMode(myGpio,GPIO_Number_5,GPIO_5_Mode_EPWM3B);以上代码段是对GPIO引脚的定义,使EPWM1A的波形在GPIO的0引脚输出,EPWM1B的波形在GPIO的1引脚输出,同理EPWM2A、EPWM2B、EPWM3A、EPWM3B分别在GPIO的2、3、4、5引脚输出。WDOG_disable(myWDog);CLK_enableAdcClock(myClk);(*Device_cal)();CLK_disableAdcClock(myClk);CLK_setOscSrc(myClk,CLK_OscSrc_Internal);PLL_setup(myPll,PLL_Multiplier_10,PLL_DivideSelect_ClkIn_by_2);PIE_disable(myPie);PIE_disableAllInts(myPie);CPU_disableGlobalInts(myCpu);CPU_clearIntFlags(myCpu);执行基本的系统初始化,选择内部振荡器作为时钟源,设置PLLX10/2这将产生50Mhz的=10MHz*10/2的时钟频率,禁用PIE和所有中断。interruptvoidepwm1_isr(void){update_compare(&epwm1_info);PWM_clearIntFlag(myPwm1);PIE_clearInt(myPie,PIE_GroupNumber_3);}更新CMPA和CMPB的值,清除此计时器中断标志,确认此中断接收中断3组以上此程序段为epwml的中断子程序。voidInitEPwm1Example(){CLK_enablePwmClock(myClk,PWM_Number_1);PWM_setPeriod(myPwm1,EPWM1_TIMER_TBPRD);PWM_setPhase(myPwm1,0x0000);PWM_setCount(myPwm1,0x0000);PWM_setCmpA(myPwm1,EPWM1_MIN_CMPA);PWM_setCmpB(myPwm1,EPWM1_MIN_CMPB);PWM_setCounterMode(myPwm1,PWM_CounterMode_UpDown);PWM_disableCounterLoad(myPwm1);PWM_setHighSpeedClkDiv(myPwm1,PWM_HspClkDiv_by_1);PWM_setClkDiv(myPwm1,PWM_ClkDiv_by_1);设置定时时钟,设定定时器的周期,相位为0,清除计数器,设置A的比较值,设置B的比较值,设置计数模块,禁用相位负,开始计数,时钟比为1。PWM_setShadowMode_CmpA(myPwm1,PWM_ShadowMode_Shadow);PWM_setShadowMode_CmpB(myPwm1,PWM_ShadowMode_Shadow);PWM_setLoadMode_CmpA(myPwm1,PWM_LoadMode_Zero);PWM_setLoadMode_CmpB(myPwm1,PWM_LoadMode_Zero);设置阴影,在计数过程中,当需要向改变定时器的周期寄存器中的值时,数据会首先写入定时器的阴影寄存器中。PWM_setActionQual_CntUp_CmpA_PwmA(myPwm1,PWM_ActionQual_Set);PWM_setActionQual_CntDown_CmpA_PwmA(myPwm1,PWM_ActionQual_Clear);PWM_setActionQual_CntUp_CmpB_PwmB(myPwm1,PWM_ActionQual_Set);PWM_setActionQual_CntDown_CmpB_PwmB(myPwm1,PWM_ActionQual_Clear);事件A上设置PWM1A,增计数。事件A上清除PWM1A,减计数。事件B上清除PWM1B,减计数。事件B上设置PWM1B,增计数。定时计数器TBCTR和CMPA或者CMPB比较后产生的信号送给AQ模块,由AQ模块确定产生什么变化,以改变PWM电平的变化。PWM_setIntMode(myPwm1,PWM_IntMode_CounterEqualZero);PWM_enableInt(myPwm1);PWM_setIntPeriod(myPwm1,PWM_IntPeriod_ThirdEvent);}在改变比较值得地方中断,第三个事件产生INT,选择INT零事件。以上程序段为初始化EPWM1的程序代码。voidupdate_compare(EPWM_INFO*epwm_info){if(epwm_info->EPwmTimerIntCount==10){epwm_info->EPwmTimerIntCount=0;if(epwm_info->EPwm_CMPA_Direction==EPWM_CMP_UP){if(PWM_getCmpA(epwm_info->myPwmHandle)<epwm_info->EPwmMaxCMPA){PWM_setCmpA(epwm_info->myPwmHandle,PWM_getCmpA(epwm_info->myPwmHandle)+1);}else{epwm_info->EPwm_CMPA_Direction=EPWM_CMP_DOWN;PWM_setCmpA(epwm_info->myPwmHandle,PWM_getCmpA(epwm_info->myPwmHandle)-1);}}每个10次的中断改变一下CMPA和CMPB的值,如果我们增加CMPA的值,检查,看看我们是否达到了最大值。如果没有,增加CMPA,否则改变方向并降低CMPA的值。Else{if(PWM_getCmpA(epwm_info->myPwmHandle)==epwm_info->EPwmMinCMPA){epwm_info->EPwm_CMPA_Direction=EPWM_CMP_UP;PWM_setCmpA(epwm_info->myPwmHandle,PWM_getCmpA(epwm_info->myPwmHandle)+1);}else{PWM_setCmpA(epwm_info->myPwmHandle,PWM_getCmpA(ep

温馨提示

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

评论

0/150

提交评论