捕捉输入功能

-
输入捕捉信号选择
输入捕捉信号除了支持外部的引脚信号捕捉之外,还可以支持内部的 EPWM 信号。
-
输入滤波
CAP 模块在捕捉输入功能下,输入信号 CAP0/ 1_IO 均需要经过输入滤波模块,产生 CAP0/ 1_IO_PRCS 信号。
输入滤波功能,主要是用于滤除噪音信号,如输入滤波模块功能框图所示,输入滤波的功能可以设置成以下模式:
- 同步信号输出:通过 SYS_CLK 对输入信号 EPWM_FLT0 进行同步。
- 1/2/.../15 采样点的同步信号输出:同步信号经过 Sample CTL 模块,判定
1/2/.../15 个采样点为相同值的信号任务有效信号,否则认为噪声信号进行滤除。
- Sample CTL 模块的输入信号是 IN Sync 模块的输出信号,即 SYS_CLK 对 CAP_IO 信号进行同步得出 CAP_IO_SYNC 信号。
- 通过配置 Sample CTL 模块的寄存器 可以配置对 CAP_IO_SYNC 信号的采样周期,采样周期为 1x/2x/4x/6x/.../510x SyS_CLK.
- 通过寄存器可以配置 1/2/.../15 采样点的同步信号输出,即以 1/2/.../15 个采样点的时间长度作为一个处理周期。若这个周期的采样点均为相同值则认为是有效值,CAP_IO_PRCS 的信号输出此有效值。
图 2. 输入滤波模块功能框图
五采样点同步信号输出图示中,以采样周期配置为 2x SYS_CLK、5 采样点同步输出的配置为例,对 CAP_IO_SYNC 信号进行处理。
- 在 T0 时刻,对 CAP_IO_SYNC 进行第一次信号采集,采集为 0 信号。
- 接下来采集的四次信号均为 0 信号,因此在第五个采样点的时候,CAP_IO_PRCS 进行了翻转,输出 0 信号,完成一个处理周期。
- 在 T1 时刻,由于第一次采集信号为 0 信号,而第二次采集信号出现 1 信号,此次处理周期判定为无效值,CAP_IO_PRCS 维持当前值。
图 3. 五采样点同步信号输出图示 - 捕捉边沿预处理
捕捉边沿预处理功能,主要用于对输入信号进行降低频率的处理。 通过配置寄存器字段 CAP_IN_EDG_EVN_DIV 对输入信号 CAP_IO 的边沿翻转进行处理。如设置 CAP_IN_EDG_EVN_DIV = 0x1(如下图中对应配置的例子),输入信号的每两次的翻转边沿才触发一次翻转,从而得到信号 CAP_IO_DIV,这样的预处理可以降低输入信号的翻转频次。

-
捕捉控制
CAP 模块支持对四次捕捉事件,在捕捉事件到来后,捕捉控制模块会触发对应的捕捉寄存器 CAP_0/ 1/ 2/ 3 进行记录 CAP 的计数器的数值。
捕捉事件 EVENT0/ 1/ 2/ 3 可以根据需求,通过寄存器字段 CAP_EVNT0/ 1/ 2/ 3_POL,设置事件为上升沿捕捉或下降沿捕捉,以及通过寄存器字段 CAP_EVNT0/ 1/ 2/ 3_RST 配置发生捕捉事件后是否复位计数器,这样的配置方式可以计算出两次边沿的时间差值。
-
捕捉寄存器
CAP 模块配有四个捕捉寄存器 CAP_REG0/ 1/ 2/ 3,每个寄存器对应一个捕捉事件 CAP_EVNT0/ 1/ 2/ 3,当输入信号满足捕捉事件的特性,则产生捕捉信号 CAP_EVNT0/ 1/ 2/ 3,对计数器的数值进行捕捉。
捕捉事件依次按照 EVENT0、EVEMT1、EVENT2、EVENT3 进行,所以捕捉到的计数器数据依次写入寄存器 CAP_REG0、CAP_REG1、CAP_REG2、CAP_REG3。
捕捉状态可以通过寄存器字段 CAP_OS_MOD_EN 配置为连续捕捉模式或单次捕捉模式。连续捕捉模式,那么从 EVENT0 执行到 EVETN3 后,继续从 EVENT0 执行到 EVENT3,按照顺序循环进行。
单次捕捉模式,通过配置寄存器字段 CAP_OS_EP 配置需要捕捉的事件次数,当从 EVENT0 执行到所需的事件次数后,CAP 模块不再进行捕获,CAP_REG0/ 1/ 2/ 3 寄存器的数据锁存当前数据。
-
DMA 功能
CAP 支持 DMA 的功能,使能 DMA 后,DMA 的请求信号可以通过寄存器配置,选择 CAP_EVNT0/1/2/3。在每次 DMA 请求信号到来,DMA 根据 DMA 通道的配置,将 CAP 的寄存器 CAP_REG0/1/2/3 的数值读取并且写到 SRAM。
