數(shù)字電源轉(zhuǎn)換的方案設(shè)計(jì)
使用PID算法,將實(shí)際與期望輸出電壓之間的誤差進(jìn)行比例、積分和微分計(jì)算,然后將這三項(xiàng)合起來(lái),實(shí)現(xiàn)對(duì)PWM占空比的控制。PID算法可以用于采用電壓和電流模式的控制環(huán)路。處理Microchip的DSC不需要DSP技巧(見(jiàn)圖5的代碼列表),控制軟件(圖4)的主要“核心”是PID環(huán)路。PID軟件通常很小,但是其執(zhí)行速度非常快,通常每秒可以反復(fù)幾十萬(wàn)次。這么高的反復(fù)率需要PID軟件程序盡可能有效地發(fā)揮最佳性能。使用匯編程序是保證“嚴(yán)緊代碼”的一種很好的方法。
PID控制環(huán)路是定期由ADC進(jìn)行中斷驅(qū)動(dòng),任何系統(tǒng)功能都能在“空閑環(huán)路”中執(zhí)行,以便減少PID控制軟件內(nèi)不必要的工作量。諸如電壓上升/下降、錯(cuò)誤檢測(cè)、前饋計(jì)算和通信支持程序功能都是空閑環(huán)路可以執(zhí)行的,其他中斷驅(qū)動(dòng)進(jìn)程的優(yōu)先級(jí)都必須比PID環(huán)路低。
空閑環(huán)路在完成系統(tǒng)和外設(shè)的初始化任務(wù)之后啟動(dòng)。通常,空閑環(huán)路監(jiān)控溫度,計(jì)算“前饋”條件,并檢查故障狀況。SMPS軟件可執(zhí)行該控制算法,將ADC中斷驅(qū)動(dòng)的PID環(huán)路作為其與時(shí)間關(guān)系最密切的部分。PID軟件不應(yīng)該使用超過(guò)可用處理器大約66%的帶寬,以便計(jì)算資源的其余部分能夠分配給空閑環(huán)路軟件。
假設(shè)以30 MIPS運(yùn)行PID環(huán)路(包括30條指令),執(zhí)行時(shí)間大約為1μs。如果反復(fù)率是500 kHz(2μs),那么PID工作量需要消耗一半可用的處理器帶寬,也就是15 MIPS。
用于數(shù)字式降壓式轉(zhuǎn)換器的PID軟件的實(shí)例代碼列表:
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
評(píng)估板有助于設(shè)計(jì)人員測(cè)試和修改SMPS控制軟件,并理解SMPS的設(shè)計(jì)原理。在這種情況下,您可以考慮使用Microchip的dsPICDEM SMPS降壓型開發(fā)板--卓越的低功耗DC/DC降壓式轉(zhuǎn)換器來(lái)評(píng)估DSC器件和控制軟件。該板可通過(guò)標(biāo)準(zhǔn)AC/DC 9V,0.75A電源獲得其輸入電源。板上有兩個(gè)獨(dú)立的降壓式轉(zhuǎn)換器,演示軟件設(shè)置可提供高達(dá)+5V和+3.3V的輸出。
圖4 控制軟件的結(jié)構(gòu)
這個(gè)開發(fā)板的輸入電壓范圍為8-14V DC。每個(gè)輸出負(fù)載應(yīng)該限制在0.75A,而輸入電源可以通過(guò)同軸輸入電源連接器J2或測(cè)試夾連接P1和P2提供。該板也可為+5V輸出提供一個(gè)動(dòng)態(tài)負(fù)載。這個(gè)負(fù)載是通過(guò)1 kHz方波信號(hào)驅(qū)動(dòng)的,該信號(hào)是由輸出比較模塊產(chǎn)生的。板上動(dòng)態(tài)負(fù)載使用一個(gè)FET將電阻器負(fù)載連接到轉(zhuǎn)換器對(duì)地輸出,實(shí)現(xiàn)轉(zhuǎn)換器激勵(lì),以便可以測(cè)量轉(zhuǎn)換器的動(dòng)態(tài)行為。動(dòng)態(tài)負(fù)載的使用可通過(guò)跳線模塊和/或軟件由用戶自行選擇。
用戶可以選擇通過(guò)跳線設(shè)置,像標(biāo)準(zhǔn)降壓式轉(zhuǎn)換器或同步降壓式轉(zhuǎn)換器那樣運(yùn)行開發(fā)板。所提供的軟件能夠以電壓控制模式運(yùn)行該板,也可以進(jìn)行電流監(jiān)控。該板也可通過(guò)轉(zhuǎn)換器輸出端的一個(gè)檢測(cè)電阻器測(cè)量電流,而電壓則被放大并送到dsPIC30F2020器件的ADC輸入端。該板還可提供通過(guò)ADC輸入可讀取的三個(gè)備用可變電阻器。這些“電位器”可用于在原型設(shè)計(jì)中的模擬所需的信號(hào)。
8 結(jié)語(yǔ)
通過(guò)專用于數(shù)字回路控制的新款DSC,電源設(shè)計(jì)人員可以容易地在他們的設(shè)計(jì)中加入新的功能和能力。要做到這一點(diǎn),無(wú)需學(xué)習(xí)復(fù)雜的數(shù)字信號(hào)處理器(DSP)處理技巧,使用熟悉的模擬元件和軟件,設(shè)計(jì)人員就能夠迅速而經(jīng)濟(jì)地使用DSC開發(fā)具有更高智能的電源。
評(píng)論