STM32 定时器输出比较深度解析:从原理到电机控制应用 (详解)
文章目录
- 定时器输出比较
- 定时器通道结构
- 输出比较通道(高级)
- PWM 信号原理
- 输出比较 8 种工作模式
- 互补输出概念
- 极性选择内容
- PWM硬件部分
- 舵机
- 直流电机及驱动简介
定时器输出比较
定时器通道结构
-
通道组成:定时器有四个通道,以通道一为例,中间是 CCR x 寄存器(x 对应通道编号),左边是输入捕获,右边是输出比较。
-
输入捕获功能:用于测量外部输入信号的时间参数,如周期、占空比等。
-
输出比较功能:通过定时器产生精确定时的方波信号,经引脚输出,可驱动外部设备。
输出比较通道(高级)
左面为CNT计数器 和 CCR1输出捕获比较寄存器
- 高级定时器比较电路
- 电路理解方式:将左面部分去掉后与通用定时器电路一样,右面电路用途需结合外部电路理解。
- 外部推挽电路:通常接大功率开关管(MOS 管)组成推挽电路,上管导通下管断开输出高电平,反之输出低电平,上下管都导通会短路,都断开输出高阻态。
- 死区生成与互补输出:OC1 和 OC1N 是互补输出端口,死区生成电路可避免上下管同时导通,防止功率损耗和器件发热。
PWM 信号原理
-
PWM 概念:PWM 即脉宽调制信号,由 pulse(脉冲)、width(宽度)、modulation(调制)英文缩写组成,周期恒定,可调整占空比。
-
占空比定义:一个周期里高电压占整个周期的比例,用高电压时间 TH 除以整个周期时间 t 得到,可等效调节输出电压幅度。
-
PWM 波形介绍
- 定义:英文全称 Pulse width modulation,即脉冲宽度调制,是数字输出信号,由高低电平组成。
- 原理:在惯性系统中,通过调制脉冲宽度等效获得模拟产量,如控制 LED 亮度和电机调速,利用点亮熄灭频率和时间比例实现调控。
- 参数:频率等于 ts 分之一,PWM 频率越快等效模拟信号越平稳但性能开销越大,一般在几千到几十千赫兹;占空比等于 ton 比上 TS,决定等效模拟电压大小;分辨率等于占空比变化步距,由实际项目需求决定。
- 产生 PWM 信号过程:启动计时单元,计数器 CNT 每来一个脉冲值增加一,计数到与自动重装计算器 ARR 值相等时溢出并重新计数。输出比较模块对比计数器 CNT 值和 CCR 寄存器值,当 CNT 值小于 CCR 值时输出高电压,大于时输出低电压,由此产生 PWM 信号。其周期由 ARR 寄存器值决定,高电压时间由 CCR 值决定,改变 CCR 值可调整占空比。
输出比较 8 种工作模式
- 模式分类:包括 frozen(冻结)、active on match(相等有效)、inactive on match(相等无效)、toggle(翻转)、false inactive(强制无效)、false active(强制有效)、PWM1、PWM2 共 8 种。
- 常用模式:前六种模式使用较少,简单了解即可。PWM1 是常用模式,当计数器 CNT 值小于 CCR 值时,OCX REF 输出高电压,否则输出低电压;PWM2 模式与 PWM1 相反,CNT 小于 CCR 值时输出低电压,大于等于时输出高电压。
互补输出概念
-
引脚连接:定时器前三个通道的输出比较连接两个引脚,如通道一连接 CH1 和 CH1N,CH1 等表示正常输出,CH1N 等表示互补输出。
-
输出原理:正常输出直接输出模式选择产生的参考信号,与 OCX REF 信号相同;互补输出是参考信号经过反向器输出,与 OCX REF 信号相反。
-
实际应用:在同步 buck 电路(降压电源)、电机控制电路等中,两个开关交替导通,控制逻辑相反,需用到正常输出和互补输出信号。
极性选择内容
- 极性选择作用:决定是否对输出信号取反。
- 正常输出极性选择:选择高级性时,参考信号直接与正常输出相连,两者相等;选择低级性时,参考信号经反向器后与正常输出相连,两者相反。
- 互补输出极性选择:选择高级性时,参考信号经反向器与互补输出相连,互补输出与参考信号相反;选择低级性时,两个反向器作用抵消,互补输出与参考信号相同 。
PWM硬件部分
舵机
- 舵机相关知识
- 工作方式:根据输入 PWM 信号占空比控制输出角度,内部由直流电机驱动,有控制电路板,执行逻辑是 PWM 信号给控制板目标角度,电位器检测当前角度,电机正反转使输出轴固定在指定角度。
- PWM 信号要求:周期 20 毫秒(50 赫兹),高电平宽度 0.5 毫秒到 2.5 毫秒,对应输出角度为 -90 度到正 90 度(或 0 到 180 度),中间线性分配。
- 硬件电路:舵机有三根线,分别对应电源正负极和信号线,电源正接 5 伏,电源负接 GND,信号线接 STM32 引脚(如 PA0),供电可单独提供或用 USB 的 5 伏供电。
舵机是一种根据输入PWM信号占空比来控制输出角度的装置
输入PWM信号要求:周期为20ms,高电平宽度为0.5ms~2.5ms
舵机的工作原理,输入信号规定的角度给内部电路板,有电位器,会比较当前位置与设置位置的差距,然后控制直流电机运动(正转或者反转)。
![<img src="STM32.assets/image-2025
硬件电路
直流电机及驱动简介
直流电机是一种将电能转换为机械能的装置,有两个电极,当电极正接时,电机正转,当电极反接时,
电机反转直流电机属于大功率器件,GPIO口无法直接驱动,需要配合电机驱动电路来操作
TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速和方向
- 直流电机及驱动
- 电机特性:将电能转化为机械能,电极正接正转,反接反转,属于大功率器件,GPIO 口无法直接驱动。
- 驱动芯片:选用 TB6612 双路 h 桥型直流电机驱动芯片,可驱动两个直流电机并控制转速和方向,集成度高,外围只需三个滤波电容。
- 硬件电路连接:VM 接电机电源正极(4.5 - 10 伏,与电机额定电压一致),VCC 接控制器电源(2.7 - 5.5 伏,与控制器电源一致),GND 接系统负极,AO1、AO2 和 BO1、BO2 分别接电机,控制端 PWM 接 PWM 信号输出端,AIN1、AIN2 和 BIN1、BIN2 接普通 GPIO 口,STBY 引脚控制待机状态。
- 正反转及速度控制:IN1 和 IN2 全高或全低电机不转,IN1 低 IN2 高且 PWM 高电机反转,速度取决于 PWM 信号占空比;IN1 高 IN2 低且 PWM 高电机正转,速度也取决于 PWM 信号占空比。
硬件电路