PWM控制电机转速的原理及相关寄存器值计算

使用定时器生成PWM方波控制电机转速的核心是通过调节占空比(高电平时间与周期的比值)来改变电机的平均电压,从而实现转速控制。以下是具体实现方法和参数(ARR、PSC、CCR)的计算流程:

名词:

频率:1秒多少次,Hz

周期:1次多少秒,s


1. PWM控制电机转速的原理

  • 占空比越大 → 平均电压越高 → 电机转速越快。

  • PWM频率需根据电机特性选择:

    • 频率过低:电机会有振动或噪声。

    • 频率过高:开关损耗增加(但电机响应更平滑)。

    • 常见范围:1kHz ~ 20kHz(根据电机类型调整)。


2. 定时器关键参数

在STM32等MCU中,定时器通过以下寄存器生成PWM:

  • ARR(Auto-Reload Register):(自动重装载寄存器)决定PWM的周期(最大值)。

  • PSC(Prescaler):(预分频器)分频定时器时钟,调整计数速度。

  • CCR(Capture/Compare Register):决定占空比(高电平时间),捕获/比较寄存器)则设置占空比,因为当计数器达到CCR值时,输出电平会翻转,从而改变高电平的时间。


3. 计算公式

a. PWM频率公式
  • fTIM​:定时器时钟频率(STM32通常为72MHz、48MHz等)。

  • PSC:预分频值(0~65535)。

  • ARR:自动重装载值(0~65535)。

b. 占空比公式
  • CCRCCR:比较值(0~ARR)。

4. 参数计算步骤

步骤1:确定PWM频率

根据电机特性选择目标频率(如10kHz):

步骤2:计算PSC和ARR

假设定时器时钟 fTIM=72MHz,目标频率为10kHz:

  • 分配策略

    • 先选择 PSCPSC 值以限制ARR范围(通常 ARR<65535ARR<65535)。

    • 例如:设 PSC=71PSC=71,则:

步骤3:计算CCR

若需占空比为30%:


5. 实际配置示例

假设使用STM32定时器(72MHz时钟),目标为10kHz PWM,占空比30%:

cs 复制代码
// 计算参数
PSC = 71;    // 预分频值
ARR = 99;    // 自动重装载值
CCR = 30;    // 比较值

// 初始化定时器
TIM_Handle.Instance->PSC = PSC;     // 设置预分频
TIM_Handle.Instance->ARR = ARR;     // 设置周期
TIM_Handle.Instance->CCR1 = CCR;    // 设置占空比(通道1)

6. 注意事项

  1. 分辨率 :占空比最小变化量为 ​,ARR越大分辨率越高,但频率会降低。

  2. 频率限制 :确保 ​​。

  3. 动态调整:运行时修改CCR可实时改变占空比,调整电机转速。


7. 总结

  • ARRPSC 共同决定PWM频率。

  • CCR 直接控制占空比。

  • 调整流程:选频率 → 算PSC/ARR → 设CCR → 动态调节。

通过合理配置这三个参数,即可精确控制电机的转速和动态响应。

相关推荐
欢乐熊嵌入式编程1 小时前
智能手表项目的《项目背景与目标说明书》样本文档
嵌入式硬件·目标跟踪·规格说明书·智能手表
海尔辛2 小时前
学习黑客BitLocker与TPM详解
stm32·单片机·学习
上海合宙LuatOS3 小时前
全栈工程师实战手册:LuatOS日志系统开发指南!
java·开发语言·单片机·嵌入式硬件·物联网·php·硬件工程
公子无缘3 小时前
【嵌入式】记一次解决VScode+PlatformIO安装卡死的经历
vscode·stm32·单片机·mcu·platformio
昊昊昊昊昊明3 小时前
十天学会嵌入式技术之51单片机—day-9
单片机·嵌入式硬件·51单片机
欢乐熊嵌入式编程4 小时前
智能手表蓝牙 GATT 通讯协议文档
嵌入式硬件·目标跟踪·规格说明书·智能手表
whaosoft-1434 小时前
51c嵌入式~电路~合集27
嵌入式硬件
Camellia03115 小时前
嵌入式学习--江协51单片机day5
嵌入式硬件·学习·51单片机
7yewh5 小时前
FPGA前瞻篇-计数器设计与实现实例
arm开发·驱动开发·嵌入式硬件·fpga开发·硬件架构·硬件工程·精益工程
小石(努力版)8 小时前
嵌入式STM32学习——外部中断EXTI与NVIC的基础练习⭐
stm32·单片机·学习