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信号的频率和占空比,满足不同的应用需求。

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

相关推荐
点灯小铭13 小时前
基于单片机的程控放大器设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
范纹杉想快点毕业13 小时前
《嵌入式硬件从入门到精通:电源 / 模电 / 数电 / 通信核心全解析》
java·开发语言·数据库·单片机·嵌入式硬件
打酱油程序员13 小时前
舵机工作原理与控制详解
单片机·嵌入式硬件
Wave84514 小时前
FreeRTOS的常用函数和剪切
单片机·嵌入式硬件
dlwlrma_51615 小时前
STM32使用HAL库通过中断实现非阻塞I2C通讯 解决实际发送错误数据的问题 HAL_I2C_Mem_Write_IT
stm32
C.咖.15 小时前
STM32 ——嵌入式 存储系统、时钟系统(F407 系列)
stm32·单片机·嵌入式硬件
llilian_1615 小时前
晶振有什么好用的检测仪器?石英晶振测试仪 晶体测试仪
服务器·单片机·嵌入式硬件·其他
FreakStudio16 小时前
串口协议解析实战:以 R60ABD1 雷达为例,详解 MicroPython 驱动中数据与业务逻辑的分离设计
python·单片机·pycharm·嵌入式·面向对象·硬件·电子diy
brave and determined16 小时前
可编程逻辑器件学习(day24):异构计算:突破算力瓶颈的未来之路
人工智能·嵌入式硬件·深度学习·学习·算法·fpga·asic
ACP广源盛1392462567319 小时前
GSV2201S(1201S)@ACP#支持嵌入式 MCU 的 DisplayPort 1.4 到 HDMI 2.0 转换器
单片机·嵌入式硬件·电脑·音视频