數(shù)字電源控制器 UCD3138 的 Single Frame 和前饋功能說明
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要
UCD3138 是德州儀器(Texas Instruments)公司推出的最新一代數(shù)字電源控制器,于2012 年第一季度正式發(fā)布。相比于上一代數(shù)字電源控制器UCD30xx,其在諸多方面有著重要改進(jìn),功能更加豐富,性能更加強(qiáng)大。本文基于一款采用硬開關(guān)全橋(副邊采用全波同步整流)拓?fù)涞拈_關(guān)電源,詳細(xì)介紹了UCD3138 的Single Frame 功能和輸入電壓前饋功能。在完成對(duì)上述功能理解地同時(shí)也可以清楚的了解到UCD3138 的優(yōu)勢(shì)所在。本文的最后部分給出了參考文獻(xiàn)。
1、Single Frame 功能設(shè)計(jì)與實(shí)現(xiàn)
Single Frame 是一種全新的在副邊完成對(duì)原邊輸入電壓檢測(cè)的方法。通過該方法可以在副邊直接快速地檢測(cè)當(dāng)前輸入電壓,實(shí)現(xiàn)欠壓保護(hù)功能,因此無需額外的輸入欠壓保護(hù)電路及光耦或數(shù)字隔離器。
1.1 Single Frame 功能介紹
在電源系統(tǒng)未正式運(yùn)行前,UCD3138 芯片會(huì)周期性的發(fā)出單個(gè)或幾個(gè)驅(qū)動(dòng)脈沖,使硬開關(guān)全橋工作單個(gè)或者多個(gè)周期。此時(shí),在變壓器副邊中心抽頭處可以產(chǎn)生出電壓,該電壓與輸入電壓成線性關(guān)系,因此通過UCD3138 檢測(cè)該點(diǎn)電壓并通過軟件計(jì)算后可以得到輸入電壓?;谠撚?jì)算結(jié)果,系統(tǒng)可以判斷輸入電壓是否達(dá)到開啟點(diǎn),以決定是否退出欠壓保護(hù)并開始正常運(yùn)行。
實(shí)際應(yīng)用中,為保證全橋原邊側(cè)上管(驅(qū)動(dòng)地為浮地)可以順利導(dǎo)通,通常需要連續(xù)發(fā)送幾個(gè)周期的驅(qū)動(dòng)脈沖。在本文涉及的硬開關(guān)全橋中,實(shí)際發(fā)送了2 個(gè)驅(qū)動(dòng)脈沖以保證UCD3138 順利檢測(cè)到正確的輸入電壓。
1.2 硬件電路設(shè)計(jì)
實(shí)現(xiàn)Single Frame 功能的硬件電路比較簡(jiǎn)單,如下圖1。VIN_CT 網(wǎng)絡(luò)連接到變壓器副邊中心抽頭處,然后通過RC 濾波后連接到UCD3138 的EAP2 引腳。該電路的主要功能是實(shí)現(xiàn)變壓器中心抽頭處電壓的濾波及縮放。
圖 1:Single Frame 硬件電路
變壓器的匝比為5:2:2 。EAP2 處電壓與輸入電壓的關(guān)系為:
1.3 軟件設(shè)計(jì)
實(shí)現(xiàn)Single Frame 功能的軟件設(shè)計(jì)包括了驅(qū)動(dòng)信號(hào)的配置和電壓采集及轉(zhuǎn)換等兩個(gè)部分,其中第一個(gè)部分是核心配置。下面著重討論第一部分。
1. 開關(guān)周期的設(shè)定
下面代碼設(shè)定了開關(guān)周期為5us,即200KHz。計(jì)算公式為:
#define PERIOD (20000)
Dpwm0Regs.DPWMPRD.all = PERIOD;
2. 單脈沖長(zhǎng)度的設(shè)定
下面代碼完成了單脈沖脈寬長(zhǎng)度的設(shè)定, 包含了死區(qū)的設(shè)置。該代碼設(shè)置的時(shí)間寬度為
。即一個(gè)周期內(nèi)輸出兩個(gè)脈寬長(zhǎng)度皆為651ns 的脈沖。
Dpwm0Regs.DPWMEV1.all = 20;
Dpwm0Regs.DPWMEV2.all = 2625;
Dpwm0Regs.DPWMEV3.all = 20 + 10000;
Dpwm0Regs.DPWMEV4.all = 2625 + 10000;
3. 采樣時(shí)刻的設(shè)置
考慮到在變壓器副邊中心抽頭處電壓變?yōu)楦唠妷簳r(shí)會(huì)伴隨有尖峰和震蕩,為防止采樣錯(cuò)誤,采樣點(diǎn)設(shè)置需要避開開始時(shí)刻。下面代碼設(shè)置了采樣點(diǎn)的位置:接近脈沖的結(jié)束時(shí)刻,為600ns 處。
Dpwm0Regs.DPWMSAMPTRIG1.all = 2400;
1.4 實(shí)測(cè)波形
如下圖2 所示,綠色線為全橋原邊驅(qū)動(dòng)(即單脈沖)波形,其時(shí)間長(zhǎng)度約為650ns,與軟件設(shè)計(jì)一致。黃色線為變壓器副邊中心抽頭處的電壓波形,第一個(gè)波頭是因?yàn)槿珮蛟厸]有完全導(dǎo)通造成輸入電壓沒能夠完全地傳輸?shù)礁边?,而第二個(gè)脈沖則準(zhǔn)確地反應(yīng)了輸入電壓的信息。此時(shí),輸入電壓為50V,黃色線的平臺(tái)為20V,與理論計(jì)算一致。
圖 2:Single Frame 實(shí)測(cè)波形
2、前饋功能的設(shè)計(jì)與實(shí)現(xiàn)
前饋(feed forward)功能是UCD3138 的一個(gè)重要特性。借助于實(shí)現(xiàn)Single Frame 功能的硬件電路,UCD3138可以獲知當(dāng)前輸入電壓;當(dāng)輸入電壓有劇烈變化時(shí),前饋功能可以快速響應(yīng)并調(diào)整占空比,以盡快穩(wěn)定輸出電壓。[!--empirenews.page--]
2.1 前饋功能實(shí)現(xiàn)原理描述
UCD3138 芯片內(nèi)部的前饋模塊的輸出為一個(gè)增益值,將與環(huán)路的輸出結(jié)果相乘,以共同決定占空比。前饋模塊輸出的增益由該式?jīng)Q定:Gain = Kc + Kp×ΔV 。其中:
◎ Kc 為常數(shù),通常設(shè)置在0.5~0.7 之間,以方便對(duì)占空比進(jìn)行大小兩個(gè)方向的調(diào)節(jié);
◎ Kp 為輸入電壓差值的放大倍數(shù)。該值為非線性值,即誤差越大則增益越大。誤差較小時(shí),該值為0;
◎ ΔV 為跳變之后的輸入電壓與跳變前輸入電壓的差值,即Vref(DAC)-Vin_sense。在輸入電壓跳變之后,Vref(DAC)的值會(huì)逐漸逼近新的輸入電壓,以保證該值等于最新的當(dāng)前輸入電壓。
UCD3138 芯片內(nèi)部前饋處理模塊的的示意圖見圖3。
圖 3: 前饋內(nèi)部處理模塊
如下圖4 所示,前饋模塊的輸出結(jié)果直接與環(huán)路最終的輸出相乘,然后由相乘的結(jié)果再去調(diào)整占空比大小。這就保證了前饋的結(jié)果可以快速調(diào)整當(dāng)前的占空比。
圖 4:前饋輸出最終與環(huán)路輸出相乘
2.2 前饋功能的實(shí)現(xiàn)
前饋功能的硬件設(shè)計(jì)主要包含了輸入電壓的檢測(cè)電路,在第一章曾有描述,在此不再贅述。軟件設(shè)計(jì)主要包含了Vref(DAC)值的配置、Kc 的配置和前饋功能的啟用設(shè)置。
1)Vref(DAC)值的配置
如下函數(shù)實(shí)現(xiàn)了根據(jù)v_input_error 的大小對(duì)Vref(DAC)值的更新。v_input_error 為當(dāng)前采集的輸入電壓與前一次采集到的輸入電壓的差值。該函數(shù)包含在一個(gè)狀態(tài)機(jī)中,100us 執(zhí)行一次,將連續(xù)執(zhí)行300 次,以保證在使能前饋功能之前Vref(DAC)近似等于當(dāng)前輸入電壓。
if(v_input_error > 10)
{
if(FeCtrl2Regs.EADCDAC.bit.DAC_VALUE > 3000) //can not lower than 35V;
{FeCtrl2Regs.EADCDAC.bit.DAC_VALUE = FeCtrl2Regs.EADCDAC.bit.DAC_VALUE - 1;}
}
else if(v_input_error < -10)
{
if(FeCtrl2Regs.EADCDAC.bit.DAC_VALUE < 14000) //can not higher than 80V;
{FeCtrl2Regs.EADCDAC.bit.DAC_VALUE = FeCtrl2Regs.EADCDAC.bit.DAC_VALUE + 1; }
}
如果誤差很小,即輸入電壓已經(jīng)穩(wěn)定,則系統(tǒng)軟件準(zhǔn)備開啟前饋功能并隨后進(jìn)入正常運(yùn)行的狀態(tài)機(jī)。
if ( abs(v_input_error) < 10) //Vin error is small
{
supply_state = STATE_REGULATED;
Filter0Regs.FILTERCTRL.bit.OUTPUT_MULT_SEL =2;//Enable Feed Forward
}
2)Kc 值的配置
在輸入電壓穩(wěn)定的情況下,如果Kc 直接配置到0.5 到0.7 的某個(gè)值,則此時(shí)啟用前饋功能會(huì)影響正常環(huán)路的輸出,造成輸出電壓出現(xiàn)跌落。如下圖5 所示。
圖 5:Kc 啟用不當(dāng)造成輸出有跌落
跌落的原因是因?yàn)榇藭r(shí)環(huán)路的正常輸出被突然乘以Gain=Kc=0.5~0.7,所以占空比會(huì)立即被限制,輸出電壓出現(xiàn)跌落。直到環(huán)路經(jīng)過多個(gè)周期后再將占空比展開到正常大小,輸出電壓才恢復(fù)到正常值。
因此,在實(shí)際應(yīng)用中需要將Kc 由1 慢慢減小到需求的值(在本文涉及的硬全橋軟件中選擇Kc 為0.7)。另,在實(shí)際設(shè)計(jì)中使用Filter2 實(shí)現(xiàn)非線性增益和Kc 的設(shè)置,因此軟件配置如下。
Uint32 filter2_kc;
int filter2_kc_step = 0x200;
inline void handle_regulated_state(void)
{
filter2_kc = Filter2Regs.FILTERPRESET.bit.PRESET_VALUE;// It is Kc
if(Filter2Regs.FILTERPRESET.bit.PRESET_VALUE > 0x5A0000)
{
Filter2Regs.FILTERPRESET.bit.PRESET_VALUE = filter2_kc - filter2_kc_step;
Filter2Regs.FILTERPRESET.bit.PRESET_EN = 1;
}
}
其中,handle_regulated_state 為軟件狀態(tài)機(jī)中的一個(gè)狀態(tài),每100us 執(zhí)行一次。通過這樣一個(gè)循環(huán)函數(shù)就可以保證Kc 是以步進(jìn)的形式由1 配置到0.7(0x5A0000/0x7FFFFF=0.7),防止了輸出電壓出現(xiàn)跌落。
3)前饋功能的啟用
經(jīng)過上述完善的預(yù)先配置后,可以啟用前饋功能,啟用后KC 從1 慢慢開始減小。啟動(dòng)的設(shè)置是通過下面代碼實(shí)現(xiàn)的。“OUTPUT_MULT_SEL”位用來選擇與環(huán)路輸出相乘的值,以決定最后的占空比。當(dāng)設(shè)置為2時(shí),將選擇前饋的輸出與環(huán)路輸出相乘,即啟動(dòng)了前饋。[!--empirenews.page--]
Filter0Regs.FILTERCTRL.bit.OUTPUT_MULT_SEL =2;