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 为低电平时,电机无供电,停止转动。

相关推荐
帅次8 小时前
系统分析师-信息物理系统分析与设计
stm32·单片机·嵌入式硬件·mcu·物联网·iot·rtdbs
澜莲Alice9 小时前
STM32 MPLAB X IDE 软件安装-玩转单片机-英文版沉浸式安装
stm32·单片机·嵌入式硬件
良许Linux9 小时前
IIC总线的硬件部分的两个关键点:开漏输出+上拉电阻
单片机·嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘9 小时前
单片机基础知识 -- ADC分辨率
单片机·嵌入式硬件
Q_219327645510 小时前
车灯控制与报警系统设计
人工智能·嵌入式硬件·无人机
雾削木10 小时前
树莓派部署 HomeAssistant 教程
stm32·单片机·嵌入式硬件
Q_219327645510 小时前
基于单片机的破壁机自动控制系统设计
单片机·嵌入式硬件
我是一棵无人问荆的小草10 小时前
stm32f103芯片多个IO配置成外部中断
stm32·单片机·嵌入式硬件
wjykp11 小时前
ESP32xxx烧录
stm32·单片机·嵌入式硬件
早起huo杯黑咖啡12 小时前
【NOR Flash】关于芯片的高耐久性分区的编程/擦除周期和最小保留时间的数据
单片机·嵌入式硬件