打印
[其他]

MM32 TIM编码器模式

[复制链接]
4097|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、编码器功能简介
在马达类控制应用中,正交编码器可以反馈马达的转子位置及转速信号。MM32系列MCU集成了正交编码器接口,便于客户使用。先简单回顾下编码器原理:如果两个信号相位差为90度,则这两个信号为正交。由于两个信号相差90度,因此可以根据两个信号的先后来判断方向、根据每个信号脉冲数量的多少及整个编码轮的周长即可算出当前行走的距离、如果再加上定时器的话还可计算出速度。
二、MM32编码器工作分析
编码器接口模式通过设置 tiMx_SMCR 寄存器中的 SMS,MM32编码器模式共有3种。

  
通过设置 TIMx_CCER 寄存器中的 CC1P 和 CC2P 位,可以选择 TI1 和 TI2 极性;如果需要,还可对输入滤波器编程。
两个输入 TI1 和 TI2 被用来作为增量编码器的接口。下表,假定计数器已经启动(TIMx_CR1寄存器中的 CEN = 1),则计数器由每次在 TI1FP1 或 TI2FP2 上的有效跳变驱动。 TI1FP1 和TI2FP2 是 TI1 和TI2 在通过输入滤波器和极性控制后的信号;如果没有滤波和变相,则TI1FP1 = TI1;如果没有滤波和变相,则 TI2FP2= TI2。根据两个输入信号的跳变顺序,产生了计数脉冲和方向信号。依据两个输入信号的跳变顺序,计数器向上或向下计数。不管计数器是依靠 TI1 计数、还是依靠 TI2 计数或是同时依靠 TI1 和 TI2 计数。
编码器接口模式基本上相当于使用了一个带有方向选择的外部时钟。这意味着计数器只在 0到TIMx_ARR 寄存器的自动装载值之间连续计数(根据方向,或是 0 到 ARR 计数,或是 ARR到 0 计数)。所以在开始计数之前必须配置 TIMx_ARR;同样,捕获器、比较器、预分频器、触发输出特性等仍工作如常。在这个模式下,计数器依照增量编码器的速度和方向被自动的修改,因此计数器的内容始终指示着编码器的位置。计数方向与相连的传感器旋转的方向对应。下表列出了所有可能的组合,假设 TI1 和 TI2 不同时变换。

一个外部的增量编码器可直接与 MCU 连接而不需要外部接口逻辑。但是,一般使用比较器将编码器的差动输出转换到数字信号,这大大增加了抗噪声干扰能力。编码器输出的第三个信号表示机械零点,可把它连接到一个外部中断输入并触发一个计数器复位。
三、MM32编码器实例代码配置解析
下图是一个计数器操作的实例,显示了计数信号的产生和方向控制。它还显示了当选择了双边沿时,输入抖动是如何被抑制的;抖动可能会在传感器的位置靠近一个转换点时产生。在这个例子中,我们假定寄存器配置如下:
CC1S = ‘01’(TIMx_CCMR1 寄存器, IC1FP1 映射到 TI1)
CC2S = ‘01’(TIMx_CCMR2 寄存器, IC2FP2 映射到 TI2)
CC1P= ‘0’(TIMx_CCER 寄存器, IC1FP1 不反相, IC1FP1 = TI1)
CC2P = ‘0’(TIMx_CCER 寄存器, IC2FP2 不反相, IC2FP2 = TI2)
SMS = ‘011’(TIMx_SMCR 寄存器,所有的输入均在上升沿和下降沿有效)
CEN = ‘1’(TIMx_CR1 寄存器,计数器使能)
编码器模式下的计数器操作实例

下图为当 IC1FP1 极性反相时计数器的操作实例(CC1P = ‘1’,其他配置与上例相同)
              
    IC1FP1 反相的编码器接口模式实例

当定时器配置成编码器接口模式时,提供传感器当前位置的信息。使用第二个配置在捕获模式定时器测量两个编码器事件的间隔,可以获得动态的信息(速度,加速度,减速度)。指示机械零点的编码器输出可被用做此目的。根据两个事件间的间隔,可以按照固定的时间读出计数器。
代码配置:
1、 以MM32L073为例,其他系列可参考以下代码配置,这里我们做一个简单的演示程序。首先来看main 函数。
int main(void)
{
delay_init();  //初始化delay 函数
TIM3_Counter_Init(); //配置TIM3编码器模式
while(1){}
}
2、接下来,我们来看TIM的编码器配置函数。

实验现象:
1、下载程序进入调试模式(KEIL 环境)并全速运行,观察TIM3计数器值为0,如下图所示。

2、从外部通过PA6, PA7输入一段波形如下图所示,根据我们设置的双边计数,从波形上看,计数器应该计数增加8。

3、观察计数器,此时计数为8,与理论值符合。








使用特权

评论回复
沙发
两只袜子| | 2021-4-12 16:53 | 只看该作者
学习了,很好的理论知识贴

使用特权

评论回复
板凳
jcky001| | 2021-4-12 16:58 | 只看该作者
学习了

使用特权

评论回复
地板
yangjiaxu| | 2021-5-23 18:04 | 只看该作者
讲的很详细 收藏

使用特权

评论回复
5
734774645| | 2021-5-27 15:54 | 只看该作者

编码器工作原理
  绝对脉冲编码器:APC
  增量脉冲编码器:SPC
  两者一般都应用于速度控制或位置控制系统的检测元件.
  旋转编码器是用来测量转速的装置。它分为单路输出和双路输出两种。技术参数主要有每转脉冲数(几十个到几千个都有),和供电电压等。单路输出是指旋转编码器的输出是一组脉冲,而双路输出的旋转编码器输出两组相位差90度的脉冲,通过这两组脉冲不仅可以测量转速,还可以判断旋转的方向。
  增量型编码器与绝对型编码器的区分
  编码器如以信号原理来分,有增量型编码器,绝对型编码器。
  增量型编码器 (旋转型)

使用特权

评论回复
6
734774645| | 2021-5-27 15:55 | 只看该作者
工作原理:
  由一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成A、B、C、D,每个正弦波相差90度相位差(相对于一个周波为360度),将C、D信号反向,叠加在A、B两相上,可增强稳定信号;另每转输出一个Z相脉冲以代表零位参考位。
  由于A、B两相相差90度,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。
  编码器码盘的材料有玻璃、金属、塑料,玻璃码盘是在玻璃上沉积很薄的刻线,其热稳定性好,精度高,金属码盘直接以通和不通刻线,不易碎,但由于金属有一定的厚度,精度就有限制,其热稳定性就要比玻璃的差一个数量级,塑料码盘是经济型的,其成本低,但精度、热稳定性、寿命均要差一些。
  分辨率—编码器以每旋转360度提供多少的通或暗刻线称为分辨率,也称解析分度、或直接称多少线,一般在每转分度5~10000线。
  信号输出:
  信号输出有正弦波(电流或电压),方波(TTL、HTL),集电极开路(PNP、NPN),推拉式多种形式,其中TTL为长线差分驱动(对称A,A-;B,B-;Z,Z-),HTL也称推拉式、推挽式输出,编码器的信号接收设备接口应与编码器对应。
  信号连接—编码器的脉冲信号一般连接计数器、PLC、计算机,PLC和计算机连接的模块有低速模块与高速模块之分,开关频率有低有高。
  如单相联接,用于单方向计数,单方向测速。
  A.B两相联接,用于正反向计数、判断正反向和测速。
  A、B、Z三相联接,用于带参考位修正的位置测量。
  A、A-,B、B-,Z、Z-连接,由于带有对称负信号的连接,电流对于电缆贡献的电磁场为0,衰减最小,抗干扰最佳,可传输较远的距离。
  对于TTL的带有对称负信号输出的编码器,信号传输距离可达150米。
  对于HTL的带有对称负信号输出的编码器,信号传输距离可达300米。

使用特权

评论回复
7
kiwis66| | 2021-6-18 17:49 | 只看该作者
看了半天,不懂啊

使用特权

评论回复
8
mutable| | 2021-6-23 17:26 | 只看该作者
734774645 发表于 2021-5-27 15:54
编码器工作原理
  绝对脉冲编码器:APC
  增量脉冲编码器:SPC

这个转盘很形象

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

265

主题

1168

帖子

3

粉丝