鉅大LARGE | 點擊量:1134次 | 2019年11月09日
嵌入式系統中電源電壓的精確控制
概要
該項目的目標是設計一個高效電源系統,其輸出電壓(VOUT)可以數字調節。為了保證輸出電壓的精確性,采用數字閉環控制,用于修正失調、漂移和負載變化(最大至600mA)的影響。電路包括輸出可調的降壓型控制器、ADC與DAC、電壓基準以及一個微控制器(MCU)。
在大多數DC-DC轉換器中,位于FB引腳上的電阻網絡可以調整轉換器的輸出電壓(見圖1)。在本文電路中,利用DAC輸出電壓(VDAC)改變電阻網路的基準電壓,達到調整轉換器輸出(VOUT)的目的。ADC檢測輸出電壓,并將結果送入微處理器。微處理器調整DAC輸出,以控制系統輸出電壓達到預定值。為使電路盡可能簡單,預設輸出電壓通過pC的串行通信口(RS-232)送入微處理器。這個系統在一些需要精確控制供電電壓的嵌入式系統中非常有用。例如為ASIC、DSp或者MCU供電的電源,電源電壓對應于處理器的工作速率。將供電電壓調整到工作速率對應的最小電壓,可以降低處理器功耗。
圖1
圖2供電系統的模擬部分產生一路負載可達600mA、1.25V~5V可調的高準確度輸出電壓
微處理器選擇高速的8051兼容微處理器DS89C420,使用32MHz晶體。該微處理器的絕大多數指令為單指令周期,可以運行在32MIpS。處理器可以由J1口在線編程(見圖3)。DS89C420/430/440/450系列用戶手冊介紹了如何通過pC串行通信口,利用微軟的超級終端(HyperTermina)下載固件。處理器固件用C編寫并可使用免費的SourceforgeSmallDevicesC編譯器(SDCC)編譯。
圖3供電系統的數字部分需要一個穩定的5V電源(與模擬部分共用),數字部分通過逐位控制的SpI接口與DAC、ADC通信。串行收發器(U8)從pC接收VOUT設定值,J1提供MCU的在線編程。
模擬電路設計
為計算電阻網絡中的R1、R2和R3(見圖2),先假設流入FB引腳的電流(IFB)可以忽略(MAX1692規格表給出的最大值為50nA),設R2為49.9kΩ。FB引腳電壓為1.25V,電流I2為25mA,遠高于50nA,證明忽略IFB的決定是正確的。最后,計算R1和R2:
(1)
DAC輸出電壓(VDAC)為最大值2.5V時,降壓調節器的輸出(VOUT)應該為最小值1.25V。代入式1:
第一項為零,得到R3為50kΩ。當VDAC為最小值0V時,VOUT應該為最大值5V。代入式1:
得到R1值為75kΩ。ADC采集VOUT并將其通過SpI接口傳送給MCU,形成閉環數字控制。
數字電路設計
DAC和ADC由逐位控制的SpI總線和MCU通信。MCU是主器件,而DAC和ADC是從器件。MCU的5個引腳分別作為SCLK、MOSI、MISO、CSADC(ADC片選)、CSDAC(DAC片選)。總線上的器件共用SCLK,為達到最高通信速度,使用32MHz的晶體供給MCU系統時鐘。MCU通過pC串口接收VOUT值。MAX3311是RS-232收發器,將RS-232電平轉為TTL/COMS電平。
布局考慮
使用寬的引線連接所有無源器件(旁路電容、補償電容、輸入電容、輸出電容和電感)與降壓轉換器。這些元件和FB引腳的電阻網絡應盡可能靠近降壓轉換器,以減小pCB引線電阻和噪聲干擾。降壓轉換器處需要大面積的覆銅,以降低IC在重負載下的工作溫度。可以參考MAX1692評估板。為保持信號完整性,必須盡可能將模擬信號線和數字信號線隔離開。將DAC和ADC靠近降壓器放置,用短線連接所有模擬信號。數字信號在另一方向連接到MCU。盡可能將電壓基準靠近ADC,提供電壓基準的電壓反饋線用較短的隔離線連接到ADC的REF和GND引腳,以保證ADC的轉換精度。
必須確保MCU下方沒有高速信號線。同時,32MHz時鐘晶體盡可能靠近MCU的輸入引腳。如同所有pCB布線一樣,不允許存在90°引線轉角,所有IC電源都用0.1μF陶瓷電容旁路,并且盡可能地靠近供電引腳安裝。
軟件
本系統MCU軟件通過pC串口獲取要設定的VOUT,對應由ADC采樣得到的降壓轉換器輸出電壓。由于MCU是8位總線,而ADC是12位分辨率,將字節左移4位(相當于乘以16),4位最低有效位置零。軟件用C編寫,可從Maxim網站下載。
測試結果
即便是滿負載,該系統也可以正確地將轉換器的輸出電壓控制在設定電壓的1%誤差內。由ADC得到的反饋可以補償負載變化、失調和輸出電壓漂移,以準確控制輸出電壓。圖4a和圖4b是電源電壓在1mA負載時的性能,圖5a表示VOUT和VDAC在VOUT由4.5V轉變到1.5V時的變化,圖5b為VOUT和VDAC在VOUT由1.5V轉變到4.5V時的變化。從中可以看出VOUT的下降速率比上升速率慢很多。這是由于輸出大電容放電所致(見圖2的C16)。轉換器可以非常快地對電容充電,但負載沒有辦法使電容快速放電。注意電壓的變化速率非常接近,因為350mA負載可以使電容足夠快地放電。這樣,一個足夠大的負載可以使VOUT以同樣速率增加或減小。
圖4波形顯示了負載電流為1mA時,降壓轉換器輸出電壓(VOUT)和DAC的輸出電壓(VDAC)。圖a為VOUT從4.5V到1.5V變化時的VOUT和VDAC波形;圖b為VOUT從1.5V到4.5V變化時的VOUT和VDAC波形
圖5.波形顯示了負載電流為350mA時,降壓轉換器輸出電壓(VOUT)和DAC的輸出電壓(VDAC)。圖a為VOUT從4.5V到1.5V變化時的VOUT和VDAC波形;圖b為VOUT從1.5V到4.5V變化時的VOUT和VDAC波形
雖然電壓可以準確控制,但測試結果也提醒我們系統存在的某些問題,圖4a顯示反饋系統會上沖或下沖。這是由軟件程序循環的占用時間引起的。圖4a顯示VOUT達到設定值之前,VDAC增大到它的最大值。當VOUT最后達到設定值,VDAC必須減小,降低DAC輸出電壓需要時間,這導致VOUT下沖。理想情況下,VDAC必須和VOUT以同樣速度變化,但是,在系統負載達到一定水平之前無法實現這一平衡。該系統需要100μs,用以調整大的輸出電壓變化,因為軟件需要在ADC采樣后逐位改變VDAC。為了使VOUT從5V變到1.25V,MCU必須讓12位DAC的電壓增加4,095次,同時對VOUT采樣4,095次,每次ADC采樣都需要耗費采樣時間和轉換時間。