項目實現功能
由TFT LCD液晶屏幕顯示的升壓斬波直流電源轉換器BOOST DC-DC電源電路,并完成了鋰電池充放電電路的設計和仿真分析。先來看看項目效果演示:
,時長02:49項目實現的功能:
1. 全數字方案;
2. 電路輸入15~26V,輸出15~35V,最大電流5A;
3. 單片機PWM控制BOOST電路輸出;
5. 狀態機控制系統的輸出模式;
6. RTOS協調整個系統的不同任務;
7.按鍵交互設置輸出模式及參數。
硬件框架及設計
先來看看系統的硬件框圖,如下:
整個系統分為四個部分進行設計:
1)在BOOST電路的功率計設計方面,采用了集成度更高,更加小體積的電感,電容和開啟內阻極小的功率增強型金屬氧化物場效應管MOSFET。2)在BOOST電路的控制系統方面,采用了小封裝體積的STM32單片機微處理器作為中心處理器件,并采用了霍爾傳感器作為反饋單元。3)在顯示屏的設計方面,采用了2.2寸的TFT LCD的RGB全彩屏幕進行顯示,并采用SPI通信協議進行控制和寫入。4)在人機交互方面,采用了5個功能分明的按鍵,保證了系統的易用性,同時也沒有對系統的交互性進行損失。
最終我們得到了一個電路上效率較高,顯示性能和交互性也較強的BOOST DC-DC電源轉換電路。
? BOOST功率級設計BOOST電路是一種升壓型DC-DC電源變換器,通過PWM信號控制電子開關,促使電感電容不斷傳遞能量從而實現輸出升壓,它的基本拓撲結構如下
通過脈寬調制信號PWM對三極管的基極進行控制,使三極管快速的通斷。
在三極管導通時,相當于輸入電壓直接加在電感兩側,電感電流呈線性增加,儲存能量,同時二極管反向偏置,防止電容電壓放電;當三極管斷開時,由于電感的電流不會突變,則電感的電流會流經二極管到電容及負載上,此時儲存在電感內的能量被釋放,使得電容兩端電壓高于輸入電壓,以此實現升壓的過程。更改脈寬調制信號PWM的占空比,就改變了電感儲存能量的時間長短,時間越長,電感的能量就越多,從而關斷期間釋放的能量也就越大,輸出電壓也就越大。
通過對原理的研究,我們可以得到下面兩個公式
根據工作條件:輸入電壓17V,輸出電壓26V,工作頻率114KHz,負載50Ω,最大允許紋波50mV。計算電感及電容參數:
L1=32.45uH,取L1=33uH
C》31.57uF,取C=50uF
在實際情況中,電路的負載變化時,如果保持PWM占空比不變,則輸出電壓會有所變化。為了保持輸出電壓穩定,我們需要反饋調節機制:PID算法,反映了控制器輸出量和誤差之間的閉環關系。
將計算好的L1和C參數代入SIMULINK仿真,并設置PID反饋環:設置KP=10,KI=1,KD=0
運行仿真,可以得到較為穩定的電源輸出:
為了實現電路的反饋,需要電壓電流采樣。電壓采樣使用分壓電阻,電流采樣使用霍爾傳感器ACS712。
由于單片機PWM輸出的驅動能力有限,故要想控制BOOST電路,需要MOSFET驅動器的輔助,這里使用UCC27511。
系統中其他器件的選型為:
MCU采用STM32F103C8T6;
MOSFET驅動器采用UCC27511;
TFT-LCD采用1.44寸彩屏;
霍爾電流計采用ACS712-20A;
輔助電源采用K7812-2000;
MOSFET采用CSD18540KTT;
電感采用HSC1770封裝的功率電感;
肖特基二極管采用CLS03;
輸入輸出電容采用2220封裝的鉭電容;
? 單片機控制級設計
單片機控制級負責PWM信號輸出,電壓電流采樣以及屏幕控制,需要在單片機最小系統的基礎上引出PWM輸出,ADC采樣和SPI通信引腳。
? 按鍵交互設計
五個按鍵功能分別為:
MENU:停止輸出,模式選擇
UP:選擇恒壓模式,增加設定值
DOWN:選擇恒流模式,減少設定值
OK:確認該位設定值,切換下一位
START:開啟電源輸出按鍵采用下降沿觸發方式輸入單片機,使用電容進行硬件濾波,減小誤觸概率。
系統軟件設計
本系統的軟件基本架構如下圖:
然后在STM32CubeMX內,對該框架進行一個使能和初始化。外設設置說明:ADC雙路采樣使用DMA循環模式;5個按鍵采用下降沿觸發;SPI通信協議由于使用GPIO軟件模擬,故設置成推挽輸出即可;PWM輸出采用高級定時器PWM模式;使用ST LINK V2對代碼進行燒錄;
高速時鐘源采用外部8MHz晶體振蕩器,并將APB1總線倍頻到64MHz。
? TFT屏幕通信設計
TFT LCD屏幕的底層我們采用GPIO軟件模擬SPI通信協議,單向只輸出;
從最高位開始,依次移位對要發送的8位數據和指令進行發送。
引腳定義:
PB10:數據/命令切換信號
PB13:時鐘信號
PB15:串行數據發送
? RTOS任務設計
本設計由三個RTOS任務構成,分別是:
void State_change_function(void const * argument);//狀態切換任務void tft_show_function(void const * argument);//屏幕內容刷新任務void drive_sample_function(void const * argument);//PWM輸出及采樣反饋PID運算任務
其中:
狀態切換只有在按鍵按下之后才會觸發;
屏幕內容刷新只有在內容需要更改的時候才會觸發,防止系統資源過度占用,并且在實時顯示輸出量時更新頻率為20Hz;
PID運算只有在start之后才會開始進行。
? 狀態機設計
假設要操控某一系統,通過按鍵設定功能,這時我們可以采用有限狀態模型,系統擁有有限的一些狀態,而我們只需指定有限的狀態切換條件即可,這就是狀態機。
通過上述關系圖的分析,我們可以將有限狀態模型應用到本設計的功能設定和運作當中,使得系統運行邏輯性更強,效率更高。
所有代碼都嚴格寫在了USER CODE范圍內,可以直接用cube更改外設。
-
鋰電池
+關注
關注
260文章
8143瀏覽量
170729 -
單片機
+關注
關注
6039文章
44583瀏覽量
636526 -
PWM
+關注
關注
114文章
5193瀏覽量
214251 -
脈寬調制
+關注
關注
3文章
219瀏覽量
38347
發布評論請先 登錄
相關推薦
評論