我以德州儀器 (TI) 的UCD3138為例介紹了如何設(shè)計數(shù)字電源 ,并重點介紹了硬件設(shè)計。在本期中,我將解釋如何編寫固件以使其工作。
固件
與模擬電源轉(zhuǎn)換器設(shè)計通過硬件控制一切不同,固件是數(shù)字控制的“靈魂”;幾乎所有主要功能都是通過代碼實現(xiàn)的。由于代碼受到實時限制,中央處理器 (CPU) 帶寬有限,因此具有組織良好的固件結(jié)構(gòu)非常重要。
我們可以將 CPU 處理的任務(wù)分為兩類:時間關(guān)鍵型和非時間關(guān)鍵型。時間關(guān)鍵任務(wù)包括 ADC 測量、環(huán)路控制、系統(tǒng)保護(hù)和狀態(tài)機(jī)。非時間關(guān)鍵任務(wù)通常包括 PMBus/通用異步接收器/發(fā)送器 (UART) 通信、故障記錄等。
基于這兩類,固件分為兩個主要部分:中斷循環(huán),處理時間關(guān)鍵的任務(wù);以及處理非時間關(guān)鍵任務(wù)的后臺循環(huán)。圖 1 說明了固件結(jié)構(gòu):
圖 1:固件結(jié)構(gòu)
后臺循環(huán)的框圖很簡單:系統(tǒng)初始化后,CPU進(jìn)入無限循環(huán)。所有非時間關(guān)鍵的任務(wù)都在這個循環(huán)中執(zhí)行。同時,定時器會產(chǎn)生固定頻率的中斷。如果任何時候有中斷,CPU 會停止它正在做的事情,存儲所有相關(guān)數(shù)據(jù)并跳轉(zhuǎn)到中斷程序。一旦中斷例程完成,CPU 就會回到后臺循環(huán)并從它停止的地方繼續(xù)。
中斷循環(huán)更復(fù)雜。它測量 ADC 輸入、控制轉(zhuǎn)換器并負(fù)責(zé)系統(tǒng)保護(hù)。中斷循環(huán)的關(guān)鍵部分是狀態(tài)機(jī),它指示轉(zhuǎn)換器的當(dāng)前狀態(tài),轉(zhuǎn)換器在這個狀態(tài)下需要做什么,轉(zhuǎn)換器接下來應(yīng)該做什么。圖 2 是一個簡單的狀態(tài)機(jī)示例:
圖 2:狀態(tài)機(jī)圖
CPU 繼續(xù)監(jiān)視輸入電壓。一旦輸入電壓超過預(yù)定義閾值,轉(zhuǎn)換器就會開啟并開始執(zhí)行軟啟動,而輸出電壓會線性增加,直到達(dá)到設(shè)定點。一旦輸出電壓達(dá)到該設(shè)定點,轉(zhuǎn)換器就會進(jìn)入調(diào)節(jié)模式,它將一直停留到發(fā)生故障或被命令關(guān)閉。如果在任何時候發(fā)生故障,轉(zhuǎn)換器將關(guān)閉并鎖定,除非被命令重新啟動。
使用圖形用戶界面
TI 的 Fusion Digital Power Designer 圖形用戶界面 (GUI) 簡化了由UCD3138控制的電源轉(zhuǎn)換器設(shè)計。通過 PMBus 與 GUI 對話,我們可以實時監(jiān)控電源運行狀態(tài)、配置運行參數(shù)和調(diào)整控制回路。
GUI 支持最流行的拓?fù)浣Y(jié)構(gòu),包括 PFC、LLC 和相移全橋。不同的拓?fù)鋵⒂胁煌?GUI 界面。固件中的設(shè)置 ID 告訴 GUI 拓?fù)涫鞘裁?,以便它打開一個接口來適應(yīng)該拓?fù)?。圖 3 顯示了 PFC 轉(zhuǎn)換器的 GUI:
Figure 3: UCD3138 GUI
溝通
數(shù)字控制器可以監(jiān)控轉(zhuǎn)換器并與主機(jī)通信;反過來,主機(jī)可以向轉(zhuǎn)換器發(fā)送命令,以執(zhí)行諸如輸出電壓調(diào)整、上電排序、遠(yuǎn)程開/關(guān)控制等任務(wù)。在隔離式 AC/DC 應(yīng)用中,PFC 后跟隔離式 DC /DC轉(zhuǎn)換器,UART用于PFC與DC/DC之間的通信,PMBus用于DC/DC與負(fù)載/主機(jī)之間的通信,如圖4所示。
圖 4:隔離 AC/DC 系統(tǒng)中的通信
對于PFC和DC/DC之間的UART通信,目前還沒有行業(yè)標(biāo)準(zhǔn)協(xié)議;但是,UCD3138團(tuán)隊已經(jīng)開發(fā)了一個完整的主/次通信協(xié)議示例,可供使用。
希望現(xiàn)在我們對如何設(shè)計數(shù)字控制電源有了大致的了解。盡管我在本系列中給出的設(shè)計示例基于升壓轉(zhuǎn)換器,但同樣的設(shè)計原則也適用于其他拓?fù)?。功率級與模擬解決方案相同,但控制實現(xiàn)不同:一個是通過代碼實現(xiàn),可以動態(tài)改變,另一個是硬件實現(xiàn),是固定的。固件開發(fā)在數(shù)字轉(zhuǎn)換器設(shè)計中需要大量工作。編寫代碼對模擬工程師來說可能是一個挑戰(zhàn),但是一旦你習(xí)慣了它,你就會享受到數(shù)字電源的優(yōu)勢。