CubeIDE HRTIM Burst Mode for LL Library

Hsueh-Ju Wu 吳學儒
STM32CubeIDE
Published in
2 min readApr 7, 2021

教學

如何使用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

HRTIM — Timer C Timing Unit

Output 1 Configuration
— Idle Mode
—Idle Level

HRTIM — Timer C Output 1 Configuration

Burst Mode Configuration
— Mode
— Clock Source
— Prescaler
— Preload Enable
— Burst Mode Idle Duration
— Burst Mode Period

HTRIM — Burst Mode Configuration

閒置(IDLE)時間計算

RM3046 參考手冊p. 682 Burst Mode 操作示意圖
Timer 除頻器設定

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波形

PWM未開啟Burst Mode

五秒後,開啟Burst Mode的PWM波形

PWM開啟Burst Mode

可看到閒置時間與我們計算出的相同
(有一部分是從PWM的LOW開始量測,所以看起來有沒切齊的情況)

附錄

Continuous Mode 與 Single-Shot Mode差別(參考RM0364 參考手冊p.637)

圖標說明

Continuous Mode:
計數器數到Period會自動重置,
數的過程中也會聽從外部訊號觸發重置

Continuous Mode

Single-Shot Mode (non-retriggerable):
計數器數到Period "不會" 自動重置(只能透過外部訊號重置),
數的過程中會"忽略"外部觸發訊號

Single-Shot Mode (non-retriggerable)

Single-Shot Mode (retriggerable):
計數器數到Period “不會” 自動重置(只能透過外部訊號重置),
數的過程中會”會聽從”外部訊號觸發重置

Single-Shot Mode (retriggerable)

--

--