滤波器
递减计数器
ETF[3:0]=0000
外部触发滤波器
Externaltriggerfilter
f
DTS
TRGI
分频器
/1,/2,/4,/8
TIMx从模式控制寄存器
TIMxslavemodecontrolregister
TIMx_SMCR位[11:8]
此位域可定义ETRP信号的采样频率和适用于ETRP
的数字滤波时间。数字滤波器由事件计数器组成,
每N个事件才视为一个有效边沿:
0000:无滤波器,按f
DTS
频率进行采样
0001:f
SAMPLING
=f
CK_INT
, N=2
0010:f
SAMPLING
=f
CK_INT
, N=4
0011:f
SAMPLING
=f
CK_INT
, N=8
0100:f
SAMPLING
=f
DTS/2
, N=6
0101:f
SAMPLING
=f
DTS/2
, N=8
0110:f
SAMPLING
=f
DTS/4
, N=6
0111:f
SAMPLING
=f
DTS/4
, N=8
1000:f
SAMPLING
=f
DTS/8
, N=6
1001:f
SAMPLING
=f
DTS/8
, N=8
1010:f
SAMPLING
=f
DTS/16
, N=5
1011:f
SAMPLING
=f
DTS/16
, N=6
1100:f
SAMPLING
=f
DTS/16
, N=8
1101:f
SAMPLING
=f
DTS/32
, N=5
1110:f
SAMPLING
=f
DTS/32
, N=6
1111:f
SAMPLING
=f
DTS/32
, N=8
ETPS[1:0]=01
外部触发预分频器
Externaltriggerprescaler
TIMx从模式控制寄存器
TIMxslavemodecontrolregister
TIMx_SMCR位[13:12]
外部触发信号 ETRP频率不得超过 TIMxCLK频率的 1/4。
可通过使能预分频器来降低 ETRP频率。
这种方法在输入快速外部时钟时非常有用。
00:预分频器关闭
01:2分频 ETRP频率
10:4分频 ETRP频率
11:8分频 ETRP频率
0
1
ETP[0]=0
外部触发极性
Externaltriggerpolarity
TIMx从模式控制寄存器
TIMxslavemodecontrolregister
TIMx_SMCR位[15]
此位可选择将 ETR还是 ETR用于触发操作
0:ETR未反相,高电平或上升沿有效。
1:ETR反相,低电平或下降沿有效。
ETR
ETR
CK_PSC
内部时钟
模式
外部时钟
模式2
外部时钟
模式1
编码器
模式
ETRF
CK_INT
TI2F或
TI1F或
ETR引脚
SMS[2:0]
从模式选择
Slavemodeselection
TIMx从模式控制寄存器
TIMxslavemodecontrolregister
TIMx_SMCR位[2:0]
选择外部信号时,触发信号 (TRGI)的有效边沿与外部输入上所选的极性相关(请参见输入 控制寄存器和控制寄存器说明)。
000:禁止从模式如果 CEN=“1”,预分频器时钟直接由内部时钟提供。
001:编码器模式 1计数器根据 TI1FP1电平在 TI2FP2边沿递增/递减计数。
010:编码器模式 2计数器根据 TI2FP2电平在 TI1FP1边沿递增/递减计数。
011:编码器模式 3计数器在 TI1FP1和 TI2FP2的边沿计数,计数的方向取决于另外一 个信号的电平。
100:复位模式在出现所选触发输入 (TRGI)上升沿时,重新初始化计数器并生成一个寄存器更新事件。
101:门控模式触发输入 (TRGI)为高电平时使能计数器时钟。只要触发输入变为低电 平,计数器立即停止计数(但不复位)。
计数器的启动和停止都是受控的。
110:触发模式触发信号 TRGI出现上升沿时启动计数器(但不复位)。只控制计数器的启动。
111:外部时钟模式 1由所选触发信号 (TRGI)的上升沿提供计数器时钟。
注意: 如果将 TI1F_ED选作触发输入(TS=“100”),则不得使用门控模式。实际上,TI1F每次转换时,TI1F_ED都输出 1个脉冲,
而门控模式检查的则是触发信号的电平。
ECE[0]=1
外部时钟使能
Externalclockenable
TIMx从模式控制寄存器
TIMxslavemodecontrolregister
TIMx_SMCR位[14]
此位可使能外部时钟模式 2。
0:禁止外部时钟模式 2
1:使能外部时钟模式 2。
计数器时钟由 ETRF信号的任意有效边沿提供。
注意: 1:将 ECE位置 1与选择外部时钟模式 1并将 TRGI连接到 ETRF(SMS=111且 TS=111)具有相同效果。
2:外部时钟模式 2可以和以下从模式同时使用:复位模式、门控模式和触发模式。
不过此类情况下 TRGI不得连接 ETRF(TS位不得为 111)。
3:如果同时使能外部时钟模式 1和外部时钟模式 2,则外部时钟输入为 ETRF。
f
CK_INT
CEN[0]=1
计数器使能
Counterenable
TIMx控制寄存器 1
TIMxcontrolregister1
TIMx_CR1位[0]
0:禁止计数器
1:使能计数器
注意: 只有事先通过软件将 CEN位置 1,才可以使用外部时钟、门控模式和编码器模式。
而 触发模式可通过硬件自动将 CEN位置 1。
外部时钟模式2
外部时钟模式2,顾名思义时钟信号来自芯片外部。
时钟源进入定时器的流程如下:
①
时钟信号输入引脚
外部时钟信号通过复用为TIMx_ETR的IO引脚进入STM32芯片内部,因此IO引脚需要配置为复用功能,使得IO与定时器相连通.
②
外部触发极性
来自ETR引脚输入的信号可以选择为上升沿或者下降沿有效,具体的由TIMx_SMCR的位ETP配置 。
选择下降沿有效的话,信号会经过反相器。
③
外部触发预分频器
由于ETRP的信号的频率不能超过TIMx_CLK的1/4,当触发信号的频率很高的情况下,就必须使用分频器来降频,
具体的由TIMx_SMCR的位ETPS[1:0]配置。 系数范围:/1、/2、/4、/8。
④
滤波器
如果ETRP的信号的频率过高或者混杂有高频干扰信号的话;
我们就需要使用滤波器对ETRP信号重新采样,来达到降频或者去除高频干扰的目的。
具体的由TIMx_SMCR的位ETF[3:0]配置,
其中的 f
DTS
是由内部时钟CK_INT分频得到,具体的由TIMx_CR1的位CKD[1:0]配置。
⑤
从模式选择
经过滤波器滤波的信号连接到 ETRF引脚后,触发信号成为外部时钟模式2的输入,最终等于CK_PSC,然后驱动计数器CNT计数。
具体的配置TIMx_SMCR的位ECE为1即可选择外部时钟模式2。
⑥
使能计数器
经过上面的5个步骤之后,最后我们只需使能计数器开始计数,外部时钟模式2的配置就算完成。
使能计数器由TIMx_CR1的位CEN配置。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
例如,要使递增计数器在 ETR每出现 2个上升沿时计数(不需要滤波),请执行以下步骤:
第一步:配置IO引脚为 TIMx_ETR 复用功能。(如标号 1)
第二步:由于此例中不需滤波器,因此在 TIMx_SMCR寄存器中写入 ETF[3:0]=0000。(如标号 4 )
第三步:通过在 TIMx_SMCR寄存器中写入 ETPS[1:0]=01来设置预分频器(2分频)。(如标号 3 )
第四步:通过在 TIMx_SMCR寄存器中写入 ETP=0来选择 ETR引脚的上升沿检测。(如标号 2 )
第五步:通过在 TIMx_SMCR寄存器中写入 ECE=1来使能外部时钟模式 2。(如标号 5 )
第六步:通过在 TIMx_CR1寄存器中写入 CEN=1来使能计数器。(如标号 6 )
ETR每出现 2个上升沿,计数器计数一次。
ETR的上升沿与实际计数器时钟之间的延迟是由于 ETRP信号的重新同步电路引起的。
f
CK_INT
CNT_EN
ETR
ETRP
分频器
/1,/2,/4,/保留
CKD[1:0]=00
时钟分频
Clockdivision
TIMx_CR1位[9:8]
TIMx控制寄存器 1
TIMxcontrolregister1
此位域指示定时器时钟(CK_INT)频率与死区发生器以及数字滤波器(ETR、TIx)所使用的死区及采样时钟
(tDTS)之间的分频比,00:t
DTS
=t
CK_INT
01:tDTS=2*t
CK_INT
10:tDTS
=4*t
CK_INT
11:保留,不要设置成此值
f
CK_INT
f
DTS
ETRF
计数器时钟=CK_CNT=CK_PSC
34 35 36
ETRP
(f
ETRP
<1/4f
TIMxCLK
)
外部时钟模式2下的控制电路时序图(ETRF频率达到可采样的极限频率)
ETRF未在此处生成上升沿,猜测与TIMx_SMCR中ETPS[1:0]有关
外部
触发信号ETRP频率不得超过TIMxCLK频率的1/4有关。
1
2
3
4
5
计数器寄存器
6