现在的位置: 首页单片机知识正文

PIC加PWM的开关电源设计

1 系统功能

通过对电源的编程,可以方便地实现图1所示的电压输出波形。其中,V1、V2、T1、T2、 dv、dt都是可以通过编程来设定的。电压值的输出范围为0~16V,最大输出电流为10 A。输出电压精度为0.1 V,电流精度为10mA。电流的设定值指的是允许输出的最大电流,也可以被编程为与输出电压一样的波形。

2 工作原理

用单片机来控制开关电源,总的来说可以分为两种:

第一种是单片机通过输出PWM或DA给电源电路提供一个基准电压,单片机本身不介入电源的反馈中(本设计所采用的就是这种方式);第二种为通过单片机输出的PWM信号直接控制开关管工作,取代PWM芯片,但这种方式对单片机的要求较高,需要具有相当高的时钟频率才能满足对输出PWM频率和分辨率的要求。

3 硬件设计

第一种是输出电压反馈,输出电压采样值VSS和单片机提供的设定值进行比较,通过光耦来控制NCP1200芯片FB脚的电压,调整DRV脚输出PWM 的脉宽来控制场效应管的导通和关断时间,从而达到调整输出电压值的目的。另一路反馈是电流限流反馈,当采样到的输出电流值ISS超过单片机提供的最大限流值IPWM后,比较器输出正电压使得光耦最大导通,将FB脚电压拉低,使得NCP1200输出PWM脉宽减小,从而达到限流的目的。当输出电流小于单片机提供的限流值时,限流反馈不起作用。

4 软件设计

系统上电时,单片机读出非易失性存储器(EEPROM)中上次设置参数,进行电流电压输出。在软件设计中,采用多个任务的概念,可以模拟一个简单的操作系统进行任务的调度。由定时器产生一个5ms的中断,在中断程序中激活各个任务的标志。如显示任务主要负责A/D采样、数码管与LED的刷新,可每5ms执行一次。键盘处理任务负责按键的扫描、软件去抖、键盘命令的解释和扫行,可每10ms执行一次。PWM输出任务负责按照设定的值进行PWM的输出,可以每50ms 执行一次。如果有PC机或其他电源通过串口编程,单片机将在UART中断中接收编程数据,接收完改写EEPROM中设置并强行复位。如果接收到通过按键的编程,则在按键处理中修改EEPROM的设置并复位。程序主流程则扫描各个任务是否到时间执行。是,则执行该任务;否则,跳过该任务。

在线咨询