0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于STM32编码器的接口模式

Q4MP_gh_c472c21 来源:嵌入式ARM 作者:嵌入式ARM 2020-09-21 14:26 次阅读

编码器是一种比较常见的产品(也可以理解为传感器),最常见的就是配合电机一起工作,那么,你对编码器有多了解呢?

一、关于编码器

编码器的种类有很多:增量式编码器、绝对值编码器,有轴或者无轴编码器,电压输出、推拉输出、集电极开路输出等等。但不管什么类型的编码器,其目的都类似,得到转动的角度,角速度、位移等。 本文讲述常见的增量式编码器,增量式编码器也可以叫正交编码器,也就是说可以通过其A、B的相位知道编码器是正转,还是反转,还可以根据编码器参数得出旋转了多少角度等。 常见的增量式编码器A、B、Z三根线代表什么意思呢?使用过编码器的人不难理解,这里简单给初学者讲述一下: A、B两线提供相位相差90度的脉冲信号,用其来计算旋转的角度;Z线为过零点线,也就是说每转一转,经过某一点都会输出一个脉冲信号,主要用于“过零校正”,三线的信号大致如下图:

有些编码器出来的线有一个对应的“非”信号线(如上图右边),其实主要用于抗干扰的。 更多关于编码器的描述,请网上搜索相关的知识进行了解,本文不再讲述。

二、STM32编码器接口模式

在STM32芯片中,都有这么一个定时器,叫通用定时器“General-purpose timers”,定时器里面存在这么一个模式,叫编码器接口模式“Encoder interface mode”。当然,具体可参看芯片对应的数据手册。

STM32提供的编码器接口模式主要针对的就是“正交编码器”,它可以利用定时器的“计数”功能,得出编码器计了多少个脉冲;同时,它可以根据编码器AB的相位得出编码器是正转,还是反转。

(图片来自STM32参考手册)

1.计算脉冲个数

有点类似TIM的捕获功能,捕获A相、B相的脉冲信号;只是编码器模式是捕获A(TI1)、B(TI2)相的边沿信号(如上图),相当于一个周期内,计4个脉冲信号的值。

2.计数器的增减(方向)

STM32的计数器会根据方向(+ 或者 -)来进行计数,TI1和TI2相位相差90,4个阶段的边沿,对应TI1和TI2不同电平信号,从这个不同的信号,硬件自身可以判断出其方向。在编码器模式下,有个寄存器(TIMx_CR1)中有一个方向位(DIR),会随着编码器旋转方向的改变而改变,我们可以通过读取该位来判断编码器的正转,还是反转。

3.TIM时基

STM32编码器接口模式,其实是通过利用AB相位TIM时基提供时钟信号,使其计数。

三、应用编程

相信看了上面的一些描述,大家应该对编码器有所理解了。其实,在STM32中,可以通过配置编码器模式对应的函数,就能实现获取编码器传感器上面的信息了。

使用STM32提供的标准外设库,或者使用STM32CubeMX工具很容易将TIM配置成编码器模式。

1.标准外设库配置编码器

TIM_EncoderInterfaceConfig,它就是编码器接口的配置函数。简单的只需要配置该函数,使能TIM,即可实现采集编码器上面的信息。(当然,需要复杂的操作,还需要做其他相应的配置)

2.STM32CubeMX配置

STM32CubeMX是一套快速开发的工具,让很多不了解STM32底层的朋友可以快速的在STM32上编写应用程序。

本文说的配置编码器接口,在某些TIM上存在一个“Combined Channel”配置,可以理解为“连接通道”,也算是TIM的一种复用模式。选择里面的“Encoder Mode”即可。

四、实例代码

本文提供的代码为一个使用标准外设库编写的简单Demo工程,其中里面附带一个工程(用于模拟编码器AB相波形的工程),如下:

该工程主要配置TIM的编码器模式,通过定时读取编码器的方向(DIR),和计数(CNT),并通过串口打印出来。

下载地址:

百度网盘:

链接:https://pan.baidu.com/s/1jH8yOqM

密码:t4kx

GitHub:

https://github.com/EmbeddDeveloper/STM32F4_TIM_Encoder

CSDN:

http://download.csdn.net/download/ybhuangfugui/10165086

提示:1.公号不支持外部链接,请复制链接到浏览器打开; 2.为防止失效,以上三个链接代码一样,若都不能下载了,可以换一个下载链接。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    41

    文章

    3360

    浏览量

    131476
  • STM32
    +关注

    关注

    2239

    文章

    10669

    浏览量

    348709

原文标题:编码器是什么?STM32编码器接口及应用编程

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于STM32编码器接口模式

    这个编码器模式可以检测出电机旋转方向,比如我下面这段程序,首先对CNT计数清零,10ms检测一下CNT计数,来判断接收到的编码盘的脉冲数
    发表于 09-03 10:17

    STM32学习笔记:编码器接口模式及应用

    编码器接口模式STM32芯片中,都有这么一个定时,叫通用定时“General-purpos
    发表于 05-10 07:00

    STM32增量式编码器接口模式解析

    编码器接口模式STM32芯片中,都有这么一个定时,叫通用定时“General-purpos
    发表于 05-28 08:00

    stm32定时编码器模式

    相会超前B相90度左右,相反CCW方向,B相会超前A相90度左右。不过方向判断stm32自己是可以完成的。一、编码器接口模式选择编码器
    发表于 08-09 06:55

    编码器测速原理及STM32编码器模式

    本问讲解了编码器测速原理及STM32编码器模式,文末有STM32编码器
    发表于 08-11 06:06

    aosini编码器是什么

    原文:编码器速度和方向检测,371电机方向与速度检测,stm32编码器接口模式转载链接:出处:yfrobot论坛作者:aosini
    发表于 08-12 06:29

    选择编码器接口模式的方法是什么

    编码器接口模式选择编码器接口模式的方法是:如果计数
    发表于 08-18 06:36

    STM32编码器模式及其使用

    STM32编码器的学习笔记顺时针旋转就是一个递增的计数逆时针旋转就是一个递减的计数编码器的使用:设置从
    发表于 09-03 07:11

    编码器接口模式是什么? 编码器配置源码的配置过程是怎样的?

    编码器接口模式是什么?编码器配置源码的配置过程是怎样的?
    发表于 11-23 06:03

    STM32F407定时编码器接口模式的相关资料推荐

    STM32F407定时编码器接口模式16位定时扩展32位
    发表于 01-12 06:17

    STM32编码器接口 以及应用编程

    STM32编码器接口,以及应用编程
    的头像 发表于 03-14 10:36 8977次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>编码器</b><b class='flag-5'>接口</b> 以及应用编程

    STM32——编码器测速原理及STM32编码器模式

    本问讲解了编码器测速原理及STM32编码器模式,文末有STM32编码器
    发表于 11-26 11:36 268次下载
    <b class='flag-5'>STM32</b>——<b class='flag-5'>编码器</b>测速原理及<b class='flag-5'>STM32</b><b class='flag-5'>编码器</b><b class='flag-5'>模式</b>

    STM32的正交编码器模式读取编码器的角度数据和速度

    STM32的正交编码器模式读取编码器的角度数据和速度
    发表于 12-08 17:06 137次下载
    <b class='flag-5'>STM32</b>的正交<b class='flag-5'>编码器</b><b class='flag-5'>模式</b>读取<b class='flag-5'>编码器</b>的角度数据和速度

    STM32F407定时器编码器模式简介

    STM32F407定时器编码器模式
    发表于 03-31 17:14 7817次阅读
    <b class='flag-5'>STM32</b>F407定时器<b class='flag-5'>编码器</b><b class='flag-5'>模式</b>简介

    详解stm32定时器的编码器模式

    增量式编码器在实际应用中还是很常见。stm32的定时器带的也有编码器模式。所用的编码器是有ABZ三相,其中ab相是用来计数,z相输出零点信号
    的头像 发表于 01-19 09:14 7252次阅读
    详解<b class='flag-5'>stm32</b>定时器的<b class='flag-5'>编码器</b><b class='flag-5'>模式</b>