TIM编码器接口
1.简介
1.编码器接口:Encoder Interface
2.工作流程概述:可以接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而致使编码器的位置,旋转方向和旋转速度
3.每个高级定时器和通用定时器都拥有一个编码器接口
4.两个输入引脚借用了捕获通道1和通道2(CH1和CH2)
2.正交编码器
1.工作原理:当编码器旋转时,会输出下图所示的方波信号,旋转速度越快,方波频率越高,所以方波频率代表了速度,但无法测量方向(旋转方向无论正反,方波波形相同),可以用正转时,A相提前B相二分之Π,反转时,A相滞后B相二分之Π(正转时A,B相提前不绝对,是极性问题)
2.作用:可以测量位置,或者带有方向的速度值
3.与定义方向引脚相比正交信号精度更高(A,B相均可计次,相当于计次频率提高一倍),正交信号可以抗噪声(正交信号中,两个信号交替跳变,可通过设置一个抗噪声电路,在一个信号不变,另一个信号连续跳变时,计次值不会变化)
4.正交信号计次和区分旋转方向如图中右边表格所示
5.编码器输出模式:相当于从模式控制器,控制CNT的计数时钟和计数方向
3.编码器接口基本结构
4.编码器工作模式
执行逻辑:正转的状态都向上计数,反转的状态都向下计数
5.编码器示例图
1.均不反相
抗噪声原理:在编码器电平不断跳变时,计数器不断加,减,最后的值不变
2.TI1反相
1.输入捕获模式下,编码器极性选择是高低电平极性选择(选择上升沿,就是信号直通过来,高低电平极性不反转,选择下降沿参数,高低电平极性反转)
2.反相后实际给编码器接口的电平是将高低电平取反
6.程序编写流程
1.RCC开启时钟,开启GPIO和定时器的时钟
2.配置GPIO,把需要的引脚配置为输入模式
3.配置时基单元,选择预分频器
4.配置输入捕获单元(只有滤波器和极性有用)
5.配置编码器接口模式
6.调用TIM_Cmd启动定时器
7.所需库函数
TIM_EncoderInterfaceConfig:定时器编码器接口配置
参数含义
1.TIMx:选择定时器
2.TIM_EncoderMode:选择编码器模式
3.TIM_IC1Polarity,TIM_IC2Polarity:选择通道1和通道2的电平极性
8.上拉和下拉输入选择原则:外部模块默认高电平,选择上拉输入,输入高电平,外部模块默认输入低电平,选择下拉输入,输入低电平,不确定外部模块默认电平,选择浮空输入,但是会导致电平不断跳变
