STM32单片机 定时器TIM输出比较 PWM波形

news2024/9/21 21:57:20

一.  OC(Output Compare)输出比较

  • 了解:IC(Input Capture)输入捕获、CC(Capture/Compare)输入捕获和输出比较单元
  • 功能:用来输出PWM波形,PWM波形又是用来驱动电机的必要条件,用来做智能车、机器人等
  • 输出比较可以通过比较CNT计数器与CCR捕获/比较寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形
  • 每个高级定时器和通用定时器都拥有4个输出比较通道
  • 高级定时器的前3个通道额外拥有死区生成互补输出的功能

二.  PWM波形(Pulse Width Modulation)脉冲宽度调制

  • 是数字输出信号,由高低电平组成
  • 在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量常应用于电机控速等领域
  • 产生

例如:数字输出端口控制LED,按理说 LED 只能有完全亮和完全灭两种状态,怎么能实现控制亮度大小呢?那通过这个 PWM 波形就可以实现,我们让 LED 不断点亮熄灭,当这个点亮熄灭的频率足够大时, LED 就不会闪烁了,而是呈现出一个中等亮度。当我们调控这个点亮和熄灭的时间比例时,就能让 LED 呈现出不同的亮度级别。

例如:对于电机调速,我们以一个很快的频率给电机通电、断电,那么电机的速度就能维持在一个中等速度,这就是 PWM 的基本思想。

PWM 的秘诀就是天下武功唯快不破。要我闪的足够快,你就发现不了我到底是闪着亮的,还是一个正常的平稳的亮度。当然,PWM的应用场景必须要是一个惯性系统。就是说 LED 在熄灭的时候,由于余晖和人眼视觉暂留现象, LED 不会立马熄灭,而是有一定的惯性,过一小段时间才会熄灭。电机也是当电机断电时,电机的转动不会立马停止,而是有一定的惯性,过一会才停,这样具有惯性的系统才能使用PWM。

上图这种高低跳变的数字信号,可以等效为中间紫色虚线所表示的模拟量。

三.  PWM参数

  • 频率=1/Ts 
  • 占空比=Ton/Ts  。占空比:占空比越大,则模拟电压越趋近于高电平,反之则趋近于低电平
  • 分辨率=占空比变化步距

假设高电平5V,低电平0V,占空比为50%,则模拟电压为2.5V,若占空比为25%,则模拟电压为1.25V。

分辨率

  • 占空比是1%,2%,3%等等这样就是以1%的步距跳变
  • 占空比是1.1%,1.2%,1.3%这样是以0.1%的步距跳变
  • 分辨率就是占空比变化的细腻程度

四.  通用定时器的输出比较通道框图

  1. 左边就是 CNT 计数器和 CCR1 第一路的捕获/比较寄存器,它俩进行比较。
  2. 当 CNT 大于 CCR1 或者 CNT 等于 CCR1 时,就会给这个输出模式控制器传一个信号,然后输出模式控制器就会改变它输出 OC1 ref 的高低电瓶。ref  信号实际上就是指这里信号的高低电平,这个 ref 是 reference 的缩写,意思是参考信号。
  3. ETRF 输入,这是定时器的一个小功能,一般不用,不需要了解。
  4. 输出模式控制器工作原理
    1. 什么时候给 ref 高电瓶,什么时候给 ref 低电瓶?我们看一下下面的这个表,这就是输出比较的 8 种模式,也就是这个输出模式控制器里面的执行逻辑,这个模式控制器的输入是 CNT 和 CCR 的大小关系。输出是REF的高低电平,里面可以选择多种模式来更加灵活的控制 ref 输出,模式可以通过寄存器(TIMx_CCMR1)来进行配置,你需要哪个模式就可以选那个模式。那具体都是怎么操作的呢?我们来看一下这个表。冻结,描述是 CNT 等于 CCR 时, REF保持为原状态,CNT等于 CCR 时维持原状态。那其实这个 CNT 和 CCR 就根本没有用,是吧?所以你也可以把它理解成 CNT 和 CCR 无效 REF 保持为原状态,这都是一样的效果。那这个模式也比较简单,它根本就不管 CNT 谁大谁小,直接 REF 保持不变,维持上一个状态就行了。这有什么用呢?比如你正在输出 PWM 波,突然想暂停一会输出,就可以设置成这个模式,一旦切换为冻结模式后,输出就暂停了,并且高低电平也维持为暂停时刻的状态保持不变,这就是冻结模式的作用。 
    2. 匹配时置有效电平,匹配时置无效电平和匹配时电平翻转,这个有效电平和无效电平一般是高级定时器里面的一个说法,是和关断、刹车这些功能配合表述的。他说的比较严谨,所以叫有效电平和无效电平。在这里为了理解方面,你可以直接认为置有效电平就是置高电平,置无效电平就是置低电平。那这三个模式都是当 CNT 与 CCR 值相等时执行操作:

      1. 第一个是 CNT 等于 CCR 时 REF 置有效电平,也就是高电平。
      2. 第二个是相等时置无效电平,也就是低电平。
      3. 第三个是相等时电平翻转。
    3. 这些模式就可以用作波形输出了,比如相等时电瓶翻转这个模式,这个可以方便的输出一个频率可调占空比始终为 50% 的 PWM 波形。比如你设置CCR为0,那 CNT 每次更新清零时,就会产生一次 CNT = CCR 的事件,这就会导致输出电平翻转一次,每更新两次,输出为一个周期,并且高电平和低电平的时间是始终相等的,也就是占空比始终为50%。当你改变定时器更新频率时,输出波形的频率也会随之改变,它俩的关系是,输出波形的频率=更新频率/2,因为更新两次输出才为一个周期,这就是这个匹配时电平翻转模式的用途。

      上面这两个相等时置高电瓶和低电瓶感觉用途并不是很大,因为他们都只是一次性的,置完高或低电平后就不管事了,所以这两模式不适合输出连续变化的波形,如果你想定时输出一个一次性的信号,那可以考虑一下这两个模式。

    4. 强制为无效电平和强制为有效电平,这两个模式是 CNT 与CCR无效,REF强制为无效电平或者强制为有效电平。这里这两个模式和冻结模式也差不多,如果你想暂停波形输出,并且在暂停期间保持低电平或者高电平,那你就可以设置这两个强制输出模式。

    5. PWM 模式1和 PWM 模式2,非常重要,他们可以用于输出频率和占空比都可调的 PWM 波形,也是我们主要使用的模式。

      1. PWM 模式1,计数器为向上计数的情况下,它是 CNT 小于 CCR 时, REF 置有效点平, CNT 大于等于 CCR 时 REF 至无效点平。在向下技术的情况下,是 CNT大于 CCR时,REF置无效电瓶CNT小于等于 CCR 时, REF 制有效电平。这个情况比较多,一般我们都只使用向上计数,所以这里向下计数的描述我们就暂时不看了。他们之间也只有大小关系,极性这些东西不同,基本思想都是一样的,我们着重分析一个向上计数的就可以了,然后再对比看一下

        PWM 模式2,在向上计数的情况下, CNT小于CCS, REF 置无效电瓶。CNT大于等于 CCS 时, REF 至有效电瓶。经过观察可以发现它的大小比较关系,和上面这是一样的,区别就是输出的高低电平反过来了,所以 PWM 模式 2 实际上就是 PWM 模式1输出的取反,改变PWM 模式1和 PWM 模式 2 就只是改变了 REF 电瓶的极性而已。

  5. ref 信号可以前往主模式控制器。你可以把这个 ref 映射到主模式的 TRGO 输出上去,不过 ref 的主要去向还是下面这一路,
  6. 通过下面这一路到达一个极性选择,给这个寄存器写 0 信号就会往上走,就是信号电平不翻转,进来啥样出去还是啥样,写一的话信号就会往下走,就是信号通过一个非门取反,那输出的信号就是输入信号高低电平反转的信号,这就是极性选择,就是选择是不是要把高低电平反转一下。
  7. 接着就是输出使能电路了,选择要不要输出。
  8. 最后是 OC1 引脚,这个引脚就是 CH1 通道的引脚,在引脚定义表里就可以知道具体是哪个 GPIO 了。

五.  PWM基本结构

  •  蓝线:CNT
  • 黄线:ARR
  • 红线:CCR,CCR的值可以控制占空比
  • 绿线:输出

REF是一个频率可调,占空比可调的PWM波形。

参数计算

 CK_PSC:预分频器时钟,CK表示CLOCK时钟的意思

分辨率ARR越大越好,CCR越大越好

五.  高级定时器输出比较通道

需要结合外部电路来理解,在其外面通常接一个正极接着一个大功率开关管(一般是MOS管),再来一个MOS管,最后GND

  • 上面一个MOS管左边是控制极,比如说给高电平,右边两根上下的线就导通,低电平就断开,下面的MOS管也是一样,这就是一个基本的推挽电路,中间向右的是输出。
  • 如果上管导通、下管断开,那就是输出高电平,反之低电平;都导通就是电源短路,是不允许的,都断开就是高阻态。
  • 如果又两个这样的推挽电路就形成了H桥电路,可以控制直流电机正反转。
  • 如果有三个这样的推挽电路,就可以用于驱动三相无刷电机。
  • 如果要用单片机来控制,那就需要用两个控制极(如上图推挽电路),并且这两个电极电平相反互补。
  • OC1 和 OC1N 就是两个互补的输出端口,分别控制上下管的导通和关闭
  • 为避免上管还没完全关闭,下管就打开的短暂同时导通现象,就有了死区生成电路

死区生成电路

会在上管关闭的时候延迟一会再导通下管,会在下管关闭的时候延迟一会再导通上管,避免了同时导通的现象。

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

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

相关文章

2008-2022年各省环境污染综合指数数据(含原始数据+计算结果)

2008-2022年各省环境污染综合指数数据(含原始数据计算结果) 1、时间:2008-2022年 2、来源:统计年鉴、各省年鉴、环境年鉴 3、指标:省份、年份、废水排放总量(万吨)、废气中二氧化硫排放量&am…

系统架构设计师 - 系统可靠性分析与设计

系统可靠性分析与设计 系统可靠性分析与设计(论文写作)可靠性相关基本概念 ★★系统可靠性分析 ★★★★可靠性指标串联系统与并联系统 软件可靠性设计 ★★★★影响软件可靠性的主要因素可靠性设计策略N 版本程序设计防卫式程序设计 双击容错 大家好呀&…

公共场所团队管理-手机端源码讲解--SAAS本地化及未来之窗行业应用跨平台架构

一、团队自主注册码 二、代码 var 二维码 "未来之窗?url"encodeURIComponent(url);var 图片 "<img src"二维码">";CyberWin_Dialog.layer(图片,{type:"frame",title:title,width:"320px",height:"320px"…

从阅读到编辑,全方位PDF编辑器软件功能探索

你现在收到的文件是不是大部分也都是PDF格式的&#xff1f;这个格式可以完整的保存任意Office软件制作文档的格式&#xff0c;但是编辑起来就不是那么方便了。这次我汇集了一些我和身边小伙伴常用的类似福昕高级pdf编辑器这样的编辑工具统统分享给你吧。 1.福昕PDF编辑器 链接…

蚁剑webshell连接报错A JavaScript error occurred in the main process

报错如图&#xff1a; 已知解决方式&#xff1a; 将上传shell中文文件名修改为任意的英文文件名即可连接。

数据库体系结构概述

文章目录 1、集中式数据库2、分布式数据库2.1、体系结构2.2、特性2.3、分片方式2.4、透明性2.5、两阶段提交协议 2PC 1、集中式数据库 三级模式 外模式: 也称用户模式&#xff0c;对应 用户视图模式&#xff08;概念模式&#xff09;: 对应数据库表&#xff08;关系表&#xff…

读软件设计的要素06概念完整性

1. 概念完整性 1.1. 当概念组合成一个软件时&#xff0c;它们可以同步以便协调行为 1.1.1. 同步可能会消除一个概念的某些行为&#xff0c;但决不会添加与该概念的规范不一致的新行为 1.1.2. 在使用概念设计软件时&#xff0c;即使你没有精确定义同步&#xff0c;至少要说服自…

二进制方式安装Helm

二进制方式安装Helm 官网&#xff1a;https://helm.sh/ 1、下载安装包 wget -L https://get.helm.sh/helm-v3.16.0-rc.1-linux-amd64.tar.gz2、解压 tar -xf helm-v3.16.0-rc.1-linux-amd64.tar.gz3、移动到/usr/local/bin/目录下 mv linux-amd64/helm /usr/local/bin/he…

ResNet结构图(ResNet18、ResNet50)

原理&#xff1a;利用conv将通道数逐渐增加&#xff0c; 图片尺寸逐渐缩小 ResNet18结构图 ResNet18中的"18"指的是网络中的加权层数量。具体来说&#xff0c;它包含了18个卷积层和全连接层。 ResNet18的架构包括&#xff1a; 1个7x7卷积层16个3x3卷积层&#xf…

echarts饼图

const payload {id: left-center-1,title: 年龄占比,toolTip: true,data: {total: 197,data: [1, 32, 57, 67, 40],x: [35岁以下, 35-40岁, 40-45岁, 45-50岁, 50岁以上],}, };data [];// const color [#2F7DF2, #F9CA3C, #2E5CF2, #34E9A3, #F63048, #F97A3C, #2FD9F2, #A9…

IOS 开发者账号注册流程

注册步骤 准备资料 营业执照 法人信息&#xff08;电话、身份证信息&#xff09; 注册邮箱&#xff08;公司邮箱&#xff09; 开发者信息&#xff08;电话、身份证信息、邮箱&#xff09;1. 注册AppleID 注册地址&#xff1a; https://appleid.apple.com/account 填写表单信…

杂谈|压力管理之认识「压力」(一)

&#x1f4eb; 作者简介&#xff1a;「六月暴雪飞梨花」&#xff0c;专注于研究Java&#xff0c;就职于科技型公司后端工程师 &#x1f3c6; 近期荣誉&#xff1a;华为云云享专家、阿里云专家博主、腾讯云优秀创作者、腾讯云TDP-KOL、ACDU成员、墨天轮技术专家博主 &#x1f52…

曾经的王者-腾讯公众号为什么不火了呢?

微信公众号&#xff0c;曾经是图文内容创作者的天堂&#xff0c;如今却似乎风光不再。随着短视频和直播等新型媒体形式的崛起&#xff0c;公众号的打开率连年下滑&#xff0c;粉丝负增长甚至成为一些账号的常态。为何曾一度被誉为“图文类博主巅峰”的公众号会陷入如此境地&…

中国碳排放交易试点城市名单DID(2000-2022年)

中国碳排放交易试点城市名单DID数据是一个重要的工具&#xff0c;用于研究中国碳排放交易试点政策的影响。这些数据通常包括了各个试点城市在政策实施前后的虚拟变量&#xff0c;可以用于计量经济学分析&#xff0c;如双重差分&#xff08;DID&#xff09;方法&#xff0c;以评…

自学半年LabVIEW,能搭建出来一个系统吗

自学半年 LabVIEW 是完全有可能搭建出一个系统的&#xff0c;具体取决于你的学习效率、项目的复杂性以及你投入的时间。以下一些内容&#xff0c;能帮助你评估在半年时间内是否可以搭建出一个功能完善的系统&#xff1a; 1. 学习基础和背景 如果你已经具备编程或工程背景&…

服务器深度学习环境配置

学校提供的服务器&#xff0c;参考意见比较低 目录 公有云操作云主机操作系统修改&#xff1a; xshell连接深度学习环境配置显卡驱动检查安装检查 CUDA检查CUDA下载配置环境变量检查 conda 公有云操作 打开控制中心 节点选择 山东-青岛20 打开弹性云主机 云主机 系统已经默认…

Flutter类

Dart中的对象都继承自 Object 类&#xff0c;单继承&#xff08;extend关键字&#xff09;。Dart与Java、kotlin不同的是其无public、private、protected修饰符&#xff0c;默认public &#xff0c;通过在属性名、方法名前加 _下划线 来定义是否私有。 实现一个简单的类 class…

Python(TensorFlow和PyTorch)两种显微镜成像重建算法模型(显微镜学)

&#x1f3af;要点 &#x1f3af;受激发射损耗显微镜算法模型&#xff1a;&#x1f58a;恢复嘈杂二维和三维图像 | &#x1f58a;模型架构&#xff1a;恢复上下文信息和超分辨率图像 | &#x1f58a;使用嘈杂和高信噪比的图像训练模型 | &#x1f58a;准备半合成训练集 | &…

基于单片机的水产养殖饲料自动投喂系统

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图系统框架图设计获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机…

基于SpringBoot的扶贫助农管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于JavaSpringBootVueMySQL的扶贫助农管理系统【附源码文档…