數(shù)字電源轉(zhuǎn)換的方案設(shè)計
使用PID算法,將實際與期望輸出電壓之間的誤差進(jìn)行比例、積分和微分計算,然后將這三項合起來,實現(xiàn)對PWM占空比的控制。PID算法可以用于采用電壓和電流模式的控制環(huán)路。處理Microchip的DSC不需要DSP技巧(見圖5的代碼列表),控制軟件(圖4)的主要“核心”是PID環(huán)路。PID軟件通常很小,但是其執(zhí)行速度非???,通常每秒可以反復(fù)幾十萬次。這么高的反復(fù)率需要PID軟件程序盡可能有效地發(fā)揮最佳性能。使用匯編程序是保證“嚴(yán)緊代碼”的一種很好的方法。
PID控制環(huán)路是定期由ADC進(jìn)行中斷驅(qū)動,任何系統(tǒng)功能都能在“空閑環(huán)路”中執(zhí)行,以便減少PID控制軟件內(nèi)不必要的工作量。諸如電壓上升/下降、錯誤檢測、前饋計算和通信支持程序功能都是空閑環(huán)路可以執(zhí)行的,其他中斷驅(qū)動進(jìn)程的優(yōu)先級都必須比PID環(huán)路低。
空閑環(huán)路在完成系統(tǒng)和外設(shè)的初始化任務(wù)之后啟動。通常,空閑環(huán)路監(jiān)控溫度,計算“前饋”條件,并檢查故障狀況。SMPS軟件可執(zhí)行該控制算法,將ADC中斷驅(qū)動的PID環(huán)路作為其與時間關(guān)系最密切的部分。PID軟件不應(yīng)該使用超過可用處理器大約66%的帶寬,以便計算資源的其余部分能夠分配給空閑環(huán)路軟件。
假設(shè)以30 MIPS運行PID環(huán)路(包括30條指令),執(zhí)行時間大約為1μs。如果反復(fù)率是500 kHz(2μs),那么PID工作量需要消耗一半可用的處理器帶寬,也就是15 MIPS。
用于數(shù)字式降壓式轉(zhuǎn)換器的PID軟件的實例代碼列表:
CALCULATE_PID:
push.s ; Save SR and W0-W3
bclr.b IFS0+1, #3 ; Clr IRQ flag in interrupt controller
#PID_REG_BASE, w8 ; Init pointer to PID register block
mov #PID_GAIN_REG_BASE, w10 ; Init pointer to PID gain register block
mov ADBUF1, w0 ; Read ADC to get voltage measurement
mov COMMANDED_VOLTAGE, w1 ; Get commanded output voltage
sub w1, w0, w0 ; W0 = proportional voltage error
mov PROPORTIONAL_Error, w1 ; Get previous voltage error
sub w0, w1, w2 ; diff error = new verr - old verr
mov w0, PROPORTIONAL_ERROR ; Store New Proportional Voltage Error
mov w0, PREINTEGRAL_TERM ; Store copy PERR as pre integral term
mov w2, DERIVATIVE_ERROR ; Store new Derivative Error
; These registers are reserved for PID calculations
; w6, w7 = contains data for MAC operations
; w8, w10 = pointers to error terms, and gain coefficients
SUM_PID_TERMS:
clr A, [w8]+=2, w6, [w10]+=2, w7 ; clr A, prefetch w6, w7
mac w6*w7, A, [w8]+=2, w6, [w10]+=2, w7 ; MAC proportional term and gain
mac w6*w7, A, [w8]+=2, w6, [w10]+=2, w7 ; MAC derivative term and gain
mac w6*w7, B, [w8]+=2, w6, [w10]+=2, w7 ; Update Integrator
add ACCA ; Add ACCB (Integrator) to ACCA
sftac A, -#8 ; scale accumulator (shift)
mov ACCAH,w0 ; Read MSW of acca (result)
btst ACCAU,#7 ; Check sign bit of ACCA
bra z, Output_PWM ; Branch if acca PWM value is positive
clr w0 ; Clear negative PWM values
OUTPUT_PWM:
mov w0, DC1 ; Output new duty cycle value
pop.s ; Restore SR, w0-w3
retfie ; Return from Interrupt
評估板有助于設(shè)計人員測試和修改SMPS控制軟件,并理解SMPS的設(shè)計原理。在這種情況下,您可以考慮使用Microchip的dsPICDEM SMPS降壓型開發(fā)板--卓越的低功耗DC/DC降壓式轉(zhuǎn)換器來評估DSC器件和控制軟件。該板可通過標(biāo)準(zhǔn)AC/DC 9V,0.75A電源獲得其輸入電源。板上有兩個獨立的降壓式轉(zhuǎn)換器,演示軟件設(shè)置可提供高達(dá)+5V和+3.3V的輸出。
圖4 控制軟件的結(jié)構(gòu)
這個開發(fā)板的輸入電壓范圍為8-14V DC。每個輸出負(fù)載應(yīng)該限制在0.75A,而輸入電源可以通過同軸輸入電源連接器J2或測試夾連接P1和P2提供。該板也可為+5V輸出提供一個動態(tài)負(fù)載。這個負(fù)載是通過1 kHz方波信號驅(qū)動的,該信號是由輸出比較模塊產(chǎn)生的。板上動態(tài)負(fù)載使用一個FET將電阻器負(fù)載連接到轉(zhuǎn)換器對地輸出,實現(xiàn)轉(zhuǎn)換器激勵,以便可以測量轉(zhuǎn)換器的動態(tài)行為。動態(tài)負(fù)載的使用可通過跳線模塊和/或軟件由用戶自行選擇。
用戶可以選擇通過跳線設(shè)置,像標(biāo)準(zhǔn)降壓式轉(zhuǎn)換器或同步降壓式轉(zhuǎn)換器那樣運行開發(fā)板。所提供的軟件能夠以電壓控制模式運行該板,也可以進(jìn)行電流監(jiān)控。該板也可通過轉(zhuǎn)換器輸出端的一個檢測電阻器測量電流,而電壓則被放大并送到dsPIC30F2020器件的ADC輸入端。該板還可提供通過ADC輸入可讀取的三個備用可變電阻器。這些“電位器”可用于在原型設(shè)計中的模擬所需的信號。
8 結(jié)語
通過專用于數(shù)字回路控制的新款DSC,電源設(shè)計人員可以容易地在他們的設(shè)計中加入新的功能和能力。要做到這一點,無需學(xué)習(xí)復(fù)雜的數(shù)字信號處理器(DSP)處理技巧,使用熟悉的模擬元件和軟件,設(shè)計人員就能夠迅速而經(jīng)濟地使用DSC開發(fā)具有更高智能的電源。
評論