QEP 模块

QEP 模块主要由下列模块构成:
-
Quad Decoder:正交解码模块,用于将正交信号 A 相、B 相进行正交信号的解码,获得后续 QEP Position Counter 需要的计数时钟 QEP_CLK 以及计数方向 QEP_DIR 等信息。
-
QEP Position Counter Function:位置计数器功能模块,根据正交解码模块解析的信号进行位置计数器的计数。
-
QEP Capture Function:QEP 捕捉功能,用于捕捉特定的位置距离所需要的时间,从而计算转速等信息。
-
QEP Timer:QEP 定时器,用于产生单位时间间隔的信号。
-
QEP Watchdog Timer:QEP 看门狗定时器。用于检测预设的时间内是否仍有有效 QEP_CLK 信号。
-
QEP Interrupt:QEP 中断模块,用于产生中断信号。
-
HALL Input Monitor:霍尔输入检测模块,可以用于检测霍尔信号的电平以及信号跳变边沿。
SYS_CLK 为 QEP 的工作时钟,典型频率为 200 MHz。
功能描述
正交解码
通过寄存器字段 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_DEC _CNT_MODE = 0x4,高有效 CW/CCW 计数解码
-
QEP_DEC _CNT_MODE = 0x5,低有效 CW/CCW 计数解码
正交计数解码
正交计数解码方式,外部信号 QEP_A 和 QEP_B 输入为正交信号,根据 QEP_A 与 Q_EPB 的信号的相位信息解析出提供后续解码计数器的步进信号 QEP_CLK 以及步进方向信号 QEP_DIR,如正交计数解码所示。

另外正交计数解码还具有以下的功能:
-
相位异常检测:输入的 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 模块的输入滤波章节描述。
正交位置计数功能
功能框图

正交位置计数器有四种复位模式,可通过寄存器字段 QEP_POS_CNT_RST 配置:
-
复位模式 1:QEP_IDX_MKR 信号复位位置计数器,即只要出现 QEP_IDX_MKR 信号,正交位置计数器则进行一次复位:注: 复位模式 1 下,会进行锁存值的判断检测。
- 若为正向前进,复位值为 0。
锁存值的判断检测:在正向前进的情况下,如果 MKR 信号触发写入寄存器 QEP_POS_CNT_ICAPV 的数值与 QEP_POS_CNT_EPV 数值不一致,则 QEP_POS_CNT_ERR_FLG 置 1 且 QEP_POS_CNT_ERR_INT_FLG 置 1,表示产生位置计数的错误。
- 若为反向前进,复位值为终点值 QEP_POS_CNT_EPV。
QEP_IDX_MKR 信号是表示位置回到 0 点位置。QEP_IDX_MKR 信号的产生与输入管脚信号 QEP_I 有关。以下三张示例图片分别描述了三种不同 QEP_I 输入信号所对应的 QEP_IDX_MKR 复位位置寄存器,其中位置寄存器的计数采用十六进制表示。-
QEP_IDX_MKR 信号复位位置计数:
-
QEP_IDX_MKR 信号复位位置计数 (A Gated QEP_I):
-
QEP_IDX_MKR 信号复位位置计数 (A & B Gated QEP_I)
- 若为正向前进,复位值为 0。
-
复位模式 2,QEP_POS_CNT_EP 信号复位位置计数。
QEP_POS_CNT_EP 信号表示位置计数器发生计数溢出的信号:- 递增计数时,当计数达到 QEP_POS_CNT_EPV 时,复位计数器数值为 0,同时产生 QEP_POS_CNT_OVFL 中断信号,指示位置计数器计数上溢出。
- 递减计数时,当计数达到 0 时,复位计数器数值为 QEP_POS_CNT_EPV,同时产生 QEP_POS_CNT_UNFL 信号,指示计数器计数下溢出。
由于后续不会再产生 QEP_FIDX_MKR 信号,后续的位置计数器则通过 QEP_POS_CNT_EP 信号复位,即按照模式 2 进行复位。
-
复位模式 3,QEP_FIDX_MKR 信号复位位置计数。QEP_FIDX_MKR 信号,为 QEP 模块使能后第一次检测到的 QEP_IDX_MKR 信号。
此模式下,位置计数器会在 QEP_FIDX_MKR 信号进行复位:- 如果为正向前进,复位至 0。
- 如果为反向则复位至 QEP_POS_CNT_EPV。
-
复位模式 4,QEP_TMR_TO 信号复位位置计数。QEP_TMR_TO 信号,为 QEP 定时器超时产生的信号。
此模式下,位置计数器会在 QEP_TMR_TO 超时信号进行复位:- 如果为正向前进,复位至 0
- 如果为反向,复位至 QEP_POS_CNT_EPV。
正交位置计数器的捕获
位置计数器的捕获支持两种,Index 相关事件触发的捕获以及 Strobe 相关事件触发的捕获。
-
Index 相关事件的触发捕获,通过寄存器可选择触发捕获位置计数器的 Index 事件。
QEP_POS_ICAP_MOD = 0x1,使能 QEP_IDX 信号的上升沿触发捕获位置计数器,位置计数值 QEP_POS_CNT_V 写入 ICAPV。
QEP_POS_ICAP_MOD = 0x2,使能 QEP_IDX 信号的下降沿触发捕获位置计数器,位置计数值 QEP_POS_CNT_V 写入 ICAPV。
QEP_POS_ICAP_MOD = 0x3,使能 MKR 信号触发捕获位置计数器,位置计数值 QEP _POS_CNT_V 写入 ICAPV。
-
Strobe 相关事件的触发捕获,通过寄存器可选择触发捕获位置计数器的 Strobe 事件。
QEP_POS_SCAP_MOD = 0x0,使能 SRB 信号的上升沿触发捕获位置计数器,位置计数值 QEP_POS_CNT_V 写入 SCAPV。
QEP_POS_SCAP_MOD = 0x1,使能根据方向进行捕获。正向前进时,以 SRB 上升沿进行捕获,反向前进时,以 SRB 下降沿进行捕获,位置计数值 QEP_POS_CNT_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 信号的输出方式见位置比较输出章节。
正交时间捕捉功能

时间捕捉功能的框图如上图所示,具体的功能描述如下:
-
SYS_CLK 信号,利用寄存器字段 DIV 进行分频,分频后提供给 Capture 定时器以及 Capture 控制。
-
QEP_CLK 信号,表示 1 次位置计数器的计数,经过 Unit Distance Control 功能模块对 QEP_CLK 进行分频,对应就可以获得单位距离的信号 QEP_UD_EVNT,下图为设定 QEP_SET_UDIST = 0x1,即 2 次 CLK 的对应产生一次的 EVNT。
-
QEP_UD_EVNT 信号,会触发 Capture 控制模块进行 Capture 定时器的数值捕获,进而计算与上次数值作差,写入 DELT 寄存器中,随后对 Capture 定时器进行复位至 0,如下图所示。
-
通过 QEP_UD_EVNT 信号触发获得 QEP_CAP_DELT,对于电机的应用,可以实现 T 法的速度计算。
-
QEP_TMR_TO 信号,为 Timer 的超时信号 (可参考章节 QEP Timer),也可以触发寄存器 TMRV 锁存至 LH,而 DELT 锁存至 LH。
-
通过 TO 信号触发读取 QEP_POS_TOCAP 的位置值,对于电机的应用,可以实现 M 法的速度计算。
-
QEP_DIR 输入至方向检测模块,此模块检测在 EVNT 的有效边沿间隔中是否出现方向改变的状态,若出现方向改变,QEP_CAP_DERR 信号置 1。
QEP Capture Timer 时间捕获:

QEP Hall Monitor
QEP Hall Monitor 的功能用于检测三路管脚输入信号 QEP_HA0/ 1/ 2 的电平:
-
三路输入信号均配有滤波模块,支持电路的硬件滤波。
-
三路输入信号的电平可以通过寄存器 STS 读取,在寄存器字段配置 QEP_HALL_IN_POL = 0(正极性)的情况下,0 代表低电平,1 代表高电平,若为负极性则相反。
-
三路的输入信号若由其中一路发生改变,则产生中断,读取状态寄存器 FLG 可以得出发生信号改变的通道号。
QEP Timer
QEP Timer 的功能框图如下所示,当寄存器 V 的数值大于 QEP_TMR_PRD_V 时,产生 TO 超时信号。

QEP Watchdog Timer
QEP Watchdog Timer 的功能框图如下所示,QEP_CLK 信号用于对看门狗定时器的复位,当无有效的 CLK 信号出现时,看门狗计时器一直计数,当 V 的数值大于 QEP_WDTMR_PRD_V 时,产生 TO 超时信号。

中断
QEP 模块支持产生中断,通过寄存器可以使能以下的信号经过 OR 逻辑得出 QEP 模块的中断信号 QEP_INT:
-
QEP_TMRTO:指示 QEP 计数器超时的信号
-
QEP_ICAP:指示发生 Index 相关事件引起的捕获位置计数器的信号
-
QEP_SCAP:指示发生 Strobe 相关事件引起的捕获位置计数器的信号
-
QEP_POS_CMP:指示产生了位置比较信号
-
QEP_POS_CMP_RDY:指示位置比较寄存器 QEP_POS_CNT_CMPV 的数值需要更新
-
QEP_POS_CNT_OVFL:指示位置计数器发生上溢出的信号
-
QEP_POS_CNT_UDFL:指示位置计数器发生下溢出的信号
-
QEP_WDTO:指示看门狗计时器发生超时的信号
-
QEP_DIR_CHG:指示 QEP 的正交解析的方向信号发生了改变
-
QEP_QUADPH_ERR:指示 QEP 的正交解析的相位信号发生错误
-
QEP_POS_CNT_ERR:指示 QEP 的位置计数器计数出错的信号
-
QEP_CW_CCW_ERR_INT:指示 QEP 输入的 CW 和 CCW 信号出现异常
-
QEP_HALL_INT:QEP 霍尔输入中断信号,指示 QEP 输入霍尔信号 HA0/1/2 的通道中,至少存在一个通道发生输入信号的改变
QEP 模块寄存器描述
0x0000 QEP_POS_CNT_V
默认值:0x00000000 | QEP Position Counter 计数值 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x0 | QEP_POS_CNT_V QEP Position Counter Value,QEP 位置计数器的计数值。只要 QEP 的位置计数器开始了计数,此字段只能读操作,不可写操作。 |
0x0004 QEP_POS_CNT_SP
默认值:0x00000000 | QEPPosition Counter 起点值 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x0 | QEP_POS_CNT_SPV QEP Position Counter Start Point Value,QEP 位置计数器的起点值。 设置此字段表示外部 S 或 QEP_I 信号所对应的位置。 |
0x0008 QEP_POS_CNT_EP
默认值:0x00000000 | QEPPosition Counter 终点值 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x0 | QEP_POS_CNT_EPV QEP Position Counter End Point Value,QEP 位置计数器的终点值。 设置此字段表示外部编码器的最大旋转的位置。 |
0x000C QEP_POS_CNT_CMPV
默认值:0x00000000 | QEPPosition Counter 比较值 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x0 | QEP_POS_CNT_CMPV QEP Position Counter Compare,QEP 位置计数器的比较值。 当 QEP 位置计数器计数值达到这里设定的比较值,可以产生信号 S。 此信号可以用于生成 QEP 模块的中断信号或输出的同步信号 OUT。 |
0x0010 QEP_POS_CNT_ICAPV
默认值:0x00000000 | QEPPosition Counter Index 捕获值 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R | 0x0 | QEP_POS_CNT_ICAPV QEP Position Counter Index Capture,QEP 位置计数器的 Index 触发捕获值。当发生 Index 信号相关的事件 (可通过寄存器配置),触发捕获 QEP 位置计数器的计数值。 |
0x0014 QEP_POS_CNT_SCAPV
默认值:0x00000000 | QEPPosition Counter Strobe 捕获值 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R | 0x0 | QEP_POS_CNT_SCAPV QEP Position Counter Strobe Capture Value,QEP 位置计数器的 Strobe 触发捕获值。 当发生 Strobe 信号相关的事件 (可通过寄存器配置),触发捕获 QEP 位置计数器的计数值。 |
0x0018 QEP_POS_CNT_TOCAPV
默认值:0x00000000 | QEPPosition Counter Timout 捕获值 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R | 0x0 | QEP_POS_CNT_TOCAPV QEP Position Counter Timeout Capture Value,QEP 位置计数器的 Timeout 触发捕获值。 当 Timer 的 Timeout 信号有效,触发捕获 QEP 位置计数器的计数值。 |
0x001C QEP_TMR_V
默认值:0x00000000 | QEP Timer 寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x0 | QEP_TMR_V, QEP Timer Value,定时器 Timer 数值。 当 TMR 的数值达到 QEP_TMR_PRD 的数值,则产生,QEP Timer 的 Timeout 信号。 |
0x0020 QEP_TMR_PRD_V
默认值:0x00000000 | QEP Timer Period 寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x0 | QEP_TMR_PRD_V QEP Timer Period Value,定时器 Timer 周期数值。 当 TMR 的数值达到 QEP_TMR_PRD 的数值,则产生,QEP Timer 的 Timeout 信号。 |
0x0024 QEP_WD_TMRV
默认值:0x00000000 | QEP Watchdog 定时器寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x0 | QEP_WD_TMRV QEP Watchdog Timer Value,看门狗定时器的数值。 当 TMR 的数值达到 QEP_WD_PRD 的数值,则产生,QEP Watchdog Timer 的 Timeout 中断。 |
0x0028 QEP_WD_PRDV
默认值:0x00000000 | QEP Watchdog 定时器周期寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x0 | QEP_WD _PRDV QEP Watchdog Timer Period Value,看门狗定时器的周期值。 当 TMR 的数值达到 QEP_WD_PRD 的数值,则产生,QEP Watchdog Timer 的 Timeout 中断。 |
0x002C QEP_DEC_CONF
默认值:0x00000000 | QEPDecoder 配置寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:17 | - | - | - |
16:14 | R/W | 0x0 | QEP_CNT_MODE,QEP Counter Mode,QEP 计数模式选择。
|
13 | R/W | 0x0 | QEP_SOUT_EN QEP Strobe OUTPUT Enable,使能 SOUT 输出 (即 QEP
位置计数器达到比较值的信号)。
|
12 | R/W | 0x0 | QEP_SRB_OUT_PIN QEP Strobe Output PIN Select,QEP_SOUT
输出信号的管脚输出选择。
|
11 | R/W | 0x0 | QEP_QA_DEDG_EN QEP QA Double Edge Enable,使能 A
输入信号上下边沿有效,此功能指针对在 A 作为 QCLK 使用的计数模式下。
|
10 | R/W | 0x0 | QEP_SWAP_AB QEP SWAP AB,交换 A 与 QEP_B 信号。
|
9 | R/W | 0x0 | QEP_IGATE QEP Index Gate Set,设置 Gate。
|
8 | R/W | 0x0 | QEP_A_INV_EN QEP_A Inverse Enable,QEP_A 信号反相使能。
|
7 | R/W | 0x0 | QEP_B_INV_EN QEP_B Inverse Enable,QEP_B 信号反相使能。
|
6 | R/W | 0x0 | QEP_I_INV_EN QEP_I Inverse Enable,QEP_I 信号反相使能。
|
5 | R/W | 0x0 | QEP_S_INV_EN QEP_S Inverse Enable,QEP_S 信号反相使能。
|
4:0 | - | - | - |
0x0030 QEP_POS_CNT_CONF
默认值:0x00000000 | QEP 位置计数器配置寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31: | - | - | - |
13:12 | R/W | 0x0 | QEP_POS_CNT_RST QEP Position Counter Reset,位置计数器复位方式。
|
11:10 | R/W | 0x0 | QEP_POS_SRB_INIT QEP Position SRB Initialization,QEP_SRB 初始化位置计数器
|
9:8 | R/W | 0x0 | QEP_POS_IDX_INIT QEP Position IDX Initialization,QEP_IDX 初始化位置计数器。
|
7 | R/WAC | 0x0 | QEP_POS_SW_INIT,QEP Position Software Initialization,软件初始化位置计数器
|
6 | R/W | 0x0 | QEP_POS_SCAP_MOD QEP Position Strobe Trigger Capture
Mode,Strobe 触发捕获模式,位置计数器的数值捕获至寄存器 SCAP。
|
5:4 | R/W | 0x0 | QEP_POS_ICAP_MOD QEP Position Index Trigger Capture Mode,Index 触发捕获模式,位置计数器的数值捕获至寄存器 QEP_POS_CNT_ICAP
|
3 | R/W | 0x0 | QEP_POS_CNT_EN QEP Position Counter Enable,位置计数器使能
|
2 | R/W | 0x0 | QEP_CAP_LH_MOD QEP Capture Latch Mode Select,QEP 捕获锁存模式选择
|
1 | R/W | 0x0 | QEP_TMR_EN QEP Timer Enable,QEP 定时器使能
|
0 | R/W | 0x0 | QEP_WD_TMR_EN QEP Watchdog Timer Enable,QEP 看门狗定时器使能
|
0x0034 QEP_CAP_TMR_CONF
默认值:0x00000000 | QEP Capture Timer 配置寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:9 | - | - | - |
15 | R/W | 0x0 | QEP_CAP_TMR_EN QEP Capture Timer Enable,QEP 捕捉定时器使能。
|
14:7 | - | - | - |
6:4 | R/W | 0x0 | QEP_CAP_TMR_CLK_DIV QEP Capture Timer Clock
Division,捕获定时器的时钟分频系数
|
3:0 | R/W | 0x0 | QEP_SET_UDIST QEP Set Unit Distance,设置单位的位置距离
|
0x0038 QEP_POS_CNTCMP_CONF
默认值:0x00000000 | QEP 位置计数器比较寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:16 | - | - | - |
15 | R/W | 0x0 | QEP_POS_CMP_UPDT_MOD QEP Position Compare Register Update
Mode,位置比较寄存器的更新模式。
|
14 | R/W | 0x0 | QEP_POS_CMP_LP QEP Position Compare Register Load
Point,位置比较寄存器影子更新的加载点。
|
13 | R/W | 0x0 | QEP_SOUT_POL QEPS OUT Polarity,SOUT 输出信号的极性。
|
12 | R/W | 0x0 | QEP_POS_CMP_EN QEP Position Compare Enable,QEP 位置计数比较使能。
|
11:0 | R/W | 0x0 | QEP_SOUT_PW, QEPS OUT Pulse Width,SOUT 输出信号的输出脉宽信号。
|
0x003C QEP_INT_EN
默认值:0x00000000 | QEP Interrupt 使能寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:14 | - | - | - |
13 | R/W | 0x0 | QEP_HALL_INT_EN QEP Hall Input Monitro Interrupt Enable,QEP
霍尔输入检测中断使能。
|
12 | R/W | 0x0 | QEP_CW_CCW_ERR_INT_EN QEP CW/CCW Signal Error Interrupt
Enable,CW/CCW 信号异常中断使能。
|
11 | R/W | 0x0 | QEP_TMROT_INT_EN QEP Timer Timeout Interrupt Enable,发生 Timer
超时事件的中断使能。
|
10 | R/W | 0x0 | QEP_ICAP_INT_EN QEP Index Capture Interrupt Enable,发生 I
信号触发捕获位置计数器的事件的中断使能。
|
9 | R/W | 0x0 | QEP_SCAP_INT_EN QEP Strobe Capture Interrupt Enable,发生 S
信号触发捕获位置计数器的事件的中断使能。
|
8 | R/W | 0x0 | QEP_POS_CMP_INT_EN QEP Position Compare Interrupt
Enable,发生位置计数器达到 CMP 的事件值的中断使能。
|
7 | R/W | 0x0 | QEP_POS_CMP_RDY_INT_EN QEP Position Compare Ready Interrupt
Enable,指示位置比较寄存器的影子寄存器更新的中断使能。
|
6 | R/W | 0x0 | QEP_POS_CNT_OVFL_INT_EN QEP Position Counter Overflow Interrupt
Enable,位置计数器上溢出中断使能。
|
5 | R/W | 0x0 | QEP_POS_CNT_UDFL_INT_EN QEP Position Counter Underflow
Interrupt Enable,位置计数器下溢出中断使能。
|
4 | R/W | 0x0 | QEP_WDTO_INT_EN QEP Watchdog Timeout Interrupt
Enable,看门狗超时中断使能。
|
3 | R/W | 0x0 | QEP_DIR_CHG_INT_EN QEP Direction Change Interrupt
Enable,方向改变中断使能。
|
2 | R/W | 0x0 | QEP_QUADPH_ERR_INT_EN QEP Quadrature Phase Error Interrupt
Enable,正交相位错误中断使能。
|
1 | R/W | 0x0 | QEP_POS_CNT_ERR_INT_EN QEP Position Counter Error Interrupt
Enable,位置计数器计数错误中断使能。
|
0 | - | - | - |
0x0040 QEP_INT_FLG
默认值:0x00000000 | QEP Interrupt 标志寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:13 | - | - | - |
13 | R | 0x0 | QEP_HALL_INT_FLG QEP Hall Input Monitro Interrupt Flag,QEP
霍尔输入检测中断标记。发生输入变化的通道号可以根据寄存器 FLG 查询。
|
12 | R | 0x0 | QEP_CW_CCW_ERR_INT_FLG QEP CW/CCW Signal Error Interrupt
Flag,发送 CW/CCW 信号异常中断标记。
|
11 | R | 0x0 | QEP_TMROT_INT_FLG QEP Timer Timeout Interrupt Flag,发生,QEP Timer
超时事件的中断标记。
|
10 | R | 0x0 | QEP_ICAP_INT_FLG QEP Index Capture Interrupt Flag,发生 I
信号触发捕获位置计数器的事件的中断标记。
|
9 | R | 0x0 | QEP_SCAP_INT_FLG QEP Strobe Capture Interrupt Flag,发生 S
信号触发捕获位置计数器的事件的中断标记。
|
8 | R | 0x0 | QEP_POS_CMP_INT_FLG QEP Position Compare Interrupt
Flag,发生位置计数器达到 CMP 的事件值的中断标记。
|
7 | R | 0x0 | QEP_POS_CMP_RDY_INT_FLG QEP Position Compare Ready Interrupt
Flag,指示位置比较寄存器的影子寄存器更新的中断标记。
|
6 | R | 0x0 | QEP_POS_CNT_OVFL_INT_FLG QEP Position Counter Overflow
Interrupt Flag,位置计数器上溢出中断标记。
|
5 | R | 0x0 | QEP_POS_CNT_UDFL_INT_FLG QEP Position Counter Underflow
Interrupt Flag,位置计数器下溢出中断标记。
|
4 | R | 0x0 | QEP_WDTO_INT_FLG QEP Watchdog Timeout Interrupt
Flag,看门狗超时中断标记。
|
3 | R | 0x0 | QEP_DIR_CHG_INT_FLG QEP Direction Change Interrupt
Flag,方向改变中断标记。
|
2 | R | 0x0 | QEP_QUADPH_ERR_INT_FLG QEP Quadrature Phase Error Interrupt
Flag,正交相位错误中断标记。此位只有在正交计数下有效,其它计数模式此位无意义。
|
1 | R | 0x0 | QEP_POS_CNT_ERR_INT_FLG QEP Position Counter Error Interrupt
Flag,位置计数器计数错误中断标记。此状态只有在 QEP_POS_CNT_RST = 0x0
的时候有效,其它模式下可忽略此状态。
|
0 | R | 0x0 | QEP_INT_FLG,QEP 中断标记。
|
0x0044 QEP_INT_CLR
默认值:0x00000000 | QEP 中断清除寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:13 | - | - | - |
13 | R/WAC | 0x0 | QEP_HALL_INT_CLR QEP Hall Input Monitro Interrupt Clear,QEP
霍尔输入检测中断标记清除。清除这里的中断状态,同时也清除寄存器 FLG 的所有状态。
|
12 | R/WAC | 0x0 | QEP_CW_CCW_ERR_INT_CLR QEP CW/CCW Signal Error Interrupt
Clear,发送 CW/CCW 信号异常中断清除。
|
11 | R/WAC | 0x0 | QEP_TMROT_INT_CLR QEP Timer Timeout Interrupt Clear,发生,QEP
Timer 超时事件的中断清除。
|
10 | R/WAC | 0x0 | QEP_ICAP_INT_CLR QEP Index Capture Interrupt Clear,发生 I
信号触发捕获位置计数器的事件的中断清除。
|
9 | R/WAC | 0x0 | QEP_SCAP_INT_CLR QEP Strobe Capture Interrupt Clear,发生 S
信号触发捕获位置计数器的事件的中断清除
|
8 | R/WAC | 0x0 | QEP_POS_CMP_INT_CLR QEP Position Compare Interrupt
Clear,发生位置计数器达到 CMP 的事件值的中断清除。
|
7 | R/WAC | 0x0 | QEP_POS_CMP_RDY_INT_CLR QEP Position Compare Ready Interrupt
Clear,指示位置比较寄存器的影子寄存器更新的中断清除。
|
6 | R/WAC | 0x0 | QEP_POS_CNT_OVFL_INT_CLR QEP Position Counter Overflow
Interrupt Clear,位置计数器上溢出中断清除。
|
5 | R/WAC | 0x0 | QEP_POS_CNT_UDFL_INT_CLR QEP Position Counter Underflow
Interrupt Clear,位置计数器下溢出中断清除。
|
4 | R/WAC | 0x0 | QEP_WDTO_INT_CLR QEP Watchdog Timeout Interrupt
Clear,看门狗超时中断清除。
|
3 | R/WAC | 0x0 | QEP_DIR_CHG_INT_CLR QEP Direction Change Interrupt
Clear,方向改变中断清除。
|
2 | R/WAC | 0x0 | QEP_QUADPH_ERR_INT_CLR QEP Quadrature Phase Error Interrupt
Clear,正交相位错误中断清除。
|
1 | R/WAC | 0x0 | QEP_POS_CNT_ERR_INT_CLR QEP Position Counter Error Interrupt
Clear,位置计数器计数错误中断清除。
|
0 | - | - | - |
0x0048 QEP_SW_FRC_INT
默认值:0x00000000 | 软件强制 QEP 中断产生寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:12 | - | - | - |
12 | R/WAC | 0x0 | QEP_SW_FRC_CW_CCW_ERR_INT QEP Software Force CW/CCW Signal
Error Interrupt,软件强制发生 CW/CCW 信号异常中断。
|
11 | R/WAC | 0x0 | QEP_SW_FRC_TMROT_INT QEP Software Force Timer Timeout
Interrupt,软件强制发生,QEP Timer 超时事件的中断。
|
10 | R/WAC | 0x0 | QEP_SW_FRC_ICAP_INT QEP Software Force Index Capture
Interrupt,软件强制发生 I 信号触发捕获位置计数器的事件的中断。
|
9 | R/WAC | 0x0 | QEP_SW_FRC_SCAP_INT QEP Software Force Strobe Capture
Interrupt,软件强制发生 S 信号触发捕获位置计数器的事件的中断。
|
8 | R/WAC | 0x0 | QEP_SW_FRC_POS_CMP_INT QEP Software Force Position Compare
Interrupt,软件强制发生位置计数器达到 CMP 的事件值的中断。
|
7 | R/WAC | 0x0 | QEP_SW_FRC_POS_CMP_RDY_INT QEP Software Force Position Compare
Ready Interrupt,软件强制发生指示位置比较寄存器的影子寄存器已更新的中断。
|
6 | R/WAC | 0x0 | QEP_SW_FRC_POS_CNT_OVFL_INT QEP Software Force Position Counter
Overflow Interrupt,软件强制发生位置计数器上溢出中断。
|
5 | R/WAC | 0x0 | QEP_SW_FRC_POS_CNT_UDFL_INT QEP Software Force Position Counter
Underflow Interrupt,软件强制发生位置计数器下溢出中断。
|
4 | R/WAC | 0x0 | QEP_SW_FRC_WDTO_INT QEP Software Force Watchdog Timeout
Interrupt,软件强制发生看门狗超时中断。
|
3 | R/WAC | 0x0 | QEP_SW_FRC_DIR_CHG_INT QEP Software Force Direction Change
Interrupt,软件强制发生方向改变中断。
|
2 | R/WAC | 0x0 | QEP_SW_FRC_QUADPH_ERR_INT QEP Software Force Quadrature Phase
Error Interrupt,软件强制发生正交相位错误中断。
|
1 | R/WAC | 0x0 | QEP_SW_FRC_POS_CNT_ERR_INT QEP Software Force Position Counter
Error Interrupt,软件强制产生位置计数器计数错误中断。
|
0 | - | - | - |
0x004C QEP_STS
默认值:0x00000000 | QEP 状态寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:8 | - | - | - |
7 | R/W1C | 0x0 | QEP_UD_EVNT_FLG QEP Unit Distance Event Flag,单位位置距离的状态标志。
|
6 | R | 0x0 | QEP_FIDX_MKR_DIR_FLG QEP First Index Marker Direction Flag,第一
Index 标记的方向状态标志。此状态只有在 QEP_POS_CNT_RST = 0x0/0x2
的时候有效,其它模式下可忽略此状态。
|
5 | R | 0x0 | QEP_DIR_FLG QEP Direction Flag,正交信号解析的方向标记。
|
4 | R | 0x0 | QEP_DIR_IEVNT_FLG QEP Direciton Flag of Index
Event,QEP_INDX_MKR 有效边沿对应的方向状态标记。此状态只有在 QEP_POS_CNT_RST = 0x0
的时候有效,其它模式下可忽略此状态。
|
3 | R/W1C | 0x0 | QEP_CAP_TMR_OVFL_FLG QEP Capture Timer Overflow
Flag,捕捉功能模块的捕捉定时器出现上溢出状态。
|
2 | R/W1C | 0x0 | QEP_CAP_DERR_FLG QEP Capture Direction Error Flag,捕捉功能模块发现方向错误状态。
|
1 | R/W1C | 0x0 | QEP_FIDX_MKR_FLG QEP First Index Marker Flag,QEP 模块使能后接收的第一个
Index 有效信号的标记。若此位置 1 后被清 0,不会再变化,只有重新复位可以再次置 1。此状态只有在
QEP_POS_CNT_RST = 0x0/0x2 的时候有效,其它模式下可忽略此状态。
|
0 | R | 0x0 | QEP_POS_CNT_ERR_FLG QEP Position Counter Error Flag,位置计数器的错误标记。此标记状态在每次的 EVNT 进行更新。此状态只有在 QEP_POS_CNT_RST = 0x0 的时候有效,其它模式下可忽略此状态。
|
0x0050 QEP_CAP_TMRV
默认值:0x00000000 | QEP Capture 定时器寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:16 | - | - | - |
15:0 | R/W | 0x0 | QEP_CAP _TMRV QEP Capture Timer,QEP 捕捉定时器的数值。 |
0x0054 QEP_CAP_DELT
默认值:0x00000000 | QEP Capture Delta T 寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:17 | - | - | - |
16 | R | 0x0 | QEP_CAP_DELT_ERR QEP Capture Delta Time
ERR,指示时间差值是否有错误,即发生了方向的改变。
|
15:0 | R | 0x0 | QEP_CAP_DELT QEP Capture Delta Time,单位位移内的 QEP 捕捉定时器的时间差值。单位位移需要通过寄存器配置。完成一次的时间差捕捉,QEP 捕捉定时器复位至 0。 |
0x0058 QEP_CAP_TMR_LH
默认值:0x00000000 | QEP Capture 定时器锁存寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:16 | - | - | - |
15:0 | R | 0x0 | QEP_CAP _TMR_LH QEP Capture Timer Latch,QEP 捕捉定时器的锁存数值。当 Timer 出现 timeout 信号或软件读取 QEP 位置计数器时,这里锁存 TMR 的定时器数值。 |
0x005C QEP_CAP_DELT_LH
默认值:0x00000000 | QEP Capture Delta T 锁存寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:17 | - | - | - |
16 | R | 0x0 | QEP_CAP_DELT_ERR QEP Capture Delta Time
ERR,指示时间差值是否有错误,即发生了方向的改变。
|
15:0 | R | 0x0 | QEP_CAP_DELT_LH QEP Capture Delta Time Latch,单位位移内的 QEP 捕捉定时器的时间差锁存。当 Timer 出现 timeout 信号或软件读取 QEP 位置计数器时,这里锁存 DELT 的寄存器数值。 |
0x0060 QEP_IN_FLT1
默认值:0x00000000 | QEP 输入滤波寄存器 1 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:24 | R/W | 0x0 | QEP_B_SMP_CTL_PRD QEP B Input Sample Control Period,输入采样周期。
|
23:20 | R/W | 0x0 | QEP_B_IN_PRE_FLT QEP B Input Pre Filter Enable,QEPB
输入信号的预滤波使能,预滤波采样周期为 CLK。一般使用,无需使能,默认旁通即可。
|
19:16 | R/W | 0x0 | QEP_B_IN_FLT_SEL QEP B Input Filter
Seclect,输入滤波功能选择,此字段只有在输入捕捉模式有效。
|
15:8 | R/W | 0x0 | QEP_A _SMP_CTL_PRD QEP A Input Sample Control Period,输入采样周期。
|
7:4 | R/W | 0x0 | QEP_A_IN_PRE_FLT QEP A Input Pre Filter Enable,QEPA
输入信号的预滤波使能,预滤波采样周期为 CLK。一般使用,无需使能,默认旁通即可。0x0:旁通,无预滤除效果。
|
3:0 | R/W | 0x0 | QEP_A_IN_FLT_SEL QEP A Input Filter Seclect,A 相信号输入滤波功能选择。
|
0x0064 QEP_IN_FLT2
默认值:0x00000000 | QEP 输入滤波寄存器 2 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:24 | R/W | 0x0 | QEP_S_SMP_CTL_PRD QEP S Input Sample Control Period,输入采样周期。
|
23:20 | R/W | 0x0 | QEP_S_IN_PRE_FLT QEP S Input Pre Filter Enable,QEP S
输入信号的预滤波使能,预滤波采样周期为 CLK。一般使用,无需使能,默认旁通即可。
|
19:16 | R/W | 0x0 | QEP_S _IN_FLT_SEL QEP S Input Filter
Seclect,输入滤波功能选择,此字段只有在输入捕捉模式有效。
|
15:8 | R/W | 0x0 | QEP_I _SMP_CTL_PRD QEP I Input Sample Control Period,输入采样周期。
|
7:4 | R/W | 0x0 | QEP_I_IN_PRE_FLT QEP I Input Pre Filter Enable,QEP I
输入信号的预滤波使能,预滤波采样周期为 CLK。一般使用,无需使能,默认旁通即可。
|
3:0 | R/W | 0x0 | QEP_I_IN_FLT_SEL QEP I Input Filter Seclect,A 相信号输入滤波功能选择。
|
0x0068 QEP_IN_CTL
默认值:0x00000002 | QEP 输入控制 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:26 | - | - | - |
25:16 | R/W | 0x0 | QEP_SMP_WIN_TH QEP sample window threshold,QEP
输入信号的采样窗口的宽度阈值,单位为 clk。
|
15:10 | - | - | - |
9 | R/W | 0x0 | QEP_S_OP_EN QEP S Output Enable,QEP S 信号使能作为输出信号。
|
8 | R/W | 0x0 | QEP_I_OP_EN QEP I Output Enable,QEP I 信号使能作为输出信号。
|
7:4 | - | - | - |
3 | R/W | 0x0 | QEP_SMP_WIN_EN QEP sample window enable,使能 QEP 输入信号的采样窗口,使能窗口后,窗口宽度内的 QEP 输入信号的变化认为是相同时刻的变化。
|
2 | R/W | 0x0 | QEP_I_TYP QEP_I Sigal Type,QEP_I 的输入信号的类型,此信号只有在
QEP_I_INT_GATEA = 0 的时候才需要配置,否则无需对此位进行配置。
|
1 | R/W | 。0x1 | QEP_I_INT_GATEA QEP_I Internal Gate A Disable,禁止 I 与 QEP_A
在滤波前进行内部的 Gate 处理。
|
0 | R/W | 0x0 | QEP_IN_FLT_EN QEP Input Filter Enable,QEP
输入信号 (QEP_A、QEP_B、QEP_I、QEP_S)的使能信号。使能后,各个输入信号才根据对应的输入滤波配置进行同步或滤波。
|
0x006c QEP_HALL_IN_CONF
默认值:0x00000000 | QEP Hall 输入检测配置寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:2 | - | - | - |
1 | R/W | 0x0 | QEP_HALL_IN_POL QEP Hall Input Polarity,QEP 霍尔输入极性设置。
|
0 | R/W | 0x0 | QEP_HALL_MON_EN QEP Hall Input Monitor Enable,QEP 霍尔输入检测使能。
|
0x0070 QEP_HALL_IN_STS
默认值:0x00000000 | QEP Hall 输入状态寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:3 | - | - | - |
2 | R | 0x0 | QEP_HA2_IN_STS QEP Hall2 Input Status,QEP 霍尔输入信号 2 的状态。
|
1 | R | 0x0 | QEP_HA1_IN_STS QEP Hall1 Input Status,QEP 霍尔输入信号 1 的状态。
|
0 | R | 0x0 | QEP_HA0_IN_STS ,QEP Hall0 Input Status,QEP 霍尔输入信号 0 的状态。
|
0x0074 QEP_HALL_CHG_FLG
默认值:0x00000000 | QEP Hall 输入改变标记寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:3 | - | - | - |
2 | R/WAC | 0x0 | QEP_HA2_IN_CHG_FLG QEP Hall2 Input Status Change Flag,QEP
霍尔输入信号 2 的输入状态发生改变。
|
1 | R/WAC | 0x0 | QEP_HA1_IN_CHG_FLG QEP Hall1 Input Status Change Flag,QEP
霍尔输入信号 1 的输入状态发生改变。
|
0 | R/WAC | 0x0 | QEP_HA0_IN_CHG_FLG QEP Hall0 Input Status Change Flag,QEP
霍尔输入信号 0 的输入状态发生改变。
|
0x0078 QEP_HALL0_IN_FLT
默认值:0x00000000 | QEP Hall0 输入滤波寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:16 | - | - | - |
15:8 | R/W | 0x0 | QEP_HA0_SMP_CTL_PRD QEP Hall0 Input Sample Control
Period,输入采样周期。
|
7:4 | R/W | 0x0 | QEP_HA0_IN_PRE_FLT QEPA0 Input Pre Filter Enable,QEPA0
输入信号的预滤波使能,预滤波采样周期为 CLK。一般使用,无需使能,默认旁通即可。
|
3:0 | R/W | 0x0 | QEP_HA0_IN_FLT_SEL QEP Hall0 Input Filter Seclect,输入滤波功能选择。
|
0x007c QEP_HALL1_IN_FLT
默认值:0x00000000 | QEP Hall1 输入滤波寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:16 | - | - | - |
15:8 | R/W | 0x0 | QEP_HA1_SMP_CTL_PRD QEP Hall1 Input Sample Control
Period,输入采样周期。
|
7:4 | R/W | 0x0 | QEP_HA1_IN_PRE_FLT QEPA1 Input Pre Filter Enable,QEPA1
输入信号的预滤波使能,预滤波采样周期为 CLK。一般使用,无需使能,默认旁通即可。
|
3:0 | R/W | 0x0 | QEP_HA1_IN_FLT_SEL QEP Hall1 Input Filter Seclect,输入滤波功能选择。
|
0x0080 QEP_HALL2_IN_FLT
默认值:0x00000000 | QEP Hall2 输入滤波寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:16 | - | - | - |
15:8 | R/W | 0x0 | QEP_HA2_SMP_CTL_PRD QEP Hall2 Input Sample Control
Period,输入采样周期。
|
7:4 | R/W | 0x0 | QEP_HA2_IN_PRE_FLT QEP HA2 Input Pre Filter Enable,QEPA2
输入信号的预滤波使能,预滤波采样周期为 CLK。一般使用,无需使能,默认旁通即可。
|
3:0 | R/W | 0x0 | QEP_HA2_IN_FLT_SEL QEP Hall2 Input Filter Seclect,输入滤波功能选择。
|
0x00FC QEP_VER
默认值:0x00000100 | QEP 子模块版本寄存器 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R | 0x0000_0100 | 版本寄存器 V1.0 |