Edit online

正交解码

19 Nov 2024
Read time: 2 minute(s)

通过寄存器字段 QEP_DEC_CNT_MODE,可配置解码器的以下几种解码方式:

  • QEP_DEC _CNT_MODE = 0x0,正交计数解码

  • QEP_DEC _CNT_MODE = 0x1,方向计数解码

  • QEP_DEC _CNT_MODE = 0x2,递增计数解码

  • QEP_DEC _CNT_MODE = 0x3,递减计数解码

正交计数解码

正交计数解码方式,外部信号 QEP_A 和 QEP_B 输入为正交信号,根据 QEP_A 与 Q_EPB 的信号的相位信息解析出提供后续解码计数器的步进信号 QEP_CLK 以及步进方向信号 QEP_DIR,如正交计数解码所示。

正交相位(格式 AB)的正向和反向步进中,QEP_A 和 QEP_B 信号组成的相位 AB 在正向步进以及反向步进的正确跳转,错误的跳转为 PH_00 与 PH_11 之间的跳转,以及 PH_10 和 PH_01 之间的跳转。

1. 正交解码方式
N/A 计数器进行+1 计数(即产生递增计数)
QEPA 上升沿 下降沿 高电平 低电平
QEPB 低电平 高电平 上升沿 下降沿
N/A 计数器进行-1 计数(即产生递减计数)
QEPA 上升沿 下降沿 低电平 高电平
QEPB 高电平 低电平 上升沿 下降沿

ph_ab

1. 正交相位(格式 AB)的正向和反向步进


2. 正交计数解码

另外正交计数解码还具有以下的功能:

  • 相位异常检测:输入的 QEP_A 以及 QEP_B 的相位不符合正常的相位跳转模式,则产生正交信号异常的中断信号 QEP_QUADPH_ERR;

  • 互换功能:通过寄存器字段 QEP_SWAP_AB 配置为 1, 可将 QEP_A 和 QEP_B 的输入信号互换。

方向计数解码

方向计数解码方式,则无需经过正交信号的解码,外部信号 QEP_A 和 QEP_B 输入分别作为时钟信号 QEP_CLK 和方向信号 QEP_DIR,QEP_DIR 决定计数的方向,QEP_CLK 用于控制计数的步进。 默认的配置下(即输入信号的极性未进行方向反相),QEP_DIR 为高电平的时候,表示正交计数器进行递增计数,QEP_DIR 为低电平的时候,表示正交计数器进行递减计数。 另外 QEP_A 的信号可以配置为上升沿触发一次 QEP_CLK 有效边沿,或上下沿均可触发一次的 CLK 有效边沿。



递增/递减计数解码

内部信号 QEP_DIR 固定选定为递增/递减的方向,此时只需 QEP_A 的输入信号,而 QEP_B 信号无效。另外 QEP_A 的信号可以配置为上升沿触发一次 QEP_CLK 有效边沿,或上下沿均可触发一次的 QEP_CLK 有效边沿。

CW/ CCW 计数解码

CW/ CCW 计数解码方式包括高有效的 CW/ CCW 解码计数和低有效的 CW/ CCW 解码计数:

  • 高有效的 CW/CCW 解码方式



    高有效是指低电平为无效电平,高电平为有效电平,当从低电平跳至高电平产生的上升边沿为有效边沿。若此有效边沿出现在 QEP_A 信号,即 CW 信号,那么则位置计数器正向加 1;若此有效边沿出现在 QEP_B 信号,即 CCW 信号,那么则位置计数器反向减 1。

    另外如若出现 QEP_A 和 QEP_B 同时处于有效电平高电平时,则产生 CW/ CCW 错误中断信号,QEP_CW_CCW_ERR_INT。

  • 低有效的 CW/CCW 解码方式



    低有效是指高电平为无效电平,低电平为有效电平,当从高电平跳至低电平产生的下降边沿为有效边沿。若此有效边沿出现在 QEP_A 信号,即 CW 信号,那么则位置计数器正向加 1;若此有效边沿出现在 QEP_B 信号,即 CCW 信号,那么则位置计数器反向减 1。

    另外如若出现 QEP_A 和 QEP_B 同时处于有效电平低电平时,则产生 CW/CCW 错误中断信号,QEP_CW_CCW_ERR_INT。

输入反相

QEP 模块的输入信号 QEP_A、QEP_B、QEP_I 和 QEP_S,均可以通过寄存器配置相应的输入反相器是否使能。使能后,输入信号为低有效信号。

输入 QEP_IGATE

输入 QEP 模块的输入信号 QEP_I 可以通过寄存器字段 QEP_IGATE 配置是否需要使能信号 QEP_S 对 QEP_I 进行 Gate 处理,处理方式如下图。



位置比较输出

QEP Position Counter Function 模块输出的信号 QEP_SOUT 信号,是位置计数器达到寄存器 QEP_POS_CNT_CMPV 时所产生的脉冲信号,该信号输出至正交解码模块,这里可以通过寄存器字段 QEP_SYNC_OUT_PIN 选择,使能输出为 QEP_I 或 QEP_S 信号。

QEP 模块的信号 QEP_A、QEP_B 为外部输入信号,支持输入信号的滤波。而 QEP 模块的信号 QEP_I、QEP_S 为双向信号,当设置为输入信号时,支持输入信号的滤波。

输入滤波

输入滤波功能,主要是用于滤除噪音信号,功能描述可以参考 EPWM 模块的输入滤波章节描述。