【江科大STM32】TIM输出比较(学习笔记)

本章图片文字内容也为重要知识,请马住!

 输出比较简介 

  • OC(Output Compare)输出比较
  • 输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形
  • 每个高级定时器和通用定时器都拥有4个输出比较通道,4个输出比较通道各自有捕获/比较寄存器但是它们共用一个CNT计数器
  • 高级定时器的前3个通道额外拥有死区生成和互补输出的功能,用于驱动三相无刷电机

 CNT与CCR寄存器:

常见名称简写:  

  •  OC(Output Compare)输出比较
  • IC(Input Capture)输入捕获
  • CNT:计数器 
  • CCR(Capture Compar Register)捕获/比较寄存器,是输入捕获和输出比较公用
  • REF(refreference):参考信号
  • ETR 引脚:通常是外部触发输入引脚

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

 PWM简介

  • PWM(Pulse Width Modulation)脉冲宽度调制,也是数字输出信号,高低电平组成
  • 在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域
  • PWM参数:频率 = 1 / TS            占空比 = TON / TS           分辨率 = 占空比变化步距 

 频率 = 1 / TS:PWM的频率越快,它的等效模拟信号就越平稳。不过同时性能开销就越大,一般来说,PWM的频率在几k到几十KHz,这个频率就足够快了。

 

占空比 = TON / TS : TON是高电平的时间,TS是一个周期的时间,那么TON/TS就是高电平时间相对于整个周期时间的比例, 一般用百分比表示,比如占空比为50%,那就是高低电平时间相等的方波;占空比为20%,那就是高电平占20%,低电平占80%;占空比为100%,那就是高电平不变;占空比0%,那就直接是低电平。占空比决定了PWM等效出来的模拟电压的大小,占空比越大,那等效的模拟电压越趋近于高电平,占空比越小,那等效的模拟电压越趋近于低电平。这个等效关系一般来说都是线性的,比如高电平时5V,低电平时0V,那50%的占空比就等效于中间电压,就是2.5V;20%的占空比就等效于1/5处的电压,就是1V。

 

 

分辨率 = 占空比变化步距 :比如有的占空比只能是1%, 2%,3%,等等这样以1%的步距跳变,那它的分辨率就是1%,如果可以1.1%, 1.2%,1.3%这样以0.1%的步距跳变,那它的分辨率就是0.1%。,所以这个分辨率就是占空比变化的精细程度。要求不高的,1%的分辨率也够用了。

使用PWM波形,就可以在数字系统等效输出模拟量。 就能实现LED控制亮度,电机调速等功能。

如何实现LED连续地调控亮度?

这就使用到这个PWM波形,用来有效的实现一个模拟信号的输出。通过PWM波形就可以实现,让LED不断地点亮、熄灭、点亮、熄灭。当点亮熄灭的频率足够大时,LED就不会闪烁了,而是呈现出一个中等亮度。当我们调控这个点亮熄灭的时间比例时,就能让LED呈现出不同的亮度级别。对于电机调速也是一样,我们以一个很快的频率,给电机通电、断电、通电、断电,那么电机的速度就能维持在一个中等速度,这就是PWM的基本思想。当然PWM的应用场景必须要是一个惯性统,就是说LED在熄灭的时候,由于余晖和人眼的视觉暂留现象,LED不会立马熄灭,而是有一定的惯性,过一段时间才会熄灭。相同,电机也是一样,不会立马停止。这样具有惯性的系统才可以使用PWM。

输出比较通道(通用) 

接下来看看定时器的输出比较模块是如何输出PWM波形的?

两图对应通道1 (下图干货,认值吸收

输出比较模式 

输出模拟控制器具体工作方式,什么时候给ref高电平,什么时候给ref低电平?那就看看输出比较模式,也就这个输出模式控制器里面的执行逻辑,输入是CNT和CCR的大小关系,输出是ref的高低电平,里面可以选择多种模式来更加灵活地控制ref输出,这个模式可以通过寄存器配置。

冻结:CNT=CCR时,REF保持为原状态。可以理解为CNT和CCR无效,REF保持原状态,这个模式也比较简单,它根本不管CNT谁大谁小,直接REF保持不变,维持上一个状态就好了。这有什么用呢?比如你正在输入PWM波,突然想暂停一会输出,就可以设置成这个模式,一旦切换成冻结模式后,输出就停止了,并且高低电平也维持为暂停时刻的状态,保持不变。

匹配时置有效/无效/电平、电平翻转: 为了方便理解,可以直接认为,置有效电平就是高电平,无效电平就是低电平。这些模式可以用做波形输出,比如相等时电平翻转这个模式,这个可以方便的输出一个频率可调,占空比时钟为50%的PWM波形。比如你设置CCR为0,那CNT每次更新清0时,就会产生一次CNT=CCR的事件,这就会导致输出电平翻转一次,每更新两次,输出为一个周期,并且高电平与低电平的时间始终相等,也就是占空比始终为50%,当你改变定时器的更新频率时,输出波形的频率也会随之改变。它俩的的关系是输出波形的频率=更新频率/2,因为更新两次才为一个周期。

 

PWM模式1与PWM模式2: 它们可用于输出频率和占空比都可调的PWM波形,也是我们主要使用的模式。一般使用向上计数,PWM模式2实际就是PWM模式1输出的取反,改变PWM模式1和PWM模式2,就只是改变了REF电平的极性而已。所以使用的话,我们可以只使用PWM模式1的向上计数,这一种模式就行了。

PWM基本结构 (重点)

 PWM模式1的向上计数模式是如何输出频率和占空比都可调的PWM波形的?

图片文字全是干货,好好看看吸收 

 参数计算        

 

 问题:如果要求输出一个频率为1KHz,占空比可任意调节,分辨率为1%的PWM波形,请用上面公式确认合适的参数。欢迎评论区讨论。

 舵机简介

  • 舵机是一种根据输入PWM信号占空比来控制输出角度的装置
  • 输入PWM信号要求:周期为20ms,高电平宽度为0.5ms~2.5ms 

舵机有三根输入线,两根电源线,一根信号线,PWM就是通过输入信号线来控制舵机的。

棕色电源负极接GND,红色电源正接VCC,橙色信号线。 

把PWM当作通信协议也是一个比较常见的应用,很多控制器都有PWM输出功能,而且PWM只需要一根信号线就可以了。  

舵机是一种电子元件,用于控制机械装置的角度和位置。舵机的工作原理是通过接收控制信号,并将这个信号转换成机械运动。舵机内部包含了电机、控制电路和反馈装置。

当一个控制信号发送给舵机时,舵机的控制电路会对这个信号进行解码,然后根据信号的大小和方向控制内部电机的运转。内部电机的运转会使得舵机的输出轴旋转到特定的位置,从而改变机械装置的角度和位置。舵机还会通过反馈装置实时检测输出轴的位置,并将这个信息发送回控制电路,从而确保输出轴达到预期的位置。

总的来说,舵机的工作原理就是接收控制信号、转换成机械运动,并通过反馈机制来确认和调整输出位置。舵机广泛应用于遥控模型、机器人等领域。

舵机的硬件电路

 

 直流电机及驱动简介

  • 直流电机是一种将电能转换为机械能的装置,有两个电极,当电极正接时,电机正转,当电极反接时,电机反转
  • 直流电机属于大功率器件,GPIO口无法直接驱动,需要配合电机驱动电路来操作
  • TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速和方向  

直流电机是一种将电能转变为机械能的电动机。它的工作原理基于洛伦兹力和电磁感应定律。

直流电机通常由一个定子和一个转子组成。定子上有一组绕组,通常称为电枢,通过这些绕组流过电流。转子由永磁体或电磁铁组成,它围绕在定子的中心。

当电流通过电枢绕组时,产生的磁场和转子的磁场相互作用,导致转子发生转动。这是基于洛伦兹力的原理,即流过导体的电流在磁场中会受到力的作用。根据右手定则,电流方向和磁场方向可以确定受力的方向,从而导致转子转动。

在转动过程中,电枢绕组的电流方向会随着转子的旋转而不断改变,这导致了反向的力矩,使得转子能够持续转动。

总的来说,直流电机的工作原理是通过在定子和转子之间建立磁场和通过电流的相互作用,实现将电能转换为机械能,驱动机械装置工作。

 直流电机硬件电路

 

活动发起人@小虚竹 想对你说:

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你参加为期14天的创作挑战赛!

提醒:在发布作品前,请将不需要的内容删除。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Linux上安装MySQL

1.下载Linux版MySQL安装包 https://downloads.mysql.com/archives/community/ 2. 上传MySQL安装包 (FinalShell示例) 3. 创建目录,并解压 mkdir mysqltar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql4. 安装mysql的安装包 cd mysqlr…

MyBatis的关联映射

前言 在实际开发中,对数据库的操作通常会涉及多张表,MyBatis提供了关联映射,这些关联映射可以很好地处理表与表,对象与对象之间的的关联关系。 一对一查询 步骤: 先确定表的一对一关系确定好实体类,添加关…

智能AI替代专家系统(ES)、决策支持系统(DSS)?

文章目录 前言一、专家系统(ES)是什么?二、决策支持系统(DSS)是什么?1.决策支持系统定义2.决策系统的功能与特点3.决策支持系统的组成 三、专家系统(ES)与决策支持系统(D…

C++学习之函数、指针、字符串

一.函数; 1.函数的定义和调用 2.函数的声明 3.函数的分类 4.函数的值传递 5.函数的分文件编写 //#define _CRT_SECURE_NO_WARNINGS //#include<stdio.h> //#include<string.h> //#include<stdlib.h> //#include "test.h" // // //int main() //{ …

C#-委托

Action 无返回值&#xff0c;多线程常用 Action<string> action1 (name) > Console.WriteLine($"hello {name}"); action1("tom"); Func 有返回值&#xff0c;扩展方法常用&#xff0c;最后一个参数是输出参数 Func<int, int, double>…

场景重建——Nerf场景重建

3DGS和Nerf的区别 一、概念二、3DGS区别三、相关工作三、Nerf相关工作3.1、Point-NeRF&#xff08;CVPR2022:Point-Based Neural Radiance Fileds&#xff09;3.2、Plenoxels(CVPR2022:Radiance Fields without Neural Networks)3.3、MARS: An Instance-aware, Modular and Rea…

java jar包内的jar包如何打补丁

问题描述&#xff1a; 主包&#xff1a;hisca.jar&#xff0c;解压后 BOOT-INFO/lib下有其他jar包 因为一个小bug&#xff0c;需要修改这个hisca包下BOOT-INF/lib下的子jar包service-hisca-impl-1.0.0.jar中的一个service类及xml文件 操作步骤&#xff1a; 1、主包jar -xvf …

一文读懂,外贸中的invoice是什么意思?如何制作?

在外贸领域&#xff0c;invoice 这一词汇频繁出现&#xff0c;它对于国际贸易的顺利进行起着至关紧要的作用。本文将深入剖析外贸中 invoice的具体含义、与商业发票的区别&#xff0c;以及其开具流程与注意事项&#xff0c;同时向大家推荐一款高效实用的发票制作工具 ——Zoho …

【论文笔记-TPAMI 2024】FreqFusion:用于密集图像预测的频率感知特征融合

Frequency-aware Feature Fusion for Dense Image Prediction 用于密集图像预测的频率感知特征融合 Abstract&#xff1a;密集图像预测任务要求具有强类别信息和高分辨率精确空间边界细节的特征。为了实现这一点&#xff0c;现代分层模型通常利用特征融合&#xff0c;直接添加…

DeepSeek 专家级操作手册详解

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;趣享先生的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&…

【Django自学】Django入门:如何使用django开发一个web项目(非常详细)

测试机器&#xff1a;windows11 x64 python版本&#xff1a;3.11 一、安装Django 安装步骤非常简单&#xff0c;使用pip安装就行 pip install django安装完成之后&#xff0c;python的 Scripts 文件夹下&#xff0c;会多一个 django-admin.exe (管理创建django项目的工具)。…

优云智算:借助强大镜像社区,开启AI算力新纪元!

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux网络编程 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 ​ 目录 前言&#xff1a; 平台介绍&#xff1a; …

抖音生活服务加强探店内容治理,2024年达人违规率下降30%

发布 | 大力财经 2月27日&#xff0c;抖音生活服务发布《2024抖音生活服务消费者权益保护年度报告》&#xff08;以下简称“报告”&#xff09;。报告显示&#xff0c;过去一年&#xff0c;抖音生活服务针对消费者反感的虚假、夸张探店内容&#xff0c;开展了专项治理。通过一…

LeetCode 热门100题-回文链表

题目描述&#xff1a; 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true 逻辑&#xff1a; 首先…

SpringCloud之Eureka、Ribbon、OpenFeign

目录1. SpringCloud Eureka&#xff08;服务注册与发现组件&#xff09;2. SpringCloud Ribbon&#xff08;负载均衡与服务调用组件&#xff09;3. SpringCloud OpenFeign&#xff08;负载均衡与服务调用组件&#xff09;SpringCloud&#xff1a;用于开发高度可扩展、高性能的分…

mamba_ssm和causal-conv1d详细安装教程

1.前言 Mamba是近年来在深度学习领域出现的一种新型结构&#xff0c;特别是在处理长序列数据方面表现优异。在本文中&#xff0c;我将介绍如何在 Linux 系统上安装并配置 mamba_ssm 虚拟环境。由于官方指定mamba_ssm适用于 PyTorch 版本高于 1.12 且 CUDA 版本大于 11.6 的环境…

【MySQL】表的基本操作

??表的基本操作 文章目录&#xff1a; 表的基本操作 创建查看表 创建表 查看表结构 表的修改 表的重命名 表的添加与修改 删除表结构 总结 前言&#xff1a; 在数据库中&#xff0c;数据表是存储和组织数据的基本单位&#xff0c;对于数据表的操作是每个程序员需要烂熟…

CES Asia 2025聚焦量子计算,多领域进展引关注

作为亚洲地区极具影响力的科技盛会&#xff0c;CES Asia 2025第七届亚洲消费电子技术贸易展&#xff08;赛逸展&#xff09;将在首都北京举办。本届展会以“创新、智能、互联”为主题&#xff0c;将全方位展示全球消费科技领域的最新成果与发展趋势。其中&#xff0c;量子计算作…

wps加载项学习3-扩展

WPS扩展API &#xff08;创建一个WebShape&#xff0c;WebShape身上有一个DataSource方法&#xff0c;DataSource有一个属性CreateDataRange&#xff09;绑定数据源&#xff0c;具体应用场景未知 NativeX扩展&#xff0c;把C&#xff0c;ruby&#xff0c;python等语言实现的算法…

进程间通信 —— 共享内存

目录 1.共享内存实现通信的原理 2.如何使用共享内存实现通信 共享内存通信接口介绍 shmget shmat shmdt shmctl 使用示例 key和shmid 3.共享内存通信的优缺点 缺点&#xff1a;不提供任何同步机制&#xff0c;可能会造成数据混乱。 优点&#xff1a;共享内存是进程…