F28377D双核开发经验(eQEP)第二篇

实战派 ESP32-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

目录

3.eQEP模块整体结构描述

3.1 eQEP模块输入引脚

3.1.1 QEPxA/XCLK and QEPxB/XDIR

3.1.2 QEPI: Index or Zero Marker

3.1.3 QEPS: Strobe Input

3.2 寄存器地址映射

3.3 eQEP模块功能描述

4. 正交解码单元(QDU) 

4.1 位置计数器输入模式 

4.1.1 正交计数模式

4.1.2 方向计数模式

4.1.3 增计数模式

4.1.4 减计数模式

4.2 输入极性选择

4.3 位置比较同步输出功能


        接F28377D双核开发经验(eQEP)第一篇的内容,继续介绍F28377D的eQEP模块,第一篇文章链接如下:https://blog.csdn.net/TZ3200/article/details/143192113?spm=1001.2014.3001.5501icon-default.png?t=O83Ahttps://blog.csdn.net/TZ3200/article/details/143192113?spm=1001.2014.3001.5501        

        本篇为eQEP模块整体结构描述和正交解码单元(QDU)介绍。

3.eQEP模块整体结构描述

        本部分介绍了eQEP模块输入、寄存器地址映射和功能描述。

3.1 eQEP模块输入引脚

        eQEP输入包括两个用于正交时钟模式(此时为EQEPxA和EQEPxB)或方向计数模式(此时为XCLK和XDIR)的引脚,一个索引脉冲信号输入引脚(EQEPxI)和一个用来触发锁存eQEP模块内部计数器值的引脚(EQEPxS)。eQEP模块要求QEPA、QEPB和QEPI在进入模块之前与SYSCLK同步。

3.1.1 QEPxA/XCLK and QEPxB/XDIR

        这两个引脚可以用于正交时钟模式或方向计数模式。

        正交时钟模式:编码器给eQEP模块提供两个相位相差90度的方波信号(A和B)。 这种相位关系用于确定电机转子的旋转方向、根据脉冲信号的频率计算转子当前转速以及根据脉冲信号的个数计算转子当前位置。对于顺时针旋转,QEPA信号超前QEPB信号,反之亦然。eQEP模块的正交解码器使用这两个输入来生成正交时钟和旋转方向信号。

        方向计数模式:在方向计数模式下,方向信号(XDIR)和时钟信号(XCLK直接由外部源提供。一些位置编码器具有这种类型的输出,而不是正交输出。QEPA引脚作为时钟输入引脚,而QEPB引脚作为方向输入引脚。

3.1.2 QEPI: Index or Zero Marker

        编码器使用一个索引信号来确定一个绝对的起始位置,从这个位置开始,位置信息通过正交脉冲进行增量编码。eQEP模块的这个引脚连接到编码器的索引输出(通常为编码器的Z相)可以根据该索引信号在每个旋转周期重置位置计数器。

3.1.3 QEPS: Strobe Input

        这路信号用来锁存eQEP模块内部的计数器的值,通常这路信号由传感器或者限位开关提供,用来提醒控制器电机已经转到指定位置。

3.2 寄存器地址映射

        表1列出了寄存器名称及其存储位置、大小和复位值。

表1 寄存器名称、位置、大小、复位值

3.3 eQEP模块功能描述

eQEP外设模块包含以下主要功能部分(如图1所示)

  1. 正交解码单元(QDU) 
  2. 用于位置测量的位置计数器和控制单元(PCCU) 
  3. 用于低速测量的正交边沿捕获单元(QCAP) 
  4. 用于速度/频率测量的单元时间基准(UTIME) 
  5. 用于检测转动停止的看门狗定时器(QWDOG)
图1 eQEP模块整体结构框图

 

4. 正交解码单元(QDU) 

        图2展示了正交解码单元(QDU)的结构框图。

图2 QDU结构框图

4.1 位置计数器输入模式 

        位置计数器的输入模式由QDECCTL[QSRC]决定,主要包括以下四种:正交计数模式、方向计数模式、增计数模式以及减计数模式。

4.1.1 正交计数模式

        在正交计数模式下,方向判断逻辑电路通过判断QEPA及QEPB之间的相位关系来获得旋转方向,并存储在QEPSTS[QDF]中。表2和图3分别以真值表和状态机方式来说明方向判断逻辑电路的工作过程。

表2 方向判断逻辑电路真值表

 

图3 正交解码状态机

        EQPA及EQPB的上升沿和下降沿都将作为位置计数器的触发事件,因此eQEP逻辑产生的计数脉冲的频率是每个输人脉冲的4倍,图4给出了eQEP模块计数时钟及方向的解码逻辑。
        正常情况下QEPA与QEPB之间的相位将相差90°,当系统检测到两者之间的相位同步时,会将QFLG寄存器中的相位错误标志位PHE置位,同时可以选择产生中断事件。

图4 时钟及方向解码逻辑

        正常情况下QEPA连接到解码器的输入端A,QEPB连接到解码器的输入端B,可通过设定QDECCTL寄存器中的SWAP位将两者交换,即 QEPA接到 B,而 QEPB 接到 A。

4.1.2 方向计数模式

        有些编码器直接提供方向信号以及计数时钟,在这种情况下可使用方向计数模式,QEPA直接为位置计数器提供计数脉冲XCLK,QEPB为位置计数器提供方向信息XDIR。当QEPB为高时,位置计数器在每个计数时钟的上升沿增加;当QEPB为低时,位置计数器在每个计数时钟的上升沿减小。

4.1.3 增计数模式

        计数器的方向直接被硬件设定为增计数模式,位置计数器用来测量QEPA输入信号的频率。将QDECCTL[XCR]置位将使能QEPA输人的2个边沿都产生计数脉冲,从而将检测精度提高一倍。

4.1.4 减计数模式

        计数器的方向直接被硬件设定为减计数模式,位置计数器用来测量QEPA输入信号的频率。将QDECCTL[XCR]置位将使能QEPA输入的2个边沿都产生计数脉冲,从而将检测精度提高一倍。

4.2 输入极性选择

        eQEP模块的每路输人信号都可通过 QDECCTL[8:5]位进行取反,例如,将QDECCTL[QIP] 置位会将索引脉冲取反。

4.3 位置比较同步输出功能

        eQEP模块包括一个位置比较单元,当位置计数寄存器QPOSCNT 的值与位置比较寄存器QPOSCMP的值相等时会产生一个同步信号。此路同步信号可通过EQEPI或EQEPS引脚输出。

        将QDECCTL[SOEN]置位将使能比较同步输出功能,通过 QDECCTL[SPSEL]可在EQEPI和EQEPS之间选择同步信号的输出引脚。


第三篇文章:F28377D双核开发经验(eQEP)第三篇-CSDN博客

实战派 ESP32-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值