PWM定时器配置计算器
从时钟和预分频器·计数器值计算和反算PWM频率·占空比·分辨率与寄存器设置值(PSC/ARR/CCR)
使用方法
- 选择MCU预设(STM32 / AVR / PIC / 自定义)
- 选择计算方向(反算 / 正向)
- 输入定时器时钟(例: 72M)。常用时钟也可从按钮选择
- 反算时输入目标PWM频率和占空比,最优的 PSC / ARR 候选按分辨率从高到低显示
- 正向时输入预分频器和周期寄存器,显示实际频率·周期·分辨率·比较寄存器值
适用场景
- 想知道对目标PWM频率,分辨率(占空比步数)最大的 PSC / ARR
- 想从已设置的 PSC / ARR 确认实际PWM频率·周期·分辨率
- 想在伺服或风扇控制中求特定占空比对应的 CCR / OCR 值
- 想比较 STM32 / AVR / PIC 中相同目标频率的寄存器设置
常见问题
PSC 和 ARR 应该怎么决定?怎样最大化分辨率? ▼
PWM频率由 f_pwm = 时钟 ÷ (E × 有效预分频器 × 周期计数) 决定。相同频率下,预分频器越小·周期计数(ARR+1)越大,占空比的步数(分辨率)越多。本工具的反算在满足目标频率的前提下,在最上行提示分辨率最大的组合。
分辨率比特数是什么?与占空比步进的关系? ▼
分辨率比特数是 log2(占空比总步数)。步数就是计数周期本身,STM32/AVR 为 ARR+1(或 TOP+1),PIC 受指令时钟 Fosc/4 的影响为 4×(PR2+1)。例如 ARR=3599 则 3600步≈11.81比特。比特数越大,可以越精细地设置占空比。
为什么 STM32 和 AVR / PIC 中 +1 和 ×4 不同? ▼
STM32 的 PSC·ARR 寄存器实际分周为「寄存器值+1」(PSC+1·ARR+1)。AVR 的预分频器是 {1,8,64,256,1024} 的离散选择,TOP+1 为周期。PIC 的PWM以指令时钟 Fosc/4 为基准,因此频率公式中有 ×4,占空比分辨率也是 4×(PR2+1)(最多10比特)。本工具通过预设的参数(E·offset·宽度)来消除这些差异。