文章目录
- 25.10 Timer Input Module (TIM)
- Overview
- Input source selection INPUTSRCx
- TIM Filter Functionality (FLT)
- TIM Filter Modes
- Immediate Edge Propagation Mode
- Individual De-Glitch Time Mode (up/down counter)
- Individual De-Glitch Time Mode (hold counter)
- Timeout Detection Unit (TDU)
- CHANNEL BLOCK DIAGRAM
- OPERATING MODES
- MEASUREMENT MODES
- PWM MEASUREMENT MODE
- PULSE INTEGRATION MODE
- INPUT EVENT MODE
- BIT COMPRESSION MODE
- ARU INTERFACE
- ARU WRITE ADDRESS
- TIM Interrupt Signals
- TIM Configuration Registers Overview
- TIM Configuration Registers Description
- GTM0TIM1xCTRL (x = 0 to 7),
- GTM0TIM0xCTRL (x = 0 to 7)
- GTM0TIMixFLTRE (i = 0,1, x = 0 to 7)
- GTM0TIMixFLTFE (i = 0,1, x = 0 to 7)
- GTM0TIMixGPR0 (i = 0,1, x = 0 to 7)
- GTM0TIMixGPR1 (i = 0,1, x = 0 to 7)
- GTM0TIMixCNT (i = 0,1, x = 0 to 7)
- GTM0TIMixCNTS (i = 0,1, x = 0 to 7)
- GTM0TIMixIRQNOTIFY (i = 0,1, x = 0 to 7)
- GTM0TIMixIRQEN (i = 0,1, x = 0 to 7)
- GTM0TIMixIRQFORCINT (i = 0,1, x = 0 to 7)
- GTM0TIMixIRQMODE (i = 0,1, x = 0 to 7)
- GTM0TIMiRST (i = 0,1)
- GTM0TIMiINSRC (i = 0,1)
- GTM0TIMixEIRQEN (i = 0,1, x = 0 to 7)
- GTM0TIMixTDUV (i = 0,1, x = 0 to 7)
- GTM0TIMixTDUC (i = 0,1, x = 0 to 7)
- GTM0TIMixECNT (i = 0,1, x = 0 to 7)
- GTM0TIM00ECTRL (i = 0,1, x = 0 to 7)
- GTM0TIMiINPVAL (i = 0,1)
25.10 Timer Input Module (TIM)
Overview
定时器输入模块(Timer Input Module, TIM)负责过滤和捕获GTM的输入信号。
可以在TIM通道内测量输入信号的几个特性。对于高级数据处理,TIM模块检测到的输入特性可以通过ARU路由到GTM的后续处理单元
输入特性是指检测到的输入上升沿或下降沿的时间戳值以及新的信号电平,或者自通道使能以来接收到的边缘数以及整个PWM周期的实际时间戳或PWM信号持续时间。
TIM子模块内的通道数m取决于设备。
m个专用输入信号中的每一个都在TIM模块的FLTx子单元内进行滤波。应该注意的是,传入的输入信号与时钟SYS_CLK同步,导致传入信号的两个SYS_CLK周期的延迟。
Input source selection INPUTSRCx
可以配置哪个源用于FLT、TDU、TIM_CH单元的处理。它可以通过寄存器GTM0TIM0INSRC中的位字段CICTRL和MODE_x, VAL_x来选择源正在使用
TIM Filter Functionality (FLT)
TIM子模块为每个输入信号提供可配置的滤波机制。这些过滤机制是在FLT子单元内部提供的
FLT架构如图25.23所示。
该滤波器包括时钟同步单元(CSU)、边缘检测单元(EDU)和与该滤波器单元相关联的滤波器计数器(FLTU)。
CSU将输入信号F_IN同步到选定的滤波器时钟频率,该频率由寄存器GTM0TIMixCTRL的位域FLT_CNT_FRQ控制。
同步输入信号F_IN_SYNC用于滤波器内的进一步处理。
应该注意的是,持续时间小于所选CMU时钟周期的故障将丢失。
滤波器模式可以分别应用于输入信号的下降沿和上升沿。以下过滤模式可用:
•即时边缘传播模式,
•独立去故障时间模式(上/下计数器)
•单独的故障时间模式(保持计数器)。
TIM Filter Modes
Immediate Edge Propagation Mode
在检测到边缘后的即时边缘传播模式中,F_IN_SYNC上的新信号电平以一个TFLT_CLK周期的延迟传播到F_OUT,并且新信号电平保持不变,直到配置的接受时间到期。
对于每种边类型,接收时间可以分别在FLT_RE和FLT_FE寄存器中指定
Individual De-Glitch Time Mode (up/down counter)
只有当输入电平保持到FLT_RE值才会触发边沿检测,电平变化后是cnt是往下减的
Individual De-Glitch Time Mode (hold counter)
只有当输入电平保持到FLT_RE值才会触发边沿检测,电平变化后是cnt是保持的
Timeout Detection Unit (TDU)
超时检测单元(TDU)负责TIM输入信号的超时检测。
TIM子模块的每个通道都有自己的超时检测单元(Timeout Detection Unit, TDU),可以在相应通道的过滤输入信号上设置超时事件。
每超时单元(TDU) 8位计数器/比较器
为上升,下降或两边
可配置输入时钟(CMU_CLK0-7)
CHANNEL BLOCK DIAGRAM
输入边缘计数器(ECNT)
Signal Measurement Unit (SMU) w/ counter (CNT)
2 GPRs用于值存储
OPERATING MODES
通道工作方式:
- 连续模式:在通道启用时连续进行测量(TIM_EN)
- 单拍模式:只进行一次测量,然后关闭通道
MEASUREMENT MODES
PWM MEASUREMENT MODE
测量PWM的频率和占空比
GPR0中存储占空比,GPR1中存储周期,DSL决定PWM极性
PULSE INTEGRATION MODE
测量高/低电平时间
检测到电平时,CNT开始计数
当CNT停止时,GPR0/1/CNTS更新
有效电平通过DSL配置
INPUT EVENT MODE
统计边沿的个数
BIT COMPRESSION MODE
每个通道的F_OUT作为输入位
GPR1存放结果
GPR0time stamp
ARU INTERFACE
GPR0、GPR1、GPR overflow、timeout、F_OUT合并为53位ARU传输
GPR0和GPR1的内容可配置TIM_CH[x]_CTRL (x=0…7)
ARU WRITE ADDRESS
每个TIM子模块有8个ARU写地址(每个通道一个)
ARU目的地应根据TIM子模块和信道号选择正确的TIM写地址
如果选择了错误的写地址,目的地可能会从其他来源接收数据或无限期地等待ARU传输
TIM Interrupt Signals
TIM为每个通道提供6种中断。这些中断如下所示
TIM Configuration Registers Overview
TIM Configuration Registers Description
GTM0TIM1xCTRL (x = 0 to 7),
TOCTRL:超时控制
00:关闭超时特性
11:两端都启用超时特性
01:只对上升沿启用超时功能
10:只对下降沿启用超时特性
EGPR1_SEL:GPR1_SEL位字段的扩展。
详细信息在GPR1_SEL位字段中描述。
EGPR0_SEL:GPR0_SEL位字段的扩展。
详细信息在GPR0_SEL位字段中描述
FR_ECNT_OFL:扩展边缘计数器溢出行为
0:在ECNT位宽= 8时发出溢出信号
1:溢出将在EECNT位宽(全范围)上发出信号
CLK_SEL:选择通道时钟
FLT_CTR_FE:下降沿滤波计数模式,Up/Down计数或hold计数
FLT_MODE_FE:下降沿滤波模式,
0: Immediate edge propagation mode
1: Individual de-glitch mode
FLT_CTR_RE:上升沿滤波计数模式,Up/Down计数或hold计数
FLT_MODE_RE:上升沿滤波模式
0: Immediate edge propagation mode
1: Individual de-glitch mode
EXT_CAP_EN:启用外部捕获模式。所选的TIM模式只对外部捕获脉冲敏感,忽略输入事件的变化。
0:关闭外部捕获
1:启用外部捕获
FLT_CNT_FRQ:滤波器计数频率选择
FLT_EN:使能滤波功能
ECNT_RESET:允许在周期性采样模式下重置ECNT计数器
0: ECNT计数器以绕行模式运行
1: ECNT计数器周期性采样复位
ISL:忽略信号电平
0:使用DSL位选择激活信号电平
1:忽略DSL,将两个边沿都视为活动边沿
DSL:信号电平控制
0:从下降沿开始测量(低电平测量)
1:测量从上升沿开始(高电平测量)
CNTS_SEL:选择CNTS寄存器
0:使用CNT寄存器作为输入
1:使用TBU_TS0作为输入
GPR1_SEL/GPR0_SEL:
如果EGPR1/0_SEL=0:
00B使用TBU_TS0作为输入
01B使用TBU_TS1作为输入
10B使用TBU_TS2作为输入
11B使用CNTS作为输入;如果选择通道=0中的TGPS模式,则使用TIM Filter F_OUT作为输入。
如果EGPR0_SEL=1:
00B,则使用ECNT作为输入
01B reserved
10B reserved
11B reserved
注意:如果将保留值写入EGPR1/0_SEL、GPR1/0_SEL位字段,则硬件将使用TBU_TS0输入。
CICTRL:选择输入的通道。
0:使用信号TIM_IN(x)作为通道x的输入
1:使用信号TIM_IN(x-1)作为通道x的输入(如果x为0,则使用TIM_IN(7))
ARU_EN:GPR0和GPR1寄存器值路由到ARU
0B寄存器内容未路由
1B寄存器内容路由
OSM:0B连续操作模式1B单点模式注:在单点模式下完成操作后,TIM_EN位自动清除。
TIM_MODE:000B PWM测量模式(TPWM)
001B脉冲积分模式(TPIM)
010B输入事件模式(TIEM)
011B输入预分频器模式(TIPM)
100B位压缩模式(TBCM)
101B选通周期采样模式(TGPS)
注:位压缩模式仅在TIM信道0中可用。如果在任何其他信道中选择此模式,则使用TIM_Mode=000(TPWM模式)。然而,寄存器TIM_MODE的读取值为100。
注:如果未定义的值写入TIM_MODE寄存器,硬件会自动切换到TIM_MODE=000(TPWM模式)
注:启用TIM通道时,不应更改TIM_MODE寄存器。
注:如果在DSL定义的第一个有效边缘发生后启用TIM通道并在TPWM或TPIM模式下运行,则DSL、ISL和TIM_mode的重新配置不会更改通道行为。
重新配置后读取这些位字段将显示新配置的设置,但初始通道行为不会改变。只有禁用TIM_EN=1才能更改通道操作模式。
TIM_EN:0B通道已禁用
1B通道已启用
注:启用通道会将寄存器ECNT、TIMi_CHx_CNT、TIMi_CHx_GPR0和TIMi_CHx_GPR1重置为其重置值。
注:在one-shot模式下完成操作后,TIM_EN位自动清除。否则,必须手动清除位
GTM0TIM0xCTRL (x = 0 to 7)
相对于TIM1多了一个TBU0_SEL
select for TIM0_CH[x]GPRz (z: 0,1)
0:使用TBU_TS0(23到0)存储在TIM0_CH[x]_GPR0/TIM0_CH[x]_GPR1中
1:使用TBU_TS0(26 ~ 3)存储在TIM0_CH[x]_GPR0/TIM0_CH[x]_GPR1中
GTM0TIMixFLTRE (i = 0,1, x = 0 to 7)
FLT_RE:上升沿滤波参数。
GTM0TIMixFLTFE (i = 0,1, x = 0 to 7)
FLT_FE:下降沿滤波参数
GTM0TIMixGPR0 (i = 0,1, x = 0 to 7)
ECNT:边沿计数
GPR0:输入信号特征参数0
GTM0TIMixGPR1 (i = 0,1, x = 0 to 7)
ECNT:边沿计数
GPR0:输入信号特征参数1
GTM0TIMixCNT (i = 0,1, x = 0 to 7)
CNT:SMU计数器的实际值
GTM0TIMixCNTS (i = 0,1, x = 0 to 7)
ECNT:边沿计数
CNTS:计数影子寄存器
GTM0TIMixIRQNOTIFY (i = 0,1, x = 0 to 7)
GLITCHDET:在通道x上检测到故障,(x = 0到7)。
0:未检测到最后一个边缘故障
1:检测到最后一个边缘故障
TODET:通道x输入信号超时,(x = 0 ~ 7)。
GPROFL:GPR0和GPR1数据溢出
CNTOFL:通道x SMU CNT计数器溢出, (x = 0 ~ 7)
ECNTOFL:通道x的ECNT计数器溢出,(x = 0 ~ 7)
NEWVAL:由通道x检测到的新测量值(x =0至7)
当CPU写访问值为“1”时,该位将被清除。读访问保持位不变。
GTM0TIMixIRQEN (i = 0,1, x = 0 to 7)
中断使能
GTM0TIMixIRQFORCINT (i = 0,1, x = 0 to 7)
软件触发中断
GTM0TIMixIRQMODE (i = 0,1, x = 0 to 7)
IRQ_MODE:IRQ模式选择
00:电平模式
01:脉冲模式
10:脉冲通知模式
11:单脉冲模式
GTM0TIMiRST (i = 0,1)
RST_CH0-7:软件复位通道
GTM0TIMiINSRC (i = 0,1)
MODE_0:输入源到通道0的多核编码正在使用中(MODE_x(1)定义信号的状态)
00:状态为0(忽略写访问)
01:将状态改为0
10:将状态改为1
11:状态为1(忽略写访问)
功能表:
MODE_x(1) = 0, VAL_x(1) = 0:使用TIM通道位场CICTRL定义的输入信号作为输入源。
MODE_x(1) = 0, VAL_x(1) = 1:使用TIM通道的TIM_AUX_IN信号作为输入源。
MODE_x(1) = 1:状态VAL_x(1)定义了TIM通道的输入电平。
VAL_0:输入到通道0多核编码的值(VAL_x(1)定义信号的状态)
00:状态为0(忽略写访问)
01:将状态改为0
10:将状态改为1
11:状态为1(忽略写访问)
GTM0TIMixEIRQEN (i = 0,1, x = 0 to 7)
TIM_GLITCHDETx_IRQ,TIM_TODETx_IRQ,TIM_GPROFL_IRQ,TIM_CNTOFLx_IRQ,TIM_ECNTOFLx_IRQ,TIM_NEWVALx_EIRQ
错误中断使能
GTM0TIMixTDUV (i = 0,1, x = 0 to 7)
TCS:超时时间选择
TOV:通道x的超时时间(x = 0到7)。
GTM0TIMixTDUC (i = 0,1, x = 0 to 7)
TO_CNT:通道x的当前超时值(x = 0到7)。
GTM0TIMixECNT (i = 0,1, x = 0 to 7)
ECNT:边沿个数
GTM0TIM00ECTRL (i = 0,1, x = 0 to 7)
EXT_CAP_SRC:定义用于触发EXT_CAPTURE功能的选定源
0000:选择了以下通道的NEW_VAL_IRQ
0001:选中了AUX_IN
0010:选择了以下通道的CNTOFL_IRQ
0011和CICTRL = 1:使用信号TIM_IN(x)作为通道x的输入
0011和CICTRL = 0:使用信号TIM_IN(x-1)作为通道x的输入(或TIM_IN(m-1),如果x为0)
0100:选择以下通道的ECNTOFL_IRQ
0101:选择了以下通道的TODET_IRQ
0110:下面通道的GLITCHDET_IRQ被选中
0111:选择了以下通道的GPROFL_IRQ
1000:由以下通道的CLK_SEL选择的cmu_clk
1001:以下通道的REDGE_DET被选中
1010:选择以下通道的FEDGE_DET
1011:以下通道的逻辑或(FEDGE_DET, REDGE_DET)被选中
未定义的值将不会写入,AEI_STATUS将发出“10”信号。
GTM0TIMiINPVAL (i = 0,1)
TIM_IN:信号经TIM输入后信号同步
F_IN:信号在INPSRC选择之后,在TIM FLT单元之前
F_OUT:信号经过TIM FIT单元之后