【STM32】TIM定时器输出比较

news2024/12/23 11:08:54

1 输出比较

1.1 输出比较简介

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

主要是用来输出PWM波形的,PWM波形又是驱动电机的必要条件。

这个CCR是共用的,当使用输入捕获时,它就是捕获寄存器;当使用输出比较时,它就是比较寄存器。在输出比较这里,这块电路会比较CNT和CCR的值,CNT计数自增,CCR是我们给定的一个值,当CNT大于CCR、小于CCR、等于CCR时,输出就会置1,置0,置1,置0,这样就可以输出一个电平不断跳变的PWM波形了。

1.2 PWM简介

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

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

PWM参数:

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

1.3 输出比较通道

通用定时器的输出比较部分电路

对应的是

 最后通过TIMx_CH1输出到GPIO引脚上。

左边是CNT计数器和CCR1第一路的捕获/比较寄存器;它俩比较,当CNT > CCR1 或者 CNT = CCR1时,就会给输出模式控制器传一个信号,然后输出模式控制器就会改变它输出OC1REF(reference参考信号)的高低电平;接下来可以把OC1REF映射到主模式的TRGO输出上去;不过REF的主要去向还是走下面。

这是一个极性选择,给这个寄存器写0,信号就会往上走,就是信号电平不反转;写1的话,信号就会往下走,信号会通过一个非门取反,输出的信号就会发生反转。最后就是OC1引脚,这个引脚是CH1通道的引脚,在引脚定义中就可以具体知道是哪个GPIO了。

输出模式控制器的工作:输出比较模式,通过寄存器来配置。

模式

描述

冻结

CNT=CCR时(无效),REF保持为原状态

匹配时置有效电平

CNT=CCR时,REF置有效电平(高电平),一次性的

匹配时置无效电平

CNT=CCR时,REF置无效电平(低电平),一次性的

匹配时电平翻转

CNT=CCR时,REF电平翻转

强制为无效电平

CNTCCR无效,REF强制为无效电平。在暂停期间保持高电平

强制为有效电平

CNTCCR无效,REF强制为有效电平。在暂停期间保持低电平

PWM模式1

向上计数:CNT<CCR时,REF置有效电平,CNTCCR时,REF置无效电平

向下计数:CNT>CCR时,REF置无效电平,CNTCCR时,REF置有效电平

PWM模式2

向上计数:CNT<CCR时,REF置无效电平,CNTCCR时,REF置有效电平

向下计数:CNT>CCR时,REF置有效电平,CNTCCR时,REF置无效电平

(1)冻结模式:输出暂停;

(2)匹配时置有效电平、匹配时置无效电平、匹配时电平翻转:有效/无效电平一般是高级定时器的说法;简单理解有效电平是高电平,无效电平是低电平。

(3)PWM模式

PWM模式2是PWM模式1的取反。

1.4 PWM基本结构

 左上角是时基单元和控制部分,输出PWM暂时不需要中断。下面就是输出比较单元了,总共有4路。输出比较单元的最开始,是CCR捕获/比较寄存器,CCR是我们自己设定的,CNT不断自增运行,同时它俩还在不断比较,后面是输出模式控制器(PWM模式1)。

蓝色线是CNT的值,黄色线是ARR的值,CNT(蓝色线)从0开始自增,一直增到ARR的值,之后清零继续自增。在这个过程中再设置一条红线(CCR的值),之后再执行【CNT<CCR时,REF置有效电平;CNT≥CCR时,REF置无效电平】,下面绿色部分是输出。

CNT<CCR时,REF置有效电平;CNT≥CCR时,REF置无效电平。并且它的占空比是受CCR值调控的;如果CCR设置高一些,输出占空比就大一些。

1.5 参数计算

PWM频率:  Freq = CK_PSC / (PSC + 1) / (ARR + 1)

对应着计数器的一个溢出更新周期,PWM的频率等于计数器的更新频率。

PWM占空比:  Duty = CCR / (ARR + 1)

PWM分辨率:  Reso = 1 / (ARR + 1)

输出一个频率为1KHz,占空比可以任意调控,切分辨率为1%的PWM波形

Reso = 1 / (ARR + 1) = 1% =====》ARR = 99

Duty = CCR / (ARR + 1) = CCR / 100  =====》 CCR = [0, 100]

Freq = CK_PSC / (PSC + 1) / (ARR + 1) = 1000 =====》 CK_PSC / (PSC + 1) = 100000

1.6 舵机简介

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

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

大概的执行逻辑:PWM信号输入到控制板,给控制板一个指定的目标角度,然后电位器会检测输出轴的当前角度;如果大于目标角度,电机就会反转;否则正转。最终使输出轴固定在指定角度。

1.6.1 舵机硬件电路

1.7 直流电机

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

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

TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速和方向

1.7.1 硬件电路

看图和引脚说明,很清晰。

STBY引脚是待机控制引脚。如果接GND,芯片就不工作,处于待机状态;如果接逻辑电源VCC,芯片就正常工作。

看手册

强置输出模式:CNT和CCR无效,REF强制为高和低的那两种模式

输出比较模式:CNT=CCR时,REF冻结、置高、置低、反转那四种模式

PWM 模式:CNT > CCR或者CNT < CCR时,REF置高或者置低的那两种模式。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1284305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows系统远程桌面本地Ubuntu虚拟机

应用概览 在Windows系统上&#xff0c;有时候我们虽然本地安装了Linux虚拟机系统&#xff0c;但是由于特殊原因导致虚拟机与主体机之间无法复制粘贴文本和文件&#xff0c;但是却有基本的联网功能&#xff0c;此时就可以用本方案解决&#xff0c;即&#xff1a;本地远程桌面方…

好大夫数据爬取

好大夫数据爬取 问诊数据评论数据医生数据科普号数据医患交流数据 可按照疾病进行所有医生的数据&#xff0c;也可以抓所有问诊数据、评论数据 突破限制&#xff0c;快速交付

解决:ERROR: No matching distribution found for rarfile

解决&#xff1a;ERROR: No matching distribution found for rarfile 文章目录 解决&#xff1a;ERROR: No matching distribution found for rarfile背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在使用之前的代码时&#xff0c;报错&#…

SSM项目实战-前端-将uid存放在pinia中

https://pinia.vuejs.org/zh/getting-started.html 1、安装pinia npm install pinia {"name": "pro20-schedule","private": true,"version": "0.0.0","type": "module","scripts": {"d…

如何从T-N曲线判断电机选对了没有

我的知乎原文&#xff1a;https://zhuanlan.zhihu.com/p/670156320? 如果你是一个刚入行的电机工程师&#xff0c;刚刚参加了一个新产品的开发&#xff0c;在众多电机供应商中让你去挑选一款合适的电机&#xff0c;该从哪个角度去入手呢&#xff1f; 今天这篇文章就从T-N曲线…

VM虚拟机的配置文件(.vmx)损坏修复

TOC 一、概述 在使用Vm虚拟机的时候&#xff0c;我的电脑蓝屏后导致.vmx打不开了&#xff0c;而且点击没有任何提示信息。应该是配置文件损坏了 二、环境 VM版本&#xff1a;VMware Workstation 16 Pro 16.2.1 build-18811642Windows版本&#xff1a;Windows 10 家庭版 三…

龙迅LT2611UX 四端口LVDS转HDMI(2.0)

1.描述&#xff1a; LT2611UX 四端口LVDS TO HDMI2.0。 LT2611UX是一款高性能得LVDS到HDMI2.0转换器得STB&#xff0c;DVD应用程序&#xff0c;LVDS输入可以配置单端口&#xff0c;双端口或者四端口&#xff0c;带有一个高速时钟通道&#xff0c;最多可运行三到四个高速数据…

Shopify二次开发之三:liquid语法学习(访问Objects和Schema数据模型)

目录 Objects &#xff08;对象&#xff09; 全局对象 all_products&#xff1a;商店中所有的商品 articles: 商店中的所有文章 collections&#xff1a;商店中所有的集合 模板对象 在product.json&#xff08;配置的section中) 访问product对象 在collection.json中可…

Spring Bean的生命周期各阶段详解附源码

目录 Bean的生命周期Bean定义阶段Bean实例化阶段Bean属性注入阶段Bean初始化阶段Bean销毁阶段 Bean的生命周期 bean的生命周期&#xff0c;我们都知道大致是分为&#xff1a;bean定义&#xff0c;bean的实例化&#xff0c;bean的属性注入&#xff0c;bean的初始化以及bean的销毁…

如何制作教育培训小程序

教育培训行业近年来发展迅速&#xff0c;越来越多的机构开始意识到通过小程序来提供在线教育服务的重要性。小程序不仅可以为用户提供便捷的学习体验&#xff0c;还可以增加机构的知名度和品牌影响力。那么&#xff0c;如何制作一款教育培训小程序呢&#xff1f; 首先&#xff…

socket.io介绍

1. 使用的技术 Socket.IO 是一个封装了 Websocket、基于 Node 的 JavaScript 框架&#xff0c;包含 client 的 JavaScript 和 server 的 Node。其屏蔽了所有底层细节&#xff0c;让顶层调用非常简单。 另外&#xff0c;Socket.IO 还有一个非常重要的好处。其不仅支持 WebSocket…

处理器中的TrustZone之安全状态

在这个主题中&#xff0c;我们将讨论处理器内对TrustZone的支持。其他部分则涵盖了在内存系统中的支持&#xff0c;以及建立在处理器和内存系统支持基础上的软件情况。 3.1 安全状态 在Arm架构中&#xff0c;有两个安全状态&#xff1a;安全状态和非安全状态。这些安全状态映射…

fastadmin列表头部按钮批量上传视频

上传界面通过layui生成 index.html <a href="{:url(video/piliangadd)}" class="btn btn-success btn-piliangadd btn-dialog {:$auth->check(video/piliangadd)?:hide}" title="批量上传" ><i class="fa fa-plus">…

Python实现FA萤火虫优化算法优化卷积神经网络分类模型(CNN分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法&#xff08;Fire-fly algorithm&#xff0c;FA&#xff09;由剑桥大学Yang于2009年提出 , …

类和对象——(6)友元

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 没有存储汗水&#xff0c;就无法支取成…

AntDesign去国际化 | router页面显示问题

删除 Ant Design Pro 中的【国际化】模块报错&#xff1a;Environment key “es2022“ is unknown 问题描述 使用 npm run i18n-remove 运行 “i18n-remove”: “pro i18n-remove --localezh-CN --write” 删除【国际化】模块时出现如下报错&#xff1a; 问题分析 报错的大致…

Android,JNI开发和NDK之间的联系

Android&#xff0c;JNI开发和NDK。 1.jni和ndk jni是在jdk中就有出现的 在我们jdk路径中 D:\java\jdk11\include 这就是jdk中的jni Android开发环境中的ndk也有jni&#xff0c; D:\Android\sdk\ndk\20.0.5594570\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\in…

线程变量引发的session混乱问题

最近不是在救火&#xff0c;就是在救火的路上。 也没什么特别可写的&#xff0c;今天记录下最近遇到的一个问题&#xff0c;个人觉得挺有意思&#xff0c; 待有缘人阅读 言归正传&#xff0c;售后反馈&#xff1a; 营业查询中付款方式为第三方支付的几条银行缴费&#xff0c;创…

Affinity VS PS 2024最新功能详细对比?Affinity Photo与Photoshop比哪家强?

多年来&#xff0c;ps已经有了大量竞争对手。然而每次Photoshop都足以保持其领先地位。开源GIMP和Pixelmator都试图取代Photoshop&#xff0c;不过Photoshop对此不屑一顾。英国Serif公司研发了一款名为Affinity Photo的软件&#xff0c;声称可以叫板ps。今天我们看看有最有可能…

FPGA_单引脚输入输出-三态

FPGA_单引脚输入输出-三态 以常见的I2C协议通讯方式讲解&#xff0c;SDA线既可以接收数据也可以发送数据&#xff0c; I2C 发送写控制命令&#xff0c;在空闲状态时&#xff0c;我们给 I2C 数据方向控制&#xff08;sda_dir&#xff09;信号赋值高电平&#xff0c;将 sda 总线…