【江科协-STM32】5. 输出比较

news/2025/2/27 5:14:50/

1. 输出比较简介

OC(Output Compare)输出比较。

输出比较可以通过CNT(CNT计数器)与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形。

:::tip
CNT计数器是正向计数器。它只能正向累加。

CCR是捕获/比较寄存器,通常是我们给的一个固定值,正如其名,捕获数值后比较数值,这样就可以捕获CNT的数值并进行比较,看是大了、等于还是小了。

TIM输出比较就是这样来决定置1、置0或翻转输出电平。
:::

每个高级定时器和通用定时器都拥有4个输出比较通道。

高级定时器的前三个通道额外拥有死区生成和互补输出的功能。

2. 通用定时器

使用输入捕获时,CCR是作为捕获寄存器;使用输出比较时,CCR是作为比较寄存器。

请添加图片描述

3. PWM简介

PWM(Pulse Width Modulation)是脉冲宽度调制。

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

PWM参数:

  • 频率 = 1 T s = \frac{1}{T_s} =Ts1
  • 占空比 = T o n T s \frac{T_{on}}{T_s} TsTon
  • 分辨率 = 占空比变化步距

当上面电平时间长一点,下面的短一点的时候,上面的模拟量占主导;反之则是下面的模拟量占主导。

请添加图片描述

T o n T_{on} Ton是高电平的时间, T S T_S TS是一个时钟周期的时间。 T o n T S \frac{T_on}{T_S} TSTon为占空比,指的是高电平时间占整个周期的比例。用百分比表示。

占空比决定了等效的模拟电压的大小。占空比越大,等效的模拟电压就趋近于高电平;越小,等效的模拟电压就趋近于低电平。
请添加图片描述

电机工作也是一个惯性系统。所以直流电机也是可以用PWM调速的。

下图是
请添加图片描述

输入是CNT(CNT计数器)与CCR寄存器值的关系,输出是REF的高低电平。

4. 输出比较模式

模式描述
冻结CNT=CCR时,REF保持为原状态(可用于定速巡航)
匹配时置有效电平CNT=CCR时,REF置有效电平
匹配时置无效电平CNT=CCR时,REF置无效电平
匹配时电平翻转CNT=CCR时,REF电平翻转
强制为无效电平CNT与CCR无效,REF强制为无效电平(可用于暂停波形输出)
强制为有效电平CNT与CCR无效,REF强制为有效电平(可用于暂停波形输出)
PWM模式1向上计数:CNT<CCR时,REF置有效电平, CN>=CCR时,REF置无效电平;向下计数:CNT>CCR时,REF置无效电平, CN<=CCR时,REF置有效电平
PWM模式2向下计数:CNT<CCR时,REF置无效电平, CN>=CCR时,REF置有效电平;向下计数:CNT>CCR时,REF置有效电平, CN<=CCR时,REF置无效电平

改变PWM模式1和2,只是改变了REF电平的极性。使用PWM1的正极性和PWM2的反极性是一样的效果。

5. PWM基本结构

请添加图片描述

蓝色线是CNT的值,黄色线是ARR的值,蓝色线从0开始自增,一直增到ARR,也就是99,之后清零继续自增。

红色线就是CCR,是我们预设的值。绿色线是电平大小。

当CNT<CCR时,置高电平;CNT>=CCR时,置低电平。CNT溢出时,清零,重新置高电平。

进一步分析,我们发现,电平的占空比是受CCR的值影响的。如果我们的CCR设置的低一些,占空比就小一些;如果CCR设置的高一些,占空比就大一些。

REF是一个频率可调,占空比也可调的PWM波形。最终经过极性选择、输出使能,通向GPIO口。

6. 参数计算

我们回到节5的图。

  • PWM频率: F r e q = C K P S C / ( P S C + 1 ) / ( A R R + 1 ) Freq = CK_PSC / (PSC+1) / (ARR+1) Freq=CKPSC/(PSC+1)/(ARR+1)
  • 占空比: D u t y = C C R / ( A R R + 1 ) Duty = CCR / (ARR+1) Duty=CCR/(ARR+1)
  • 占空比变化步距: D u t y S t e p = 1 / ( A R R + 1 ) DutyStep = 1 / (ARR+1) DutyStep=1/(ARR+1)

我们按高电平第一次回落的点算,此时占空比为 $30 /(99+1) \times 100 % = 30% $

CCR的范围取决于ARR,因为CCR去到和ARR差不多甚至相等的时候,占空比就是百分之百,这样便失去了意义。所以CCR需要始终小于ARR。

变化步距是越小越好的,CCR越大越好。这样代表其变化越细腻。

7. 输出比较通道(高级)

为了更好地切换MOS管开关状态,有了死区生成电路。

请添加图片描述

8. 舵机简介

舵机是一种根据输入PWM信号占空比来控制输出角度的装置。

输入PWM信号要求:周期为20ms,高电平宽度为0.5ms-2.5ms。

请添加图片描述

PWM在此图中是当一个通信协议来用。

9. 舵机硬件电路

请添加图片描述

PWM信号线直接接到STM32引脚上就可以,比如PA0。舵机内部有驱动电路。

10. 直流电机及驱动简介

直流电机是一种将电能转换为机械能的装置,有两个电极,当电极正接时,电机正转,当电极反接时,电机反转。

直流电机属于大功率器件,GPIO口无法直接驱动,需要配合电机驱动电路来操作。

TB6612是一款双路H桥(一路四个开关管)型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速及方向。

请添加图片描述

ULN2003则一路只有一个开关管,只能控制电机在一个方向转。

右边的电路即是H桥电路的基本结构,它是由两路推挽电路组成的。上管导通,下管断开,左边输出就是接在VM的电机电源正极。下管导通,上管断开,那就是PGND的电源负极。

如果有两路推挽电路,中间O1和O2接一个电机,左上右下导通,电流就是从左流向右边;右上和左下导通,电流方向就反过来,从右流向左。H桥可以控制电流流过的方向,从而控制电机正反转。

11. 电机硬件电路

左边就是这个电机驱动模块的硬件电路。

右下角的表中,输入是IN1、IN2、PWM和STBY。STBY低电平就待机,高电平就正常工作。右边是输出,O1、O2和模式状态。有电压差电机才会转,否则就是制动状态。此外还有正反转状态之分,取决于O1和O2的高低电平相对状态。

请添加图片描述

要接一个可以输出大电流的电源.

VM是驱动电压输入端,输入电压一般和额定电压保持一致。

VCC不需要大功率,可以和控制器共用一个电源。

GND接系统的负极。随便一个GND就可以。

AO1和AO2是A路的两个输出,其控制端是上面的PWMA、AIN2、AIN1。

PWMA引脚接PWM的信号输出端,其他两个引脚可以任意接两个普通的GPIO口。

三个引脚给一个低功率的控制信号,驱动电路就会从VM汲取电流,输出到电机。从而就能完成低功率控制大功率电路的目的。

BO1和BO2是B路的两个输出,其控制端是上面的PWMB、BIN2、BIN1。

STBY如果不需要待机模式的话,可以直接接VCC(3.3V)。


http://www.ppmy.cn/news/1575180.html

相关文章

React加TypeScript最新部署完整版

React TypeScript 全流程部署指南 一、环境准备与项目初始化 关于node.js及npm的安装请参见我的文章。 1.1 创建项目&#xff08;React TypeScript&#xff09; # 使用官方推荐脚手架&#xff08;Vite 5.x&#xff09; npx create-vitelatest my-app --template react-ts …

国产编辑器EverEdit - 在编辑器中对文本进行排序

1 排序 1.1 应用场景 某些场景下用户需要对文本进行排序&#xff0c;比如&#xff1a;用户正在编辑函数列表&#xff0c;对函数列表按名称按字母A-Z排序。 1.2 使用方法 1.2.1 对选中文本进行排序 在编辑器中选中要排序的文本。选择主菜单工具 -> 排序 -> 升序排序 如…

(面试经典问题之连接池篇)连接池构成、作用及其基本原理详解

一、什么是连接池 连接池一般指的是数据库连接池&#xff08;connection pooling&#xff09;&#xff0c;是指程序启动时建立足够的数据库连接&#xff0c;并将这些连接组成一个连接池&#xff0c;由程序动态的对池中的连接进行申请&#xff0c;使用&#xff0c;释放&#xf…

STM32MP157A单片机移植Linux驱动深入版

需求整理 在Linux设备树中新增leds节点&#xff0c;其有3个gpio属性&#xff0c;分别表示PE10对应led1&#xff0c;PF10对应led2&#xff0c;PE8对应led3&#xff0c;设备树键值对如下&#xff1a; leds { led1-gpio <&gpioe 10 0>; led2-gpio &l…

lua-游戏红点提示系统抽象设计

文章目录 前言一、定义红点节点类型二、节点注册与管理三、状态更新与冒泡机制 四、示例配置与使用五、结构示意图六、关键机制说明总结 前言 在游戏开发中&#xff0c;红点提示系统可以通过树形结构和策略模式进行抽象&#xff0c;实现高扩展性。以下是基于Lua的实现方案&…

R 语言科研绘图第 27 期 --- 密度图-分组

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…

【论文精读】VLM-AD:通过视觉-语言模型监督实现端到端自动驾驶

论文地址&#xff1a; VLM-AD: End-to-End Autonomous Driving through Vision-Language Model Supervision 摘要 人类驾驶员依赖常识推理来应对复杂多变的真实世界驾驶场景。现有的端到端&#xff08;E2E&#xff09;自动驾驶&#xff08;AD&#xff09;模型通常被优化以模仿…

Nmap网络安全审计

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Nmap网络安全审计 什么是Nmap Nmap是由Gordon Lyon设计并实现的&#xff0c;于1997开始发布。最初设计Nmap的目的只是希望打造一款强大的端口扫描工具。但是随着…