正交解码
通过寄存器字段 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 之间的跳转。
N/A | 计数器进行+1 计数(即产生递增计数) | |||
---|---|---|---|---|
QEPA | 上升沿 | 下降沿 | 高电平 | 低电平 |
QEPB | 低电平 | 高电平 | 上升沿 | 下降沿 |
N/A | 计数器进行-1 计数(即产生递减计数) | |||
QEPA | 上升沿 | 下降沿 | 低电平 | 高电平 |
QEPB | 高电平 | 低电平 | 上升沿 | 下降沿 |
另外正交计数解码还具有以下的功能:
-
相位异常检测:输入的 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 模块的输入滤波章节描述。