• STM TIM(二)输出比较


    STM TIM(二)输出比较

    输出比较简介

    • OC(Output Compare)输出比较

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

      • 比较CNT和CCR的值,CNT计数自增,CCR是我们给定的一个值,当CNT大于CCR、小于CCR或者等于CCR时,输出就会对应置1或置0。这样就可以输出一个电平不断跳变的PWM波形了。
    • 每个高级定时器和通用定时器都拥有4个输出比较通道

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

    PWM简介

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

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

    • PWM参数:

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

    在这里插入图片描述

    在这里插入图片描述

    输出比较通道(高级)

    • 通常在外面要接一个最基本的推挽输出的电路,MOS管左边是控制极,比如说给高电平就导通,低电平就断开,中间是输出。

    • 上管导通,下管断开,输出就是高电平

    • 下管导通,上管断开,输出就是低电平

    • 上下管都导通,电源短路,不允许

    • 上下管都断开,输出就是高阻态

    • 如果有两个这样的推挽电路,就构成了H桥电路,就可以控制直流电机正反转了,如果有三个这样的推挽电路,就可以用于驱动三相无刷电机了。

    • 直接控制这个电路,需要有两个控制级,并且这两个控制级电平是相反的,也就是互补,因为上管导通,下管就必须断开,下管导通,上管就必须断开。

    • OC1和OC1N就是两个互补的输出端口,分别控制上管和下管的导通和关闭。
    • 切换上下管导通状态时,如果在上管关断的瞬间,下管立刻就打开,可能会因为器件的不理想,上管还没完全关断,下管就已经导通了,出现了短暂的上下管同时导通的现象,这会导致功率损耗,引起器件发热。
    • 为了避免这个问题,就有了死区生成电路,它会在上管关闭的时候,延迟一小段时间,再导通下管,下管关闭的时候,延时一小段时间,再导通上管。这样就可以避免上下管同时导通的现象了。这就是死区生成和互补输出的用途。

    在这里插入图片描述

    输出比较通道(通用)

    • CNT计数器和CCR1第一路的捕获/比较寄存器进行比较,当CNT>CCR1,或者CNT=CCR1时,就会给输出模式控制器传一个信号,然后输出模式控制器就会改变它输出OC1REF的高低电平,REF(reference 参考信号)信号实际上就是指信号的高低电平。
    • REF信号
      • 往上面这一路,可以前往主模式控制器,可以把REF映射到主模式的TRGO输出上去。
      • 一般走下面这一路,到达极性选择器,给TIMx_CCER寄存器的CC1P位写0,信号就会往上走,电平不翻转;写1,信号就会往下走,通过非门取反,输出的信号就是输入信号高低电平翻转后的信号。极性选择,就是选择是否要将输入的高低电平翻转后输出。
    • 输出使能电路,选择是否输出。
    • OC1引脚,就是CH1通道的引脚,在引脚定义表中就可以直到具体是哪个GPIO口了。
    • ETRF输入,是定时器的一个小功能,一般不用

    在这里插入图片描述

    输出比较模式

    模式描述
    冻结CNT=CCR时,REF保持为原状态
    匹配时置有效电平CNT=CCR时,REF置有效电平
    匹配时置无效电平CNT=CCR时,REF置无效电平
    匹配时电平翻转CNT=CCR时,REF电平翻转
    强制为无效电平CNT与CCR无效,REF强制为无效电平
    强制为有效电平CNT与CCR无效,REF强制为有效电平
    PWM模式1向上计数:CNTCCR时,REF置无效电平,CNT≤CCR时,REF置有效电平
    PWM模式2向上计数:CNTCCR时,REF置有效电平,CNT≤CCR时,REF置无效电平

    PWM基本结构

    以PWM模式1为例

    • 时基单元和运行控制部分
    • 输出比较单元,总共有4路
      • CCR捕获/比较寄存器,CCR由我们自己设定,CNT不断自增运行,同时CCR和CNT不断进行比较。
      • 输出模式控制器(PWM模式1)
        • CNT
        • CNT≥CCR时,REF置无效电平
    • 右上角该图
      • 蓝色线代表CNT的值
      • 黄色线代表ARR的值
      • 红色线代表CCR的值
      • 绿色线代表REF输出的值

    PWM工作流程

    • 蓝色线从0开始自增,一直增到ARR,也就是99,之后清0继续自增。CNT
    • 输出的REF就是一个频率可调,占空比也可调的PWM波形,最终再经过极性选择,输出使能,最终通向GPIO口。

    在这里插入图片描述

    参数计算

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

      • 对应计数器的一个溢出更新周期,PWM的频率就等于计数器的更新频率
    • PWM占空比: Duty = CCR / (ARR + 1)

    • PWM分辨率(占空比最小的变化步距): Reso = 1 / (ARR + 1)

    在这里插入图片描述

    舵机简介

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

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

    在这里插入图片描述

    硬件电路

    在这里插入图片描述

    直流电机及驱动简介

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

    • 直流电机属于大功率器件,GPIO口无法直接驱动,d

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

    在这里插入图片描述

    硬件电路

    在这里插入图片描述

  • 相关阅读:
    【python函数】内置函数slice()用法解析
    SWT/ANR问题--如何捕获性能的trace
    系统平台同一网络下不同设备及进程的话题通讯--DDS数据分发服务中间件
    mac安装hadoop3.2.4
    Java的JDBC编程
    手写生产者消费者模型
    Go语言结构体内嵌接口
    Vue使用axios发送两次请求,多了options 请求
    【C语言进阶】动态内存管理及柔性数组
    焦虑经济衍生冥想生意,年轻人会为“放空”买单吗?
  • 原文地址:https://blog.csdn.net/m0_73640344/article/details/134031968