一、TIM概述
TIM模块负责过滤和捕获GTM信号。输入信号的几种特征能被在TIM通道内测量。输入信号的特征包括:输入上升沿和下降沿时间戳的值、接收的边沿数量、PWM的周期和占空比。


1.1、概述
1.1.1、输入源选择
寄存器TIM[i]_IN_SRC 的 TIM[i]_CH[x]_CTRL.CICTRL and TIM[i]IN_SRC.MODE[x] , TIM[i]IN_SRC.VAL[x] 位决定了哪个输入源被使用。
F_IN[x:x]可以通过8位的查找表生成,可以定义3个输入源的任何功能。

如果TIM[i]_CH[x]_ECTRL.USE_LUT=0b00,绕过查找表信号生成,信号进行如下选择:
在某一时刻,TIM[i]IN_SRC。MODE[x], TIM[i]_IN_SRC。输入信号F_IN [x:x]可以由TIM[i] in_src.VAL[x][1:1]驱动直接使用0或1。
由于所有8个通道都捆绑在寄存器TIM[i]_IN_SRC中,因此所有8个输入通道的同步控制是可能的。
两个相邻通道可以通过设置TIM[i]_CH[x]_CTRL.CICTRL位域进行组合。这允许组合复杂的测量一个输入信号与两个TIM通道。
1.1.2、输入监视
它可以监视一个实例的所有通道通过一下步骤读取TIM[i]_INP_VAL 的实际值:
TIM输入同步后的TIM_IN [7:0]信号;TIM INPUTSRC选择后的F_IN [7:0];TIM滤波功能后的F_OUT[7:0]信号
1.1.3、外部捕获源选择
每个通道可以操作一个外部的捕获信号TIM_EXT_CAPTURE 。 通过TIM[i]_CH[x]_ECTRL.EXT_CAP_SRC **,**可以配置源使用信号。

被选择输入的信号的每个上升沿都会产生一个脉冲,这些脉冲能被选择和使用为TIM_EXT_CAPTURE[x:x]信号。
或者,可以选择在TDU中生成的事件TDU_SAMPLE_EVT [x:x]、TDU_WORD_EVT [x:x]、TDU_FRAME_EVT [x:x]中的一个。
此外,可以选择通道x+1的六个中断源中的一个。或者,它们也可以通过使用寄存器TIM[i]_CH[x+1]_IRQ_FORCINT中的相应位的软触发来发出。
1.2、TIM过滤功能
1.2.1、概述
TIM子模块为每个输入信号提供一个可配置过滤机制。这些过滤机制在FLT子单元里面。FLT子单元包括时钟同步单元 (CSU) 、边缘检测单元 (EDU) 、与过滤单元连接的过滤计数器 (FLTU) 。

上升沿和下降沿的过滤参数(去毛刺和接收时间)通过TIM[i]_CH[x]_FLT_RE(上升沿)和TIM[i]_CH[x]_FLT_FE(下降沿)进行配置。
1.2.2、TIM滤波模式
一、即时边缘传播模式
在检测到边缘后,延迟TFLT_CLK_RES时间后新信号F_IN_SYNC的电平传播到F_OUT,并且新信号电平不会改变直到接收时间超时。
在接收时间内,在F_IN_SYNC 上的信号改变对于输出电平没有影响,除非设置TIM[i]_CH[x]_IRQ_NOTIFY.GLITCHDET 。
接收时间超时后,输入信号被检测到,并且信号电平的改变会产生新的检测边沿,并且新的信号电平被传播到F_OUT。

二、独立消抖时间模式(上/下计数)
输入信号通过独立消抖阈值滤波值滤波,滤波寄存器FLT_CNT被增加当信号电平F_IN_SYNC不等于F_OUT,并且如果相等就递减。当FLT_CNT在递减过程中达到零值后,计数器立即停止。

三、独立消抖时间模式(保持计数)
输入信号通过独立消抖阈值滤波值滤波,滤波寄存器FLT_CNT被增加当信号电平F_IN_SYNC不等于F_OUT,并且如果相等就保持。当FLT_CNT在递减过程中达到零值后,计数器立即停止。

四、独立消抖时间模式(复位计数)

五、即时边缘传播和独立消抖模式(复位计数)
如果输入信号的下降沿在测量上升沿的接受时间期间已经发生,则测量下降沿的消抖时间是延迟开始的,但在上升沿的接受时间测量阶段之后立即开始已经完成了。

1.3、超时检测单元(TDU)
TDU是为TIM输入信号进行超时检测。每个TIM子模块都有自己的TDU。

二、EB配置
2.1、IcuGeneral

2.2、IcuOptionalApis

2.3、IcuConfigSet

我们选择3个ICU通道。唤醒引脚的选择PS0,输入的是NMI(不可屏蔽中断)。

2.3.1、IcuChannel

IcuChannelId:通道ID
IcuHwIP:硬件模块。选项为GTM、EMIO、CCU7、WAKEUP。选择GTM
IcuDefaultStartEdge:默认启动边沿。选择ICU_RISING_EDGE
IcuMeasurementMode:测量模式。选择ICU_MODE_SIGNAL_MEASUREMENT。

IcuGtmModule:GTM模块,选择GTM_TIM0
IcuGtmChannel:选择GTM_TIM_CH0、GTM_TIM_CH1、GTM_TIM_CH6
TBU Channel used for ICU_TIMESTAMP:ICU时间戳,选择TBU_TS0
TBU Channel 0 bits used for ICU_TIMESTAMP:0位时间戳,选择TBU_TS0_23_0。

ICU测量属性是测量占空比

2.4、PortContainer



三、工程测试
3.1、代码添加

3.2、测试结果
TIM0_6

TIM0_1

TIM0_0

TIM1_0
