基于TMS320F28044数字电源设计
什么是数字电源?TI从功能上对数字电源进行了定义:数字电源就是数字化控制的电源产品,它能提供管理和监控功能,并延伸到对整个回路的控制。针对不同领域的应用,TI推出了多款可以实现数字电源产品的DSP处理器,如TMS320F280x系列、TMS320F2801x系列,还有可输出16通道高精度PWM的DSP处理器TMS320F28044。在要求DC通道较多的系统,用28044设计数字电源就显得非常的容易,一颗DSP最多可控制16通道的DC,输出电压任意可编程,极大地增强了电源系的灵活性,同时电源系统将变得非常智能和可控。本文主要探讨如何基于TMS320F28044设计多通道的DC/DC电源。
系统框架
图1展示了基于C2000DSP设计的多通道DC/DC数字电源系统框架,DC/DC的拓扑结构一般为典型的BUCK电路或者同步BUCK电路,输出电压经电阻网络采样后直接送到DSP的ADC端口,DSP内部对该值采样,然后和系统的给定值做比较,比较后的误差值经过PID调解器得到每个通道的占空比,这样每路BUCK电路都形成一个闭环系统。同时一些外设接口如RS232、I2C,DSP通过这些接口可以与上位机实现数据交换,或者通过I2C接口来遵循PMBUS协议,组成智能数字电源系统。
高精度PWM
图1 基于C2000数字DC/DC系统框架
TMS320F28044提供高达16路的高精度PWM波。理论上,PWM波在系统主频100MHz下最高可以得到10ns的分辨率,但是作为DC/DC变换器,如果要得到精度高、纹波小的直流输出电压,那么就需要更高的开关频率和更高的PWM分辨率。TMS320F28044内部提供一个微边沿控制器,可以输出最小150ps的PWM。设系统的主频为100MHz,PWM波的频率为200kHz,占空比需要输出50.1%,如果仅仅使用普通的PWM波输出,那么周期值设为5000,COMPA的值设为250,最高为2500个ns ,占空比就为50%,设为251,占空比就为50.2%。那么如何才能最大限度的得到接近于50.1%的占空比呢,这就需要用到高精度PWM波,COMPA的值设为250,接下来需要再产生5ns的高电平,CMPAHR设为32,32×150=4.8ns,占空比为50.096%,CMPAHR设为33,33×150=4.95ns,占空比就为50.099%,CMPAHR设为34,34×150=5.1ns,占空比为 50.102%,由此可见当CMPAHR设为33时,占空比的误差仅为0.001%,如果不使用高精度的PWM波,误差就为0.1%。可见通过使用高精度的PWM波,可以把误差缩小两个数量级。如果使用它来控制数字电源的话,可以大大提高数字电源的控制精度。
BUCK环路拓扑
图2 基于BUCK的数字控制拓扑
图2展示了基于BUCK电路的DC/DC数字控制拓扑,Q1、二极管、L、C、R组成了BUCK降压型变换器,输出电压经过调理电路转换成0~3V的电压信号送到DSP的内部ADC,ADC的输出与参考电压比较之后得到误差信号E,E再经过电压环的控制器GC得到调整后的BUCK调解器占空比U,U作为片内PWM模块输出的计算因子,生成相应占空比的PWM信号,PWM信号再经过驱动电路驱动功率开关管的导通,得到期望的输出电压。整个过程全部通过DSP内部的数字控制,通过设置合适的PID参数,可以得到很好的动态特性。
数字采样
图3 DC/DC变换器数字采样原理
数字控制中采样时刻的选取对控制策略有着很重要的意义。图3展示了在DC/DC变换器中如何合理的设置ADC的转换时刻,以期得到准确的采样值。上图中T1生成对称模式的PWM波,T1的比较寄存器可以用来存放需要生成的PWM波的占空比,通过改变比较寄存器的值,就可以得到期望占空比的PWM波。在本例中ADC的控制寄存器设置的转换触发发生在ADC上升沿的中间处,也就是开关管导通的中间时刻,ADC转换完成之后,将会触发一个中断,在中断服务子程序中,用户程序从ADC的结果寄存器中读取AD的转换结果,执行数字控制器,更新PWM波的输出占空比,新的PWM波有效发生在下一个周期。在图3可以看出,从控制器执行完PWM波更新到下个ADC中断触发来临,这中间有很多空闲时间,这就意味着如果系统得带宽足够的话,在这中间可以加入更多的控制器来控制多路的DC/DC变换器。在Background Loop中可以执行其他的用户程序如通信等。
PID控制
TI提供的数字电源开发包中有控制器的算法宏,该宏在ControlLawMacro.h头文件中,是基于一个2P/2Z传递函数:
PID离散化的表达式如下所示:
2P/2Z传递函数:
可见,PID只是2P/2Z的一个特例,A1=-1和A2=0
那么PID的系数就如下所示:
Coef2P2Z_1[0] = Dgain * 67108 // B2
Coef2P2Z_1[1] = (Igain - Pgain - Dgain - Dgain)*67108 // B1
Coef2P2Z_1[2] = (Pgain + Igain + Dgain)*67108 // B0
Coef2P2Z_1[3] = 0; // A2
Coef2P2
TMS320F28044 数字电源 BUCK 相关文章:
- 在电源设计中如何正确选择电源模块?(10-25)
- 老外用AVR设计的数字电源电路分析(10-19)
- 基于STC12C5410AD单片机的数字电源设计(02-06)
- DC-DC buck变换器的混沌现象分析及其控制(09-12)