我爱编程

运动控制器17:STM32的通用定时器

2018-01-12  本文已影响0人  吴松乾

TIMx简介

TIMx主要功能

TIMx功能描述

时基单元

计数器模式,一共有三种

向上计数模式
向下计数模式
双向计数模式

时钟选择

  1. 内部时钟最常用
  2. 外部时钟模式有两种,TIx和ETR
    流程如下:(相当于是计数)
    • 设置检测的通道
    • 选择滤波器带宽
    • 上升沿极性
    • 选择定时器时钟模式
    • 选择触发输入源
    • 启动定时器
      ETR模式时,设置滤波,分频,检测沿和开启模式和定时器即可,基本同TIX
  3. 内部触发IIRx,可以将两个定时器进行联动

捕获和比较通道

输入捕获模式

  • 选择输入端
  • 配置滤波器的带宽
  • 设置有效边沿
  • 设置预分频
  • 允许捕获寄存器操作
  • 允许中断
PWM输入模式
  • 设置CCR1和CCR2的有效输入
  • 设置CCR1和CCR2有效极性
  • 设置有效的触发信号

输出比较模式

  • 选择时钟
  • 将数据写入ARR和CCR中
  • 如需要,设置中断和DMA
  • 设置输出模式(电平极性)
  • 启动


    4.png

PWM模式

比如要输出周期为8,高电平占3的PWM输出波形,则ARR为8,而CCRX为3,

单脉冲模式

外部引脚接收到一个脉冲,比如按键,我们需要延时TDELAY以后,产生一个脉宽为TPULSE的脉冲。其中延时由CCR1来决定,脉冲由ARR-CCR1来决定.

在外部事件时清除OCXREF

这种方式下可以用于做电流控制,正常比较输出模式下,计数超过CCRX时,输出为低电平,如果CCRX固定,则输出的脉宽是固定的,但如果有外部引脚输入一个高电平(电流超出),则直接拉低输出。

编码器接口模式

这个在步进电机上会有用到,重点关注一下,图如下:


6.png

定时器输入异或功能

定时器和外部触发的同步

定时器和外部信号组合在一起,有三种模式

  1. 复位模式
    外部脉冲输入时,所有的寄存器重新读取,重新计时,同时触发标志,进行中断和DMA请求。
  2. 门控模式
    只在有外部信号时计数,其他事件计数器暂停。
  3. 触发模式
    有某个事件时,使能计数器
  4. 外部时钟模式+触发模式
    时钟由外部输入,同时用触发信号进行控制。

定时器同步

一个定时器处于主模式,对另外一个处于从模式的定时器进行复位,启动,停止和提供时钟等操作。

  1. 做为分频器

配置定时器1为主模式,每次中断时输出一个上升沿
上升沿连接到定时器2,配置定时器2为从模式
把定时器2用外部时钟模式1下,这样就连接起来了
最后启动两个定时器

  1. 使能从定时器

同样设置定时器1为主模式
设置定时器1的OC1REF波形,输出比较
配置定时器2的触发
定时器2为门控模式,也就是说,定时器1溢出以后,才控制定时器2开始计数
最后启动两个定时器

  1. 一个定时器去启动另一个定时器

有点类似于接力棒,一个定时器截至以后,另外一个接着计数,但是计数器1在重新计数

4.外部信号同步启动两个定时器

上一篇 下一篇

猜你喜欢

热点阅读