運用低腳數的微控制器增強 交換式電壓供應器的特色與功能

本文作者:admin       點擊: 2008-02-12 00:00
前言:
介紹
利用微控制器來管理交換式電源供應器,能大幅提升設計方案的功能,如 : 組態設定、容錯能力、以及可靠度 ─ 本文將展現這些功能是如何被達成的。 

運用微控制器可提昇許多方面的功能,對電源供應器而言,雖然不是全新技術,但不同以往的是設計人員利用微控制器的功能在傳統的電源供應器裡增加的各項功能、並針對開機程序與錯誤回復等複雜程序作業賦予設定的能力。 

雖然這個針對24V至5V電壓範圍的直流對直流降壓穩壓器看似一般,但其差別在於電源供應器的標準功能,透過多項可程式化的功能來進行強化,這些可程式化功能從未運用在獨立電源控制晶片上。 

運用微控制器創造出的關鍵性功能與特色,可歸納如下:

* 一個調適性電流限流控制設計(adaptive current limit control),讓設計人員能針對電源供應器的不同相位指定不同的電流限制值(針對開機時的電容負荷設定一個上升電流限制;對高溫運作狀態設定一個較低的電流限制;以及對正常運作設定正常運作電流限制))。

* 一個可設定的輸出電壓(programmable output voltage),可透過電腦的程序控制來設定,不必由人工調整。而校正功能選項,能藉著連結一個參考電壓到輸出端及利用一個跳線器啟動電源以自動設定輸出電壓。

* 一個輸出電壓的升壓元件(output voltage ramp-up),允許設計人員能指定開啟電源時輸出電壓的上升速度。 

* 一個可設定的電壓過低鎖定功能(programmable under-voltage lockout),設計人員能設定最低電源電壓值而不必進行人工調整。

* 一個輸入端觸發電壓(trigger voltage input),讓設計人員能把電源供應器的啟動和系統中的其它電源啟動同步化。 

* 一個輸出過流偵測器(output-over-current detect),不必使用一個上層電流偵測電路(high-side current sense)。 

* 一個自動啟動元件(automatic power-up),在系統故障時會重新啟動。還可選擇裝配置一個開機重新啟動計數器,限制重新啟動的次數。 

設計概述
在定義規格後,下一步就是指定支援的硬體。為了闡明概念,我們把設計分成兩部分說明:電源供應端與微控制器 

a) 電源供應端
電源供應端採用德州儀器的 UC3847 晶片,因這顆晶片擁有整體的控制能力,並能與內部訊號連結。雖然不是新產品,但本身具備許多優點,包括:

1. 連結誤差放大器的參考電壓(VREF)輸入,讓微控制器能輸入自身的可變式參考電壓,取代UC3847的參考電壓。 
2. 連結UC3847的參考電壓,為微控制器提供一個方便的電源電壓,並讓微控制器的可變式參考電壓和原始參考電壓一樣穩定 。
3. 一個外部電流限制輸入,讓微控制器能針對電源供應端設定門檻。 
4. 連結至誤差放大器的輸出端。量測電壓使得微控制器能判斷電源供應端的平均輸出電流。 

b) 微控制器
這個設計採用的微控制器是Microchip Technology的PIC16F684。除了符合設計的要求外,小尺寸(14接腳)、低成本、以及低價位的發展工具,讓它成為理想的選擇。特點包括:

1. 兩個PWM輸出,第一個PWM使用10位元的解析度,用來輸出一參考電壓到電源供應端;第二個PWM輸出具有6至8位元解析度,用來控制輸入到UC3847的電流。 
2. 多重輸入的10位元類比數位轉換器(ADC),能監控電源供應端的各項變動值。
3. EEPROM記憶體用來儲存設定參數以及輸出電壓的設定點。

4. 低電流運作模式,讓微控制器能使用UC3847所提供的參考電壓作為依據,以調整微控制器的PWM輸出驅動器作為可程式化的參考電壓輸出。 
5. 快閃程式記憶體,讓微控制器進行重新燒錄/設定 

在選擇主要控制元件後,再用PIC16F684來連結UC3847以及擴充的必要週邊元件。UC3847和其電源供應端是根據資料表中的設計範例。PIC16F684的燒錄介面是參考 PICkit( 1 Flash Starter Kit 的使用者手冊。 

下列的注意事項,適用於任何採用支援線上(in-circuit)燒錄功能微控制器的設計:

* 微控制器的電源供應端,透過J6跳線來連結,因為微控制器的電源在燒錄時必須加以隔離。微控制器電源線路上的旁路電容,必須低於0.5uf才能進行燒錄。

* 在微控制器RA3接腳上結合一個隔離二極體以及一個提昇電阻,能防止12V的燒錄電壓,在燒錄過程中流進5V的電源。 
* 所有由微控制器趨動的UC3847控制接腳,都透過一個大電阻,切換至休眠狀態,讓元件保持休眠,直到微控制器在啟動後離開重置狀態為止。 

僅須透過簡單的重新燒錄,就能進行變更與升級,是一項重要的優勢;但缺點是軟體設計較為複雜,必須能處理多個同步作業。 

針對多個同步操作的功能建立多個狀態程序(state machines),並在一個無限迴路中逐一呼叫,以達到多重處理的效果。這個系統讓各個狀態程序在迴路中執行一個狀態,整體呈現的效果,就像所有狀態程序同時運作,雖然速度比單獨執行要來得慢一些,但這種方式可以讓控制的流程條理分明、易於修改與擴充。

和硬體狀態程序一樣,軟體狀態程序也使用一個計數器來安排操作的程序。根據計數器的數值或 「狀態」來執行不同的軟體功能。再根據目前狀態與外部的輸入資訊,研判下一個要執行的狀態。 

在這個電源供應控制器的設計中,包括四個狀態程序:Monitor_sm()、Control_sm()、Crnt_lmt_sm()、以及Out_volt_sm()。
* Monitor_sm()為系統執行所有類比到數位的轉換功能:監視電源、輸出訊號、誤差放大器、觸發電壓、以及電源MOSFET的溫度。

* Control_sm() 協調其它狀態程序的作業,以及設定系統整體運作的「模式」。 

* Crnt_lmt_sm() 控制系統迴路的程序,並負責產生限制電流的控制電壓。

* Out_volt_sm() 控制電源的輸出電壓,以及在啟動時產生升壓作用。
 
Monitor_sm() 是一個簡單的狀態程序,持續循環處理各種類比訊號,把每個訊號轉換成一個10位元數值,並儲存在measured[] 陣列。其程序如下:電源電壓、觸發電壓、電晶體溫度、誤差放大器、和輸出電壓,然後循環回到電源電壓。程序中唯一的例外是校正模式。在進行校正時,若電源供應端沒有啟動,Monitor_sm() 會持續轉換唯一的輸出電壓訊號。 

Control_sm()透過「mood」這個狀態變數來指揮其他狀態程序的活動。狀態程序的狀態對應至系統的六個模式。根據模式狀態變數的數值,系統中其它狀態程序會變更其狀態,以配合Control_sm()的活動。Control_sm()的模式或狀態包括:關閉(Shutdown)、啟動(Start)、正常(Normal)、最大I/O(Iomax)、錯誤(Error)、以及校正(Cal)

* 關閉(Shutdown),當電源等待供電與觸發電壓攀升至指定範圍時,就會啟動這個模式 

* 啟動(Start),當輸出電壓攀升至預設的輸出電壓值時,就會啟動這個狀態。正常(Normal),當所有運作正常時,就會啟動這個狀態 

* 當發生錯誤狀況時,會啟動Iomax或error模式,Iomax是發生電流過載,而 Error則是發生了溫度過高的現象。

* 校正(Cal)狀態是為了回應校正要求。
注意:Cal是一個單向迴路狀態,必須關閉電源才能離開 

圖3顯示Control_sm()的狀態以及可能的狀態轉變,以及其各種條件。圓圈代表特定的狀態,箭頭代表一項轉變。每個箭頭的註解代表造成轉變的狀況。

Crnt_lmt_sm()執行3項功能。它能協調每個迴路傳遞的啟動時機,在硬體計時器Timer0從FF轉至00之候、再啟動迴圈。之後Crnt_lmt_sm()會產生臨界電流PWM輸出脈衝,再繼續執行當前的狀態。Crnt_lmt_sm()有4個可能的狀態:關閉(Shutdown)、升壓(Boost)、正常(Normal)、以及降壓(Reduce)。 

* 關閉(Shutdown)狀態在zero責任週期中保存限流PWM的輸出訊號,強制UC3847關閉電源的輸出。

* 升壓(Boost)狀態在輸出電壓升高時,會提高限流的責任工作週期。

* 正常(Normal)狀態會把限流工作週期設定成穩定狀態的限流。

* 降壓(Reduce)狀態會調降限流的工作週期,以因應電源供應端輸出電晶體的高溫狀態。

Cnrt_lmt_sm()狀態程序隨著系統的變化,按照狀態變數的模式進行變更。 

Out_volt_sm()的運作模式類似Crnt_lmt_sm(),僅有少數例外:不包括計時監控或脈衝產生部份,且只使用3個狀態而不是4個。Out_volt_sm()的3個狀態包括關閉(Shutdown)、升壓(Ramp)、以及正常(Normal)。關閉(Shutdown)與正常(Normal)的運作模式類似Crnt_lmt_sm()中的關閉(Shutdown)與正常(Normal)狀態,把PWM的輸出電壓調至零予以關閉,在正常運作時把電壓調至預設值。新的狀態是升壓(Ramp),Out_volt_sm()把輸出電壓逐漸提高,並使用設計人員設定的遞增與延遲數值。 

當輸出電源完成升壓後,Control_sm()會收到通知,系統與狀態程序的模式就會切換至Normal 正常。 
 
四個狀態程序建構單一管理系統,能監視與控制電源的運作;並根據儲存在微控制器EEPROM記憶體中的參數值,針對內部與外部的事件進行反應。 


系統可靠度
就電源供應器的設計而言,可靠度是一項關鍵要素。在加入一個管理微控制器時,微控制器的硬體與軟體設計,必須有額外的機制來處理各種錯誤狀況。硬體可靠性和兩項問題習習相關─微控制器在啟動/關閉時的運轉狀態,以及電磁干擾(EMI)/射頻(RFI)干擾的反應。軟體方面唯一的考量就是因資料損毀和/或程式記憶體而引發的偵測與校正錯誤狀況。 

為了管理微控制器在啟動與關閉狀況時的運轉狀態,微控制器硬體內建兩個系統─開機重置(POR)電路以及停電重置(BOR)電路。 

開機重置(POR)電路的目的是在電源開啟時讓微控制器保持在正確的重置狀態,直到微控制器的電源電壓達到最低安全工作電壓,且主振盪器穩定為止。停電重置(BOR)電路在掉電時運作,當微控制器電源電壓下降至使用者設定的最低電壓值以下時,就會執行產生與保留重置的作業。結合這些系統,每當電源無法讓微控制器穩定地運作時,就會切換至重置狀態。 

管理微控制器回應電磁干擾(EMI)與射頻干擾(RFI)的方法,就是元件的靜態保護、妥善選擇旁路電容、以及適當的PCB線路配置。良好的軟體設計也很重要,因為電磁干擾與射頻干擾事件會毀損資料與程式記憶體。儘管有這麼多保護措施,但仍不能忽略掉硬體保護。 

以下的軟體保護措施已納入設計,可防範無法預測的突發狀態: 

1. 看門狗計時器(WDT),設定溢時計數時間比程式內主迴路在執行最糟狀況時的時間還稍微長一點。WDT的指令僅存在於主要軟體迴路。這種設計能保護系統不會出現軟體的鎖死狀態,藉著建立一個軟體恢復正常的機制,即使這類狀況嚴重到足以破壞微控制器的程式計數器,仍能回復到正常模式下。 

2. 狀態程序所有狀態解碼作業,都含有一個預設狀態。每當狀態變數沒有被解碼成有效的狀態時,系統就會呼叫預設狀態。在預設狀態中有一個例行程序,能重置所有關鍵的狀態程序資料變數,包括狀態計數器的變數。 

硬體與軟體系統能協助微控制器從無法預測的行為中恢復正常,任何運用微控制器來管理電源系統的設計,都應審慎地運用。 

結論
本文說明的設計,顯示微控制器電源管理的方式,以及如何能夠大幅提升設計的功能、設定、容錯、以及可靠度。 

電子郵件:look@compotechasia.com

聯繫電話:886-2-27201789       分機請撥:11