STM32F429第二十六篇之编码器功能

前言

编码器功能是F429的定时器重要的功能之一,在项目中经常要用到。本章主要介绍F429的编码器功能。

主要参考文献:

  • RM0090参考文档

编码器

编码器通常可以分成以下两类:

  • 增量式编码器:输出编码器的旋转量
  • 绝对式编码器:直接输出编码器的位置

下面简单介绍一下需要用到F429编码器模块的增量式编码器。

在这里插入图片描述
如上图所示,增量式编码器一般输出通道A和通道B两组信号。这两组信号之间有90度的相位差(即四分之一的相位差),通过判断脉冲的频率即可得到编码器的旋转速度,而通过判断通道A和通道B之间的相位关系,即可判断编码器的旋转方向。一般来说,当编码器正转时,通道A的脉冲信号相位超前通道B,而当编码器反转时,正好相反,通道B的脉冲信号相位超前通道A。

功能框图

在这里插入图片描述
如上图所示,编码器模块的功能很简单:

  1. 信号通过通道1和通道2进入计时器模块。
  2. 信号经过编码器模块的处理,形成可以让计数器增减的脉冲信号。
  3. 脉冲信号经过预分频,驱动计数器增减。

通过以上分析,可知编码器模块的最简单使用方法为:

  1. 配置完成定时器的编码器初始化。
  2. 没经过一段固定时间,读取编码器的值CNT。

功能

F429选择编码器接口模式时,共有三种计数模式,通过TIMx_SMCR位的SMS位配置:

  1. 仅在TI1处计数
  2. 仅在TI2处计数
  3. 在TI1和TI2处都计数
    在这里插入图片描述

通过编程 TIMx_CCER 寄存器的 CC1P 和 CC2P 位,选择 TI1 和 TI2 极性。如果需要,还可 对输入滤波器进行编程。CC1NP 和 CC2NP 必须保持低电平。

在 TIMx_CR1 寄 存器的 CEN 位中写入“1”,使能计数器。根据该信号转换序列,计数器相应递增或递减计数,同时硬件对 TIMx_CR1 寄存器的 DIR 位进行相应修改

因此,在启动前必须先配置 TIMx_ARR。计数器从 0 递增计数到 ARR,或从 ARR 递减计数到 0。
在这里插入图片描述
定时器配置为编码器接口模式时,会提供传感器当前位置的相关信息。使用另一个配置为捕获模式的定时器测量两个编码器事件之间的周期,可获得动态信息(速度、加速度和减速度)。根据两个事件之间的时间间隔,还可定期读取计数器。如果可能,可以将计数器值锁存到第三个输入捕获寄存器来实现此目的(捕获信号必须为周期性信号,可以由另一个定时器产生);还可以通过由实时时钟生成的DMA 请求读取计数器值

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值