Edit online

正交位置计数功能

功能框图

正交位置计数器的复位

通过寄存器字段 QEP_POS_CNT_RST,配置正交位置计数器四种复位模式:

  • 复位模式 1:QEP_IDX_MKR 信号复位位置计数器。

    QEP_IDX_MKR 信号是表示位置回到 0 点位置,QEP_IDX_MKR 信号的产生与输入管脚信号 QEP_I 有关,下面三图给出了三种不同 QEP_I 输入信号对应的采用 QEP_IDX_MKR 复位位置寄存器的例子,其中位置寄存器的计数表示采用的是十六进制。

    在复位模式 1 下,只要出现 QEP_IDX_MKR 信号,正交位置计数器则进行一次复位,若为正向前进,那么复位值为 0;若为反向前进,则复位值为终点值 QEP_POS_CNT_EPV。

    另外在此模式下,会进行锁存值的判断检测,在正向前进的情况下,如果 MKR 信号触发写入寄存器 QEP_POS_CNT_ICAPV 的数值与 QEP_POS_CNT_EPV 数值不一致,那么 QEP_POS_CNT_ERR_FLG 置 1 以及 QEP_POS_CNT_ERR_INT_FLG 置 1,表示产生位置计数的错误。

    QEP_IDX_MKR 信号复位位置计数:

    QEP_IDX_MKR 信号复位位置计数(A Gated QEP_I):

    QEP_IDX_MKR 信号复位位置计数(A & B Gated QEP_I)

  • 复位模式 2,QEP_POS_CNT_EP 信号复位位置计数。QEP_POS_CNT_EP 信号表示的是位置计数器发生计数溢出的信号。

    递增计数时,当计数达到 EPV 时,复位计数器数值为 0,同时产生 OVFL 中断信号,指示位置计数器计数上溢出。

    递减计数时,当计数达到 0 时,复位计数器数值为 EPV,同时产生 UNFL 信号,指示计数器计数下溢出。

  • 复位模式 3,QEP_FIDX_MKR 信号复位位置计数。QEP_FIDX_MKR 信号,为 QEP 模块使能后第一次检测到的 QEP_IDX_MKR 信号。

    此模式下,位置计数器会在 MKR 信号进行复位,如果为正向前进,那么复位至 0,如果为反向则复位至 EPV。由于后续不会再产生 MKR 信号,后续的位置计数器复位,通过 EP 信号复位,即按照模式 2 进行复位。

  • 复位模式 4,QEP_TMR_TO 信号复位位置计数。QEP_TMR_TO 信号,为 QEP 定时器超时产生的信号。

    此模式下,位置计数器会在 TO 超时信号进行复位,如果为正向前进,那么复位至 0,如果为反向则复位至 EPV。

正交位置计数器的捕获

位置计数器的捕获支持两种,Index 相关事件触发的捕获以及 Strobe 相关事件触发的捕获。

  • Index 相关事件的触发捕获,通过寄存器可选择触发捕获位置计数器的 Index 事件。

    QEP_POS_ICAP_MOD = 0x1,使能 IDX 信号的上升沿触发捕获位置计数器,位置计数值 V 写入 ICAPV。

    QEP_POS_ICAP_MOD = 0x2,使能 IDX 信号的下降沿触发捕获位置计数器,位置计数值 V 写入 ICAPV。

    QEP_POS_ICAP_MOD = 0x3,使能 MKR 信号触发捕获位置计数器,位置计数值 V 写入 ICAPV。

  • Strobe 相关事件的触发捕获,通过寄存器可选择触发捕获位置计数器的 Strobe 事件。

    QEP_POS_SCAP_MOD = 0x0,使能 SRB 信号的上升沿触发捕获位置计数器,位置计数值 V 写入 SCAPV。

    QEP_POS_SCAP_MOD = 0x1,使能根据方向进行捕获。正向前进时,以 SRB 上升沿进行捕获,反向前进时,以 SRB 下降沿进行捕获,位置计数值 V 写入 SCAPV。

正交位置计数器的初始化

位置计数器的初始化,即更新当前位置计数器的计数值,支持三种模式的初始化:

  • Index 相关事件的初始化,通过寄存器可选择触发位置计数器初始化的 Index 事件。

    QEP_POS_IDX_INIT = 0x2,使能 IDX 信号的上升沿触发位置计数器的初始化,位置起点值 SPV 写入位置计数器。

    QEP_POS_IDX_INIT = 0x3,使能 IDX 信号的下降沿触发位置计数器的初始化,位置起点值 SPV 写入位置计数器。

  • Strobe 相关事件的初始化,通过寄存器可选择触发位置计数器初始化的 Strobe 事件。

    QEP_POS_SRB_INIT = 0x2,使能 SRB 信号的上升沿触发位置计数器的初始化,位置起点值 SPV 写入位置计数器。

    QEP_POS_SRB_INIT = 0x3,使能 SRB 信号的下降沿触发位置计数器的初始化,位置起点值 SPV 写入位置计数器。

  • 软件初始化,寄存器 INIT 字段置 1 可触发位置计数器初始化,位置起点值 SPV 写入位置计数器。

QEP_SOUT 信号

QEP_SOUT 信号,为位置计数器达到 QEP_POS_CNT_CMPV 的时候产生的信号,此信号只有在 QEP_POS_CMP_EN = 1 的时候才产生。QEP_SOUT 信号支持极性的控制,以及脉宽长度的调节。

另外寄存器 QEP_POS_CNT_CMPV 的更新方式支持立即更新以及影子更新模式,影子更新的加载点也可以通过寄存器配置,具体配置见 QEP_POS_CMP_LP 和 QEP_POS_CMP_UPDT_MOD 的描述。

QEP_SOUT 信号的输出方式见位置比较输出章节。