PWM (Pulse Width Modulation)
PWM 頻率公式: (PWM 頻率 = 波形完整週期重複速度)
Fpwm = Fclock / (DIV × PERIOD)
DIV:粗調,分大塊控制 PWM 頻率
PERIOD:細調,精確控制 PWM 頻率與 DUTY 解析度
最常見做法:
先選適合應用的 PWM 頻率 → 透過 DIV 粗調
再用 PERIOD 精調 DUTY 解析度
DIV(分頻器 / Divider / Prescaler)
功能:
把系統時鐘分頻,決定 PWM 計數器的速度。
也就是將原本的數個步數計算為一個步數。
可調性:
大部分 MCU 都提供可調 DIV 的選項。
一般是有限的幾個預設值,例如 DIV = 1, 2, 4, 8, 16, 64, 256 等。
調整效果:
DIV ↑ → 計數器跑慢 → PWM 頻率下降
DIV ↓ → 計數器跑快 → PWM 頻率上升
限制:
不是任意數字,通常是離散選項。
舉例說明:
假設系統時鐘 48 MHz,PWM 計數器, Period = 1000
DIV 計數器時計 完成 1 個 PWM 週期時間 PWM 頻率
1 48 MHz 1000 / 48 MHz ≈ 20.8 μs 48000 Hz
8 6 MHz 1000 / 6 MHz ≈ 166.7 μs 6000 Hz
64 0.75 MHz 1000 / 0.75 MHz ≈ 1.33 ms 750 Hz為什麼單靠 PERIOD 不夠?
計數器的最大值有限制
MCU 計數器位寬有限(8-bit、16-bit、32-bit)
例如 16-bit 計數器最大值 = 65535
如果希望 PWM 頻率非常低(週期很長),可能超過 16-bit 計數器最大值 → 無法用 PERIOD 調整
這時就需要 DIV,把計數器時計降低,才能達到低頻 PWM
精細調整占空比
高 DIV → 計數器跑慢 → 同一週期值(PERIOD)對應的占空比變慢
方便在高頻系統中保留 DUTY 解析度
適應不同頻率需求
有些應用需要高頻(LED 調光、馬達控制),有些需要低頻(伺服控制、蜂鳴器)
DIV 提供粗調頻率的手段,PERIOD 提供細調頻率和占空比解析度
PERIOD(計數器週期 / ARR / TOP)
功能:
決定計數器完成一個 PWM 週期所需的步數(已經經過任何分頻後的時鐘)。
可調性:
幾乎所有 MCU 都允許設置任意週期值(受寄存器位寬限制,例如 8、16 或 32 bit)。
調整效果:
PERIOD ↑ → PWM 週期變長 → PWM 頻率下降
PERIOD ↓ → PWM 週期變短 → PWM 頻率上升
優點:
可以精細調整 PWM 頻率,同時影響 DUTY 解析度。
PERIOD 大 → 步數多 → DUTY 可以更細 → 解析度高
PERIOD 小 → 步數少 → DUTY 解析度低
舉例說明:
假設:
計數器週期(Period) = 100
PWM DUTY 設為 25
運作過程:
計數器值 PWM 輸出
0–24 高電平
25–99 低電平
計數器總步數 = 100
占空比步進 = 1 / 100 → 1%
計數器每加 1 → 占空比改變 1%
實例:
(FSCPxDIV)
DIVSEL[7]
FAN_OUT_DIVISOR[6:0]
fFANOUT = 16MHz / [(FAN_OUT_DIVISOR + 1) x 128 x (STEP+1) x 256<DIVSEL>] , where STEP is set at Register FSCPxCFG Bit2 or Bit6
也就是說 DIV 的值可以是 (1 ~ 128) 或 (1 ~ 128) x 256。
PERIOD 可以是 128 或是 256。
DUTY 的值,依 PERIOD 的值,可以是 0 ~ 128 或是 0 ~ 255。
(FSCPxCFG)
Bit2: PWM(2x) STEP (PWM resolution)
= 0, PWM resolution is 1/128
= 1, PWM resolution is 1/256
Bit6: PWM(2x+1) STEP (PWM resolution)
= 0, PWM resolution is 1/128
= 1, PWM resolution is 1/256
(FSCPxDUTY)
[7:0]
Fan speed control port duty
If STEP = 0 (set at Register FSCPxCFG Bit2 or Bit6), the resolution of duty-cycle is 1/128.
(i.e. PWM_DUTY[6:0] is valid for duty-cycle control.)
If STEP = 1 (set at Register FSCPxCFG Bit2 or Bit6), the resolution of duty-cycle is 1/256.
(i.e. PWM_DUTY[7:0] is valid for duty-cycle control.)
PWM 風扇
通常有 4 根線路,各自功能如下:
線色 功能 說明
黑色 (GND) 地線 風扇供電接地
紅色 (VCC) 電源 一般為 12V(或 5V)固定電壓
黃色 (TACH / RPM) 轉速回報 風扇每轉一圈輸出脈衝,讓主機或 H/W Monitor 讀取轉速
藍色 (PWM) PWM 控制 透過 PWM 信號控制風扇轉速Reference
ChatGPT
文字內容 或 影像內容 部份參考、引用自網路,如有侵權,請告知。
