前言
在電源設計中經常會使用逐波限流保護來保證電流不超過限定的最大值,若在短時內多次觸發逐波限流保護則強制封鎖 PWM 輸出,讓系統進入故障保護狀態,在這個過程中需要對逐波限流觸發次數進行計數,以此來判斷是否進入故障保護,本文針對該功能,基于 STM32G474 高精度定時器,介紹如何實現逐波限流保護以及保護次數計數。
逐波限流原理介紹
所謂逐波限流指在電源工作過程中,對電感電流或是功率管導通電流進行實時監測,一旦超出設定范圍,則在該 PWM 周期內立即關閉相關的 PWM 驅動,直到下個 PWM 周期再自動使能PWM 驅動,若電流信號一直超限,則一直封鎖 PWM,直到電流恢復正常的下一個新的 PWM 周期后,才能重新使能 PWM 輸出。工作過程示意圖如下圖所示,OCP 表示過流保護,高電平表示電流超限。
STM32G474 逐波限流保護的實現
STM32G474 的高精度定時器除了能產生高精度的 PWM 波外,還包含了外部事件管理器,能對多達 10 個外部事件進行處理。可以設置外部事件的觸發源、觸發方式(沿觸發或是電平觸發)、相應方式(同步或是異步)以及事件的濾波方式。外部事件的一個最重要的作用就是用來對輸出的PWM 進行控制,觸發 PWM 的 Set 與 Reset 動作。
在觸發源的選擇上,每個外部事件可以從 4 個源中進行選擇:
? 外部 pin 腳輸入
?內部比較器輸出
? 其他定時器觸發信號(如 TIM1/2/3_TRGO)
對應逐波限流功能,可以選擇外部 pin 腳輸入或是內部比較器輸出,推薦的方式為內部比較器輸出。外部電流采樣信號直接輸入到片上比較器(COMPx_INP),比較器的輸出結果作為外部事件觸發源。
基于以上的介紹,利用 CubeMx 工具進行相應的配置來說明整個功能的實現過程,以高精度定時器中的 Timer A 為例,主要介紹外部事件與逐波限流保護的配置,其他的配置不再贅述。外部事件的配置如下,觸發源為內部比較器 2 的輸出,高電平有效。
為了使用內部比較器,必須對內部對應的比較器進行配置,一般選擇 DAC 的輸出作為比較器的參考,所以還需要對 DAC 進行配置。比較器的配置如下,設置回差,減少比較器輸出抖動。
DAC 的配置如下(如果選擇 VREFINT 或是COMPx_INM 則無需配置 DAC):
PWM 輸出的配置如下,PWM 的 Reset 除了比較事件外,添加外部事件源。
基于以上的配置,在生成的工程代碼中添加必要的外設啟動函數即可,如下:
通過示波器查看波形,黃色表示輸出 PWM 驅動;綠色內部比較器輸出信號,輸出為高時表示限流保護,觸發封波,輸出為低則 PWM 可正常輸出。
逐波限流觸發次數計數的實現
很多應用中不但需要實現逐波限流,還需要對某段時間內觸發逐波限流的次數進行計數,以此來判斷系統是否出現短路或是過載,然后決定系統是否進入永久保護狀態,除非軟件再次使能輸出。
在高精度定時器中,外部事件不但可以用來觸發 PWM 動作,它還可以被定時器內部的捕獲單元捕獲,所以可以通過讀取捕獲標志位來判定外部事件是否發生并進行計數;另外如本文采用了內部比較器的輸出作為外部事件的觸發源,可以通過直接讀取比較器的比較中斷標識或是輸出狀態的方式來判定外部事件是否發生并進行計數。
下面以讀取捕獲標識為例說明如何實現該功能,該方法更加通用。在 CubeMx 中配置高精度定時器的 Capture 功能,如下:
在軟件中添加如下的代碼,假如判斷周期為 1 秒,本文給出偽代碼的形式,具體代碼需根據實際的應用進行修改。
小結
本文對逐波限流的原理進行了簡單介紹,給出了如何利用 STM32G474 系列 MCU 的高精度定時器中的相關功能實現逐波限流以及逐波限流計數的方案。
審核編輯 :李倩
-
mcu
+關注
關注
146文章
17893瀏覽量
361858 -
PWM
+關注
關注
116文章
5437瀏覽量
218498 -
定時器
+關注
關注
23文章
3297瀏覽量
117458
原文標題:工程師筆記|逐波限流保護實現方案
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
有一個關于STM32G474雙BANK的測試問題求解答
求助,關于STM32G474雙BANK的測試問題求解
stm32G474的flash模式如何判定?
stm32g474 hrtim中怎么使用dual channel DAC trigger?
STM32G474 ADC多通道采集結果為同一通道結果是怎么回事?
STM32G474用ymodem傳文件時,傳輸停止了是怎么回事?
STM32G474利用高精度HRTIM怎么捕獲外部波形計算波形頻率?
stm32G474RE cordic外設的1~101的ln運算怎么配置?
STM32G474的DAC4無輸出怎么解決?
STM32G474RCT6 STM32G0B1VET6 微控制器 IC MCU 32BIT FLASH LQFP
基于ST STM32G474的400W Microinverter之數字電源方案

評論