STM32学习笔记【江科协】【6-7】TIM编码器接口

频繁执行、操作又比较简单的任务,会设计一个硬件模块,来自动完成

比如这节的代码是通过定时器的编码器接口,来自动计次,之前的代码是通过触发外部中断,然后再中断函数里手动计次。使用编码器接口的好处在于节约软件资源

编码器测速一般应用在电机控制的项目上,使用PWM驱动电机,再使用编码器测量电机的速度,然后再用PID算法进行闭环控制

电机的旋转速度一般比较高,会使用无接触式的霍尔传感器或光栅进行测速

实际使用中,旋转编码器和电机的霍尔、光栅编码器都是一样的效果


Encoder Interface 编码器接口
  • 编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度

*这个编码器接口相当于带有方向控制的外部时钟,同时控制着CNT的计数时钟和计数方向

  • 每个高级定时器和通用定时器都拥有1个编码器接口

*一个定时器配置成了编码器接口的模式,那基本不能实现其他的功能了。C8T6只有TIM1、TIM2、TIM3、TIM4这四个芯片,所以最多只能接4个编码器,接完4个编码器就没有定时器可以用了。如果硬件资源不够,可以用外部中断来接编码器,在中断里手动自增或自减计数;PWM可以用定时中断,在中断里手动计数,手动翻转电平;输入捕获,可以来个外部中断,然后在中断里手动把CNT取出来,放在变量里

  • 两个输入引脚借用了输入捕获的通道1和通道2

测频率------就是记速

正交信号------判断方向

使用正交计次相比较单独定义一个方向引脚的好处?正交信号精度更高,AB相都可以计次,相当于计次频率提高了一倍;正交信号可以抗噪声


之前使用的内部时钟CK_PSC和时基单元初始化设置的计数方向,并不会使用,此时计数时钟和计数方向都处于编码器接口托管的状态


 

ARR一般设置为65535,最大量程,这样利用补码的特性,很容易得到负数。

把16位的无符号数转换为16位有符号数,根据补码的定义,65535对应-1,65534对应-2...


 TI1、TI2就对应的A、B相

 

反相的含义,TI1TI2进来,都会经过极性选择的部分,输入捕获模式下,极性选择是选择上升沿有效还是下降沿有效,但对于编码器接口,上升沿和下降沿都需要计次,所以在编码器模式下,不是边沿的极性选择,而是高低电平的极性选择。选择上升沿,就是信号直通过来,高低电平极性不反转;选择下降沿,就是信号通过一个非门进来,高低电平极性反转

所以想调整数据的加减方向,可以调整极性,把任意一个引脚反向;还可以直接把A、B相两个引脚换一下

这一节对应手册的编码器接口模式

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值