STM32 : PWM 基本结构

这张图展示了PWM(脉冲宽度调制)的基本结构和工作流程。PWM是一种用于控制功率转换器输出电压的技术,通过调整信号的占空比来实现对负载的精确控制。以下是详细讲解:

PWM 基本结构

1. 时基单元
  • ARR (Auto-reload register): 自动重装载寄存器,用于设置计数器的最大值。
  • PSC (Prescaler): 预分频器,用于设置计数器的时钟频率。
  • CNT (Counter): 计数器,根据预分频器的时钟进行计数。
2. 输出比较单元
  • CCR (Capture/Compare Register): 捕获/比较寄存器,用于存储比较值。
  • 运行控制: 控制PWM的启动和停止。
3. 极性选择和输出使能
  • REF: 参考信号,根据比较结果产生。
  • 极性选择: 确定输出信号的极性(高电平有效或低电平有效)。
  • 输出使能: 控制GPIO引脚是否输出信号。

工作流程

  1. 初始化

    • 设置ARR(自动重装载寄存器)的值,确定计数器的最大值。
    • 设置PSC(预分频器)的值,确定计数器的时钟频率。
    • 设置CCR(捕获/比较寄存器)的值,确定比较值。
  2. 计数器操作

    • 计数器CNT从0开始递增,直到达到ARR设定的最大值。
    • 当CNT达到ARR的最大值时,计数器清零并重新开始计数。
  3. 比较操作

    • 在每个计数周期中,将CNT的值与CCR的值进行比较。
    • 如果CNT < CCR,则REF置为有效电平(例如高电平)。
    • 如果CNT ≥ CCR,则REF置为无效电平(例如低电平)。
  4. 输出信号

    • 根据REF的值和极性选择,生成最终的PWM信号。
    • 通过GPIO引脚输出PWM信号。

图解说明

  • 蓝色斜线: 表示计数器CNT的值随时间增加。
  • 红色水平线: 表示CCR的值,即比较值。
  • 绿色矩形脉冲: 表示输出的PWM信号,当CNT < CCR时,输出高电平;当CNT ≥ CCR时,输出低电平。

示例配置

假设:

  • ARR = 99:计数器的最大值为99。
  • PSC = 1:预分频器不进行分频。
  • CCR = 30:比较值为30。
工作过程
  1. 计数器从0开始递增

    • 当CNT = 0到29时,CNT < CCR,REF输出高电平。
    • 当CNT = 30到99时,CNT ≥ CCR,REF输出低电平。
  2. 计数器到达最大值后清零

    • 当CNT达到99时,计数器清零,重新开始计数。
  3. 重复上述过程

    • 每个周期内,输出一个高电平持续30个计数周期,低电平持续69个计数周期。

总结

PWM通过调整CCR的值来改变输出信号的占空比,从而实现对负载的精确控制。通过合理配置ARR、PSC和CCR,可以灵活地调整PWM信号的频率和占空比,满足不同的应用需求。

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| |--------------------------------------------------------------------------------------------------------------------------------------------------------| | | 感謝支持喔 |

相关推荐
-Springer-4 小时前
STM32 学习 —— 个人学习笔记5(EXTI 外部中断 & 对射式红外传感器及旋转编码器计数)
笔记·stm32·学习
LS_learner4 小时前
树莓派(ARM64 架构)Ubuntu 24.04 (Noble) 系统 `apt update` 报错解决方案
嵌入式硬件
来自晴朗的明天5 小时前
16、电压跟随器(缓冲器)电路
单片机·嵌入式硬件·硬件工程
钰珠AIOT5 小时前
在同一块电路板上同时存在 0805 0603 不同的封装有什么利弊?
嵌入式硬件
代码游侠5 小时前
复习——Linux设备驱动开发笔记
linux·arm开发·驱动开发·笔记·嵌入式硬件·架构
代码游侠16 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
xuxg200518 小时前
4G 模组 AT 命令解析框架课程正式发布
stm32·嵌入式·at命令解析框架
CODECOLLECT20 小时前
京元 I62D Windows PDA 技术拆解:Windows 10 IoT 兼容 + 硬解码模块,如何降低工业软件迁移成本?
stm32·单片机·嵌入式硬件
BackCatK Chen20 小时前
STM32+FreeRTOS:嵌入式开发的黄金搭档,未来十年就靠它了!
stm32·单片机·嵌入式硬件·freertos·低功耗·rtdbs·工业控制