關于單片機控制開關電源的文章,本版發出了不少帖,爭論也很激烈.趁此機會我也談談我的幾點看法.
單片機控制開關電源,單從對電源輸出的控制來說,可以有幾種控制方式.
其一是單片機輸出一個電壓(經DA芯片或PWM方式),用作電源的基準電壓.這種方式僅僅是用單片機代替了原來的基準電壓,可以用按鍵輸入電源的輸出電壓值,單片機并沒有加入電源的反饋環,電源電路并沒有什么改動.這種方式最簡單.
其二是單片機擴展AD,不斷檢測電源的輸出電壓,根據電源輸出電壓與設定值之差,調整DA的輸出,控制PWM芯片,間接控制電源的工作.這種方式單片機已加入到電源的反饋環中,代替原來的比較放大環節,單片機的程序要采用比較復雜的PID算法.
其三是單片機擴展AD,不斷檢測電源的輸出電壓,根據電源輸出電壓與設定值之差,輸出PWM波,直接控制電源的工作.這種方式單片機介入電源工作最多.
第三種方式是最徹底的單片機控制開關電源,但對單片機的要求也最高.要求單片機運算速度快,而且能夠輸出足夠高頻率的PWM波.這樣的單片機顯然價格也高.
DSP類單片機速度夠高,但目前價格也很高,從成本考慮,占電源成本的比例太大,不宜采用.
廉價單片機中,AVR系列最快,具有PWM輸出,可以考慮采用.但AVR單片機的工作頻率仍不夠高,只能是勉強使用.下面我們具體計算一下AVR單片機直接控制開關電源工作可以達到什么水平.
AVR單片機中,時鐘頻率最高為16MHz.如果PWM分辨率為10位,那么PWM波的頻率也就是開關電源的工作頻率為16000000/1024=15625(Hz),開關電源工作在這個頻率下顯然不夠(在音頻范圍內).那么取PWM分辨率為9位,這次開關電源的工作頻率為16000000/512=32768(Hz),在音頻范圍外,可以用,但距離現代開關電源的工作頻率還有一定距離.
不過必須注意,9位分辨率是說功率管導通-關斷這個周期中,可以分成512份,單就導通而言,假定占空比為0.5,則只能分成256份.考慮到脈沖寬度與電源的輸出并非線性關系,需要至少再打個對折,也就是說,電源輸出最多只能控制到1/128,無論負載變化還是網電源電壓變化,控制的程度只能到此為止.
還要注意,上面所述只有一個PWM波,是單端工作.如果要推挽工作(包括半橋),那就需要兩個PWM波,上述控制精度還要減半,只能控制到約1/64.對要求不高的電源例如電池充電,可以滿足使用要求,但對要求輸出精度較高的電源,這就不夠了.
綜上所述,AVR單片機只能很勉強地使用在直接控制PWM的方式中.
但是上列第二種控制方式,即單片機調整DA的輸出,控制PWM芯片,間接控制電源的工作,卻對單片機沒有那么高的要求,51系列單片機已可勝任.而51系列單片機的價格比AVR還是低一些.
網友coocle曾發表他的看法:“單片機控制開關電源的缺點在于動態響應不夠,優點是設計的彈性好,如保護和通訊,我的想法是單片機和pwm芯片相結合,現在的一般單片機的pwm輸出的頻率普遍還不是太高,頻率太高,想要實現單周期控制也很難.所以我覺得單片機可是完成一些彈性的模擬給定,后面還有pwm芯片完成一些工作.”
無獨有偶,在電子電源綜合區中有篇原創文章《DPWM電路的研究》,也是用數字電路輸出PWM波直接控制開關電源工作.他是用CPLD再加單片機進行控制.眾所周知CPLD的價格以及開發難度絕非單片機可比,那么他為什么要這樣做?原因如作者所說,由于單片機的PWM寬度小,導致精度低,不能滿足系統的要求.作者又說,在這些情況下,應用片外PWM電路無疑是一種理想的選擇.他選擇CPLD芯片來實現PWM.我則建議:還是用開關電源原來的控制芯片來實現.不但價格低,而且容易實現單周期電流檢測等保護功能.我們大可不必為數字控制而數字控制.
敬請版主及各位朋友指正.
也談單片機控制的開關電源
全部回復(291)
正序查看
倒序查看
好,我去年曾看過一本雜志,很多專家都在討論,到2004年,幾乎所有的模擬電路都可以用數字電路替代,唯獨有兩個不能,一個就是POWER(電源),另一個就是晶振,所以電源,如果能單獨用數字搞定,是不可能的,單片機在電源中只能起一個符助作用,如,顯示啊,PWM調制,電壓,電流,溫度,環境,檢測,然后控制指示啊,有,指示燈,LCD,LED,控制器,報警,控制馬達轉動啊,等等,如果要用單片機代替這些IC,3843,3842,TL494,是非常不劃算的,現就一個單帶I/O口的單片機也要二塊多,再加一個晶振接近三塊,還有就是單片機,供電電路不能相3843那樣,我們必須給它一個精確的穩定的電源電壓,否則又會導致一些問題,很麻煩!!!單片機如果帶A/D口,PWM口,目前市場最少也要三塊多,加一個晶振就是接近四塊了,單片機控制,有待著的單片機技術的迅速發展!!!!!!!!!!
0
回復
@一個好人
好,我去年曾看過一本雜志,很多專家都在討論,到2004年,幾乎所有的模擬電路都可以用數字電路替代,唯獨有兩個不能,一個就是POWER(電源),另一個就是晶振,所以電源,如果能單獨用數字搞定,是不可能的,單片機在電源中只能起一個符助作用,如,顯示啊,PWM調制,電壓,電流,溫度,環境,檢測,然后控制指示啊,有,指示燈,LCD,LED,控制器,報警,控制馬達轉動啊,等等,如果要用單片機代替這些IC,3843,3842,TL494,是非常不劃算的,現就一個單帶I/O口的單片機也要二塊多,再加一個晶振接近三塊,還有就是單片機,供電電路不能相3843那樣,我們必須給它一個精確的穩定的電源電壓,否則又會導致一些問題,很麻煩!!!單片機如果帶A/D口,PWM口,目前市場最少也要三塊多,加一個晶振就是接近四塊了,單片機控制,有待著的單片機技術的迅速發展!!!!!!!!!!
還是做技術儲備比較好.
帖一篇文章.Putting Profit Into Power Electronic Products with
Digital Control
帖一篇文章.Putting Profit Into Power Electronic Products with
Digital Control
0
回復
@css93
這不用你說我都知道,可是,這個分辨率你要搞清楚是什么的分辨率我們通常重視的是電源輸出的精度問題,就如maychang所言,如果一個電源的精度要求0.1%,那么pwm精度至少要求10bit,可是,這不是一回事,前者是輸出電壓的精度,后者是pwm的精度,兩者能夠這么直接等同運算么?
是這樣:
開關電源控制輸出,方法是控制功率管導通的占空比.現在控制脈沖頻率已定(周期已定),調整占空比就是調整脈沖有效電平的寬度.假定電源由于某種原因,例如負載變化,輸出降低了1%,要調整脈沖寬度使輸出穩定到原值,而脈沖寬度只能分成20份(有的資料上稱粒度),顯然無法調整.脈沖寬度只能增加或減少至少1份.
確實,脈沖寬度一旦增加,電源的輸出也增加,于是調整電路又會將脈沖寬度降回來.等到電源輸出又低了,調整電路還會使脈沖寬度增加,從而輸出可以穩定在某值.但電源的輸出實際上是波動的,波動的頻率取決于調整電路的頻率響應曲線和脈沖寬度的調整粒度.這一波動頻率遠低于開關電源的工作頻率,輸出濾波器很難將其濾除.
極端情況,我們不妨設想只有兩個脈沖寬度,那就是有和沒有(相當于1位).電源是否可以工作?當然可以,只不過輸出必定大跳,但平均值仍是穩定的.其它的電器例如電冰箱,就是這樣工作的.
PWM波的精度低(例如6位),輸出平均值穩定但帶有波動,用在充電器等設備上完全沒有問題,但不能用于要求高的場合,例如給音頻設備供電.
輸出電壓的精度當然與PWM波的精度(粒度)是兩回事,但這兩者有關聯.
開關電源控制輸出,方法是控制功率管導通的占空比.現在控制脈沖頻率已定(周期已定),調整占空比就是調整脈沖有效電平的寬度.假定電源由于某種原因,例如負載變化,輸出降低了1%,要調整脈沖寬度使輸出穩定到原值,而脈沖寬度只能分成20份(有的資料上稱粒度),顯然無法調整.脈沖寬度只能增加或減少至少1份.
確實,脈沖寬度一旦增加,電源的輸出也增加,于是調整電路又會將脈沖寬度降回來.等到電源輸出又低了,調整電路還會使脈沖寬度增加,從而輸出可以穩定在某值.但電源的輸出實際上是波動的,波動的頻率取決于調整電路的頻率響應曲線和脈沖寬度的調整粒度.這一波動頻率遠低于開關電源的工作頻率,輸出濾波器很難將其濾除.
極端情況,我們不妨設想只有兩個脈沖寬度,那就是有和沒有(相當于1位).電源是否可以工作?當然可以,只不過輸出必定大跳,但平均值仍是穩定的.其它的電器例如電冰箱,就是這樣工作的.
PWM波的精度低(例如6位),輸出平均值穩定但帶有波動,用在充電器等設備上完全沒有問題,但不能用于要求高的場合,例如給音頻設備供電.
輸出電壓的精度當然與PWM波的精度(粒度)是兩回事,但這兩者有關聯.
0
回復
@maychang
是這樣:開關電源控制輸出,方法是控制功率管導通的占空比.現在控制脈沖頻率已定(周期已定),調整占空比就是調整脈沖有效電平的寬度.假定電源由于某種原因,例如負載變化,輸出降低了1%,要調整脈沖寬度使輸出穩定到原值,而脈沖寬度只能分成20份(有的資料上稱粒度),顯然無法調整.脈沖寬度只能增加或減少至少1份.確實,脈沖寬度一旦增加,電源的輸出也增加,于是調整電路又會將脈沖寬度降回來.等到電源輸出又低了,調整電路還會使脈沖寬度增加,從而輸出可以穩定在某值.但電源的輸出實際上是波動的,波動的頻率取決于調整電路的頻率響應曲線和脈沖寬度的調整粒度.這一波動頻率遠低于開關電源的工作頻率,輸出濾波器很難將其濾除.極端情況,我們不妨設想只有兩個脈沖寬度,那就是有和沒有(相當于1位).電源是否可以工作?當然可以,只不過輸出必定大跳,但平均值仍是穩定的.其它的電器例如電冰箱,就是這樣工作的.PWM波的精度低(例如6位),輸出平均值穩定但帶有波動,用在充電器等設備上完全沒有問題,但不能用于要求高的場合,例如給音頻設備供電.輸出電壓的精度當然與PWM波的精度(粒度)是兩回事,但這兩者有關聯.
謝謝maychang啦,還有一個問題就是
你所說的粒度到10位甚至12位,那么,所保證的電源精度約為0.1%
請問,怎樣來進行這樣的估算呢,我是說,已經知道了電源的精度,如何
大體上估計一下pwm的粒度呢
你所說的粒度到10位甚至12位,那么,所保證的電源精度約為0.1%
請問,怎樣來進行這樣的估算呢,我是說,已經知道了電源的精度,如何
大體上估計一下pwm的粒度呢
0
回復
@css93
謝謝maychang啦,還有一個問題就是你所說的粒度到10位甚至12位,那么,所保證的電源精度約為0.1%請問,怎樣來進行這樣的估算呢,我是說,已經知道了電源的精度,如何大體上估計一下pwm的粒度呢
由于開關電源脈沖寬度與輸出并非線性關系,而且這個函數我們不知道,所以只能估計.
輸出要穩定到0.1%也就是千分之一,PWM也至少應該能分辨到千分之一,就是10位,此時如前所說的波動如果存在也已經相當小.為了保險起見,分辨率大些更好.如果10位有困難,9位或8位不是不行,但要做好電源輸出波動比較大的準備.例如開關電源輸出到各設備,而各設備有線性穩壓器(例如7805之類),則開關電源輸出波動大些也無妨.
輸出要穩定到0.1%也就是千分之一,PWM也至少應該能分辨到千分之一,就是10位,此時如前所說的波動如果存在也已經相當小.為了保險起見,分辨率大些更好.如果10位有困難,9位或8位不是不行,但要做好電源輸出波動比較大的準備.例如開關電源輸出到各設備,而各設備有線性穩壓器(例如7805之類),則開關電源輸出波動大些也無妨.
0
回復