CubeIDE HRTIM Burst Mode for LL Library
教學
如何使用CubeIDE 設定 HTRIM(高精度計時器) 的 Burst Mode 功能
使用時機
在電源領域中,為改善輕載時的效率,便會使用此方法來減少開關切換的次數,降低切換損失,而缺點是輸出漣波(ripple)會變大,需要做好取捨。
環境
本文使用
STM32CubeIDE Version: 1.6.0
MCU:STM32F334
Low-Layer (LL) Library
設定
筆者此篇PWM設定
Frequency: 130kHz
Output Channel: HRTIM_CHC1(PB12)
Duty Cycle: 50%
Timer C 必改設定如下圖有,其餘設定按照自己需求設定即可
Timing Unit
— Preload Enable
— Repetition Update
— Burst Mode
Output 1 Configuration
— Idle Mode
—Idle Level
Burst Mode Configuration
— Mode
— Clock Source
— Prescaler
— Preload Enable
— Burst Mode Idle Duration
— Burst Mode Period
閒置(IDLE)時間計算
f_HRTIM=144 (MHz)
f_EEVS = f_HRTIM / 32 = 144 / 32 (MHz)
T_EEVS = 1 / f_EEVS = 0.222 (us)
T_Burst = T_EEVS * Burst Mode Period = 444 (us)
T_IDLE = T_EEVS * Burst Mode Idle Duration = 222 (us)
程式碼
在main.c中新增以下
程式流程
啟用HRTIM TIMC Counter 與 Output
等待五秒後
進入Burst Mode
放置於/* Initialize all configured peripherals */之後,/* Infinite loop */之前
結果
未開啟Burst Mode的PWM波形
五秒後,開啟Burst Mode的PWM波形
可看到閒置時間與我們計算出的相同
(有一部分是從PWM的LOW開始量測,所以看起來有沒切齊的情況)
附錄
Continuous Mode 與 Single-Shot Mode差別(參考RM0364 參考手冊p.637)
Continuous Mode:
計數器數到Period會自動重置,
數的過程中也會聽從外部訊號觸發重置
Single-Shot Mode (non-retriggerable):
計數器數到Period "不會" 自動重置(只能透過外部訊號重置),
數的過程中會"忽略"外部觸發訊號
Single-Shot Mode (retriggerable):
計數器數到Period “不會” 自動重置(只能透過外部訊號重置),
數的過程中會”會聽從”外部訊號觸發重置