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.上拉和下拉输入选择原则:外部模块默认高电平,选择上拉输入,输入高电平,外部模块默认输入低电平,选择下拉输入,输入低电平,不确定外部模块默认电平,选择浮空输入,但是会导致电平不断跳变

相关推荐
Zw-awa1 小时前
标准输入输出与 MicroLIB:C 语言的终端去了哪里
stm32
糖糖单片机设计3 小时前
基于 STM32 的公交车定位与报站系统
stm32·单片机·嵌入式硬件
祖力553 小时前
快速学会51单片机基础
单片机·嵌入式硬件·51单片机
H_oRIZoN_4 小时前
Linux入门DAY41(51 单片机 串口与通信协议)
linux·运维·单片机
jianqiang.xue4 小时前
ESP-IDF保姆级入门41|产品级故障排查与稳定性优化全解:死机复位排查/内存泄漏定位/性能瓶颈分析/长期稳定性测试,掌握量产运维问题定位方法论
单片机·mcu·物联网·esp32
单片机仿真设计5 小时前
【proteus仿真】基于 STM32 的林区环境监控系统设计
stm32·单片机·proteus
Doraemomo6 小时前
IMX6ULL裸机开发——GPIO的使用
单片机·嵌入式硬件
笨笨饿7 小时前
#138_解决Codex要五次回复的问题
linux·stm32·单片机·嵌入式硬件·mcu·物联网·嵌入式实时数据库
晊晌_h7 小时前
嵌入式从0到精通——51单片机(二)
嵌入式硬件·51单片机
云泽8087 小时前
STM32 USART 详解(七):超时设置、非阻塞发送与 ReadLine 实现
stm32·单片机·嵌入式硬件