STM32——TIM输出比较、PWM(十)

一、输出比较及PWM简介

输出比较

•OC(Output Compare)输出比较
•输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形
•每个高级定时器和通用定时器都拥有4个输出比较通道
•高级定时器的前3个通道额外拥有死区生成和互补输出的功能

PWM

•PWM(Pulse Width Modulation)脉冲宽度调制
•在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域
•PWM参数:

频率 = 1 / TS 占空比 = TON / TS 分辨率 = 占空比变化步距

二、PWM的基本结构

时基单元(含 CNT、ARR)------ 提供周期性计数时间轴

时基单元的核心是计数器CNT+ 自动重装值ARR,为 PWM 生成提供固定的周期节奏CNT从 0 开始,随定时器时钟自动向上累加,数到ARR后立即归 0,循环执行0→ARR→0 的计数过程;这一完整计数循环,就是一个 PWM 周期,是后续电平切换的时间基础。

比较器 ------ 执行CNT 与 CCR 的实时比对

比较寄存器CCR预存设定的固定阈值,硬件比较器以定时器时钟为节拍,在 CNT 计数的每一个时刻 ,将实时变化的 CNT 值固定的 CCR 值 做持续、自动的大小比较,实时输出CNT<CCRCNT≥CCR的比对结果,为电平切换提供判定依据。

执行电平切换规则(PWM 生成的核心逻辑)

向上计数为核心规则(图中核心),根据比较器的比对结果,直接控制输出电平的切换:

  • 当比对结果为CNT<CCR 时,输出有效电平
  • 当比对结果为CNT≥CCR 时,输出无效电平;随 CNT 完成 0→ARR→0 的循环,电平按此规则重复切换,形成连续的 PWM 波形。

极性选择 ------反转 / 保持原始 REF 电平

极性选择是原始 REF 波形 做最后一次电平逻辑处理,是可配置的可选环节,核心作用为灵活调整输出电平的有效 / 无效对应关系

  • 选择不反相:最终输出的 PWM 电平与 REF 原始波形完全一致,即 REF 的有效电平 = 最终输出有效电平,REF 的无效电平 = 最终输出无效电平;
  • 选择反相:最终输出的 PWM 电平与 REF 原始波形完全相反,即 REF 的有效电平 = 最终输出无效电平,REF 的无效电平 = 最终输出有效电平。

三、输出比较

输出比较通道(通用)

捕获和比较寄存器是同一个

  1. 输出模式控制器 这是核心决策单元,它接收计数器(CNT)和比较寄存器(CCR1)的比较结果(CNT > CCR1CNT = CCR1),并根据 TIMx_CCMR1 寄存器里的 OC1M[2:0] 位配置,生成原始参考信号 OC1REF。这个信号决定了 PWM 的基础波形。

  2. 信号极性与选择

    • OC1REF 先经过一个反相器,再进入一个由 CC1PTIMx_CCER寄存器位)控制的 2 选 1 多路选择器。
    • CC1P=0 时直接输出 OC1REFCC1P=1 时输出反相后的信号,以此来控制 PWM 输出的极性。
  3. 输出使能电路 最终信号会经过由 CC1ETIMx_CCER寄存器位)控制的输出使能电路。只有当 CC1E=1 时,信号才能通过并最终从 OC1 引脚输出;CC1E=0 时,通道输出会被关闭。OC1 经过复用功能(AF) 路由后,到达具体的 GPIO 口。

  4. 主模式控制器接口 OC1REF 还会被送到主模式控制器,这可以用来触发其他定时器或外设,实现定时器同步等更复杂的功能。

四、舵机、直流电机、驱动芯片

舵机

•舵机是一种根据输入PWM信号占空比来控制输出角度的装置
•输入PWM信号要求:周期为20ms,高电平宽度为0.5ms~2.5ms

硬件电路

舵机内部能识别PWM的占空比,只需要输入相应的PWM就可以让它旋转指定角度。

直流电机及驱动

•直流电机是一种将电能转换为机械能的装置,有两个电极,当电极正接时,电机正转,当电极反接时,电机反转
•直流电机属于大功率器件,GPIO口无法直接驱动,需要配合电机驱动电路来操作
•TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速和方向

  1. 方向控制(AIN1/AIN2 的电平组合)
  • 正转:AIN1=H,AIN2=L → AO1 输出高电平,AO2 输出低电平,电机两端形成正向电压差。

  • 反转:AIN1=L,AIN2=H → AO1 输出低电平,AO2 输出高电平,电机两端形成反向电压差。

  • 制动:AIN1=H,AIN2=H 或 AIN1=L,AIN2=L → AO1 和 AO2 输出相同电平,电机两端无电压差,实现快速刹车。

  • 停止:AIN1=L,AIN2=L 且 PWM=L → 电机无供电,自然停转。

  1. 速度控制(PWMA 的 PWM 占空比)
  • PWM 的占空比越高,电机两端的平均电压越高,转速越快;

  • 占空比越低,平均电压越低,转速越慢;

  • 当 PWM 为低电平时,电机无供电,停止转动。

相关推荐
zlinear数据采集卡2 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
ACP广源盛139246256732 小时前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
Rocktech_ruixun4 小时前
机器人端侧大模型部署对主板有哪些要求?瑞迅主控板分级方案对比
人工智能·嵌入式硬件·机器人
Lzh编程小栈5 小时前
【嵌入式底层】SPI超透彻详解:通信原理、四线结构、四种模式、寄存器底层 + 面试全集
c语言·stm32·单片机·面试·职场和发展
Rocktech_ruixun5 小时前
机器人数据采集能力取决于什么?瑞迅科技RK3588/3576核心板方案深度解析
人工智能·嵌入式硬件·机器人
水果里面有苹果5 小时前
28-DRV8825PWPR步进电机驱动器
单片机
恒锐丰科技韩生6 小时前
率能 SS6625E|3.0~20V 单通道 H 桥直流电机驱动 SOP8 电子锁玩具机器人分享
嵌入式硬件·硬件工程
zlinear数据采集卡6 小时前
D223 ADC数据处理流水线:从原始采样值到工程单位的完整转换链
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
Dr.kangder7 小时前
嵌入式面试总结(十八)——JTAG调试
嵌入式硬件·面试·职场和发展·架构·嵌入式
恒锐丰科技韩生8 小时前
率能 SS6226|2.4~7.2V 低压双通道双 H 桥电机驱动 SOP16 玩具小家电专用芯片
嵌入式硬件·硬件工程