摘 要
UCD3138 是德州儀器(Texas Instruments)公司推出的最新一代數字電源控制器,于2012 年第一季度正式發布。相比于上一代數字電源控制器UCD30xx,其在諸多方面有著重要改進,功能更加豐富,性能更加強大。本文基于一款采用硬開關全橋(副邊采用全波同步整流)拓撲的開關電源,詳細介紹了UCD3138 的Single Frame 功能和輸入電壓前饋功能。在完成對上述功能理解地同時也可以清楚的了解到UCD3138 的優勢所在。本文的最后部分給出了參考文獻。
?
1、Single Frame 功能設計與實現
Single Frame 是一種全新的在副邊完成對原邊輸入電壓檢測的方法。通過該方法可以在副邊直接快速地檢測當前輸入電壓,實現欠壓保護功能,因此無需額外的輸入欠壓保護電路及光耦或數字隔離器。
?
1.1 Single Frame 功能介紹
在電源系統未正式運行前,UCD3138 芯片會周期性的發出單個或幾個驅動脈沖,使硬開關全橋工作單個或者多個周期。此時,在變壓器副邊中心抽頭處可以產生出電壓,該電壓與輸入電壓成線性關系,因此通過UCD3138 檢測該點電壓并通過軟件計算后可以得到輸入電壓?;谠撚嬎憬Y果,系統可以判斷輸入電壓是否達到開啟點,以決定是否退出欠壓保護并開始正常運行。
實際應用中,為保證全橋原邊側上管(驅動地為浮地)可以順利導通,通常需要連續發送幾個周期的驅動脈沖。在本文涉及的硬開關全橋中,實際發送了2 個驅動脈沖以保證UCD3138 順利檢測到正確的輸入電壓。
?
1.2 硬件電路設計
實現Single Frame 功能的硬件電路比較簡單,如下圖1。VIN_CT 網絡連接到變壓器副邊中心抽頭處,然后通過RC 濾波后連接到UCD3138 的EAP2 引腳。該電路的主要功能是實現變壓器中心抽頭處電壓的濾波及縮放。
圖 1:Single Frame 硬件電路
變壓器的匝比為5:2:2 。EAP2 處電壓與輸入電壓的關系為:
?
1.3 軟件設計
實現Single Frame 功能的軟件設計包括了驅動信號的配置和電壓采集及轉換等兩個部分,其中第一個部分是核心配置。下面著重討論第一部分。
?
1. 開關周期的設定
下面代碼設定了開關周期為5us,即200KHz。計算公式為:
?
#define PERIOD???????????? (20000)
Dpwm0Regs.DPWMPRD.all = PERIOD;
?
2. 單脈沖長度的設定
下面代碼完成了單脈沖脈寬長度的設定, 包含了死區的設置。該代碼設置的時間寬度為
。即一個周期內輸出兩個脈寬長度皆為651ns 的脈沖。
Dpwm0Regs.DPWMEV1.all = 20;
Dpwm0Regs.DPWMEV2.all = 2625;
Dpwm0Regs.DPWMEV3.all = 20 + 10000;
Dpwm0Regs.DPWMEV4.all = 2625 + 10000;
?
3. 采樣時刻的設置
考慮到在變壓器副邊中心抽頭處電壓變為高電壓時會伴隨有尖峰和震蕩,為防止采樣錯誤,采樣點設置需要避開開始時刻。下面代碼設置了采樣點的位置:接近脈沖的結束時刻,為600ns 處。
Dpwm0Regs.DPWMSAMPTRIG1.all = 2400;
?
1.4 實測波形
如下圖2 所示,綠色線為全橋原邊驅動(即單脈沖)波形,其時間長度約為650ns,與軟件設計一致。黃色線為變壓器副邊中心抽頭處的電壓波形,第一個波頭是因為全橋原邊沒有完全導通造成輸入電壓沒能夠完全地傳輸到副邊,而第二個脈沖則準確地反應了輸入電壓的信息。此時,輸入電壓為50V,黃色線的平臺為20V,與理論計算一致。
圖 2:Single Frame 實測波形
?
2、前饋功能的設計與實現
前饋(feed forward)功能是UCD3138 的一個重要特性。借助于實現Single Frame 功能的硬件電路,UCD3138可以獲知當前輸入電壓;當輸入電壓有劇烈變化時,前饋功能可以快速響應并調整占空比,以盡快穩定輸出電壓。
?
2.1 前饋功能實現原理描述
UCD3138 芯片內部的前饋模塊的輸出為一個增益值,將與環路的輸出結果相乘,以共同決定占空比。前饋模塊輸出的增益由該式決定:Gain = Kc + Kp×ΔV 。其中:
◎ Kc 為常數,通常設置在0.5~0.7 之間,以方便對占空比進行大小兩個方向的調節;
◎ Kp 為輸入電壓差值的放大倍數。該值為非線性值,即誤差越大則增益越大。誤差較小時,該值為0;
◎ ΔV 為跳變之后的輸入電壓與跳變前輸入電壓的差值,即Vref(DAC)-Vin_sense。在輸入電壓跳變之后,Vref(DAC)的值會逐漸逼近新的輸入電壓,以保證該值等于最新的當前輸入電壓。
UCD3138 芯片內部前饋處理模塊的的示意圖見圖3。
圖 3: 前饋內部處理模塊
如下圖4 所示,前饋模塊的輸出結果直接與環路最終的輸出相乘,然后由相乘的結果再去調整占空比大小。這就保證了前饋的結果可以快速調整當前的占空比。
圖 4:前饋輸出最終與環路輸出相乘
?
2.2 前饋功能的實現
前饋功能的硬件設計主要包含了輸入電壓的檢測電路,在第一章曾有描述,在此不再贅述。軟件設計主要包含了Vref(DAC)值的配置、Kc 的配置和前饋功能的啟用設置。
?
1)Vref(DAC)值的配置
如下函數實現了根據v_input_error 的大小對Vref(DAC)值的更新。v_input_error 為當前采集的輸入電壓與前一次采集到的輸入電壓的差值。該函數包含在一個狀態機中,100us 執行一次,將連續執行300 次,以保證在使能前饋功能之前Vref(DAC)近似等于當前輸入電壓。
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; }
}
如果誤差很小,即輸入電壓已經穩定,則系統軟件準備開啟前饋功能并隨后進入正常運行的狀態機。
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 值的配置
在輸入電壓穩定的情況下,如果Kc 直接配置到0.5 到0.7 的某個值,則此時啟用前饋功能會影響正常環路的輸出,造成輸出電壓出現跌落。如下圖5 所示。
???
圖 5:Kc 啟用不當造成輸出有跌落
跌落的原因是因為此時環路的正常輸出被突然乘以Gain=Kc=0.5~0.7,所以占空比會立即被限制,輸出電壓出現跌落。直到環路經過多個周期后再將占空比展開到正常大小,輸出電壓才恢復到正常值。
因此,在實際應用中需要將Kc 由1 慢慢減小到需求的值(在本文涉及的硬全橋軟件中選擇Kc 為0.7)。另,在實際設計中使用Filter2 實現非線性增益和Kc 的設置,因此軟件配置如下。
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 為軟件狀態機中的一個狀態,每100us 執行一次。通過這樣一個循環函數就可以保證Kc 是以步進的形式由1 配置到0.7(0x5A0000/0x7FFFFF=0.7),防止了輸出電壓出現跌落。
?
3)前饋功能的啟用
經過上述完善的預先配置后,可以啟用前饋功能,啟用后KC 從1 慢慢開始減小。啟動的設置是通過下面代碼實現的?!癘UTPUT_MULT_SEL”位用來選擇與環路輸出相乘的值,以決定最后的占空比。當設置為2時,將選擇前饋的輸出與環路輸出相乘,即啟動了前饋。
Filter0Regs.FILTERCTRL.bit.OUTPUT_MULT_SEL =2;
UCD3138 是德州儀器(Texas Instruments)公司推出的最新一代數字電源控制器,于2012 年第一季度正式發布。相比于上一代數字電源控制器UCD30xx,其在諸多方面有著重要改進,功能更加豐富,性能更加強大。本文基于一款采用硬開關全橋(副邊采用全波同步整流)拓撲的開關電源,詳細介紹了UCD3138 的Single Frame 功能和輸入電壓前饋功能。在完成對上述功能理解地同時也可以清楚的了解到UCD3138 的優勢所在。本文的最后部分給出了參考文獻。
?
1、Single Frame 功能設計與實現
Single Frame 是一種全新的在副邊完成對原邊輸入電壓檢測的方法。通過該方法可以在副邊直接快速地檢測當前輸入電壓,實現欠壓保護功能,因此無需額外的輸入欠壓保護電路及光耦或數字隔離器。
?
1.1 Single Frame 功能介紹
在電源系統未正式運行前,UCD3138 芯片會周期性的發出單個或幾個驅動脈沖,使硬開關全橋工作單個或者多個周期。此時,在變壓器副邊中心抽頭處可以產生出電壓,該電壓與輸入電壓成線性關系,因此通過UCD3138 檢測該點電壓并通過軟件計算后可以得到輸入電壓?;谠撚嬎憬Y果,系統可以判斷輸入電壓是否達到開啟點,以決定是否退出欠壓保護并開始正常運行。
實際應用中,為保證全橋原邊側上管(驅動地為浮地)可以順利導通,通常需要連續發送幾個周期的驅動脈沖。在本文涉及的硬開關全橋中,實際發送了2 個驅動脈沖以保證UCD3138 順利檢測到正確的輸入電壓。
?
1.2 硬件電路設計
實現Single Frame 功能的硬件電路比較簡單,如下圖1。VIN_CT 網絡連接到變壓器副邊中心抽頭處,然后通過RC 濾波后連接到UCD3138 的EAP2 引腳。該電路的主要功能是實現變壓器中心抽頭處電壓的濾波及縮放。
圖 1:Single Frame 硬件電路
變壓器的匝比為5:2:2 。EAP2 處電壓與輸入電壓的關系為:
?
1.3 軟件設計
實現Single Frame 功能的軟件設計包括了驅動信號的配置和電壓采集及轉換等兩個部分,其中第一個部分是核心配置。下面著重討論第一部分。
?
1. 開關周期的設定
下面代碼設定了開關周期為5us,即200KHz。計算公式為:
?
#define PERIOD???????????? (20000)
Dpwm0Regs.DPWMPRD.all = PERIOD;
?
2. 單脈沖長度的設定
下面代碼完成了單脈沖脈寬長度的設定, 包含了死區的設置。該代碼設置的時間寬度為
。即一個周期內輸出兩個脈寬長度皆為651ns 的脈沖。
Dpwm0Regs.DPWMEV1.all = 20;
Dpwm0Regs.DPWMEV2.all = 2625;
Dpwm0Regs.DPWMEV3.all = 20 + 10000;
Dpwm0Regs.DPWMEV4.all = 2625 + 10000;
?
3. 采樣時刻的設置
考慮到在變壓器副邊中心抽頭處電壓變為高電壓時會伴隨有尖峰和震蕩,為防止采樣錯誤,采樣點設置需要避開開始時刻。下面代碼設置了采樣點的位置:接近脈沖的結束時刻,為600ns 處。
Dpwm0Regs.DPWMSAMPTRIG1.all = 2400;
?
1.4 實測波形
如下圖2 所示,綠色線為全橋原邊驅動(即單脈沖)波形,其時間長度約為650ns,與軟件設計一致。黃色線為變壓器副邊中心抽頭處的電壓波形,第一個波頭是因為全橋原邊沒有完全導通造成輸入電壓沒能夠完全地傳輸到副邊,而第二個脈沖則準確地反應了輸入電壓的信息。此時,輸入電壓為50V,黃色線的平臺為20V,與理論計算一致。
圖 2:Single Frame 實測波形
?
2、前饋功能的設計與實現
前饋(feed forward)功能是UCD3138 的一個重要特性。借助于實現Single Frame 功能的硬件電路,UCD3138可以獲知當前輸入電壓;當輸入電壓有劇烈變化時,前饋功能可以快速響應并調整占空比,以盡快穩定輸出電壓。
?
2.1 前饋功能實現原理描述
UCD3138 芯片內部的前饋模塊的輸出為一個增益值,將與環路的輸出結果相乘,以共同決定占空比。前饋模塊輸出的增益由該式決定:Gain = Kc + Kp×ΔV 。其中:
◎ Kc 為常數,通常設置在0.5~0.7 之間,以方便對占空比進行大小兩個方向的調節;
◎ Kp 為輸入電壓差值的放大倍數。該值為非線性值,即誤差越大則增益越大。誤差較小時,該值為0;
◎ ΔV 為跳變之后的輸入電壓與跳變前輸入電壓的差值,即Vref(DAC)-Vin_sense。在輸入電壓跳變之后,Vref(DAC)的值會逐漸逼近新的輸入電壓,以保證該值等于最新的當前輸入電壓。
UCD3138 芯片內部前饋處理模塊的的示意圖見圖3。
圖 3: 前饋內部處理模塊
如下圖4 所示,前饋模塊的輸出結果直接與環路最終的輸出相乘,然后由相乘的結果再去調整占空比大小。這就保證了前饋的結果可以快速調整當前的占空比。
圖 4:前饋輸出最終與環路輸出相乘
?
2.2 前饋功能的實現
前饋功能的硬件設計主要包含了輸入電壓的檢測電路,在第一章曾有描述,在此不再贅述。軟件設計主要包含了Vref(DAC)值的配置、Kc 的配置和前饋功能的啟用設置。
?
1)Vref(DAC)值的配置
如下函數實現了根據v_input_error 的大小對Vref(DAC)值的更新。v_input_error 為當前采集的輸入電壓與前一次采集到的輸入電壓的差值。該函數包含在一個狀態機中,100us 執行一次,將連續執行300 次,以保證在使能前饋功能之前Vref(DAC)近似等于當前輸入電壓。
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; }
}
如果誤差很小,即輸入電壓已經穩定,則系統軟件準備開啟前饋功能并隨后進入正常運行的狀態機。
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 值的配置
在輸入電壓穩定的情況下,如果Kc 直接配置到0.5 到0.7 的某個值,則此時啟用前饋功能會影響正常環路的輸出,造成輸出電壓出現跌落。如下圖5 所示。
???
圖 5:Kc 啟用不當造成輸出有跌落
跌落的原因是因為此時環路的正常輸出被突然乘以Gain=Kc=0.5~0.7,所以占空比會立即被限制,輸出電壓出現跌落。直到環路經過多個周期后再將占空比展開到正常大小,輸出電壓才恢復到正常值。
因此,在實際應用中需要將Kc 由1 慢慢減小到需求的值(在本文涉及的硬全橋軟件中選擇Kc 為0.7)。另,在實際設計中使用Filter2 實現非線性增益和Kc 的設置,因此軟件配置如下。
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 為軟件狀態機中的一個狀態,每100us 執行一次。通過這樣一個循環函數就可以保證Kc 是以步進的形式由1 配置到0.7(0x5A0000/0x7FFFFF=0.7),防止了輸出電壓出現跌落。
?
3)前饋功能的啟用
經過上述完善的預先配置后,可以啟用前饋功能,啟用后KC 從1 慢慢開始減小。啟動的設置是通過下面代碼實現的?!癘UTPUT_MULT_SEL”位用來選擇與環路輸出相乘的值,以決定最后的占空比。當設置為2時,將選擇前饋的輸出與環路輸出相乘,即啟動了前饋。
Filter0Regs.FILTERCTRL.bit.OUTPUT_MULT_SEL =2;
評論
查看更多