STM32定时器的输入滤波机制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

STM32定时器的输入滤波机制

STM32的定时器输入通道都有一个滤波单元,分别位于每个输入通路上(下图中的黄色框)和外部触发输入通路上(下图中的兰色框),它们的作用是滤除输入信号上的高频干扰。

具体操作原理如下:

在TIMx_CR1中的CKD[1:0]可以由用户设置对输入信号的采样频率基准,有三种选择:

1)采样频率基准f

DTS =定时器输入频率f

CK_INT

2)采样频率基准f

DTS =定时器输入频率f

CK_INT

/2

3)采样频率基准f

DTS =定时器输入频率f

CK_INT

/4

然后使用上述频率作为基准对输入信号进行采样,当连续采样到N次个有效电平时,认为一次有效的输入电平。

实际的采样频率和采样次数可以由用户程序根据需要选择;

外部触发输入通道的滤波参数在从模式控制寄存器(TIMx_SMCR)的ETF[3:0]中设置;

每个输入通道的滤波参数在捕获/比较模式寄存器1(TIMx_CCMR1)或捕获/比较模式寄存器2(TIMx_CCMR2)的IC1F[3:0]、 IC2F[3:0]、IC3F[3:0]和IC4F[3:0]中设置。

例如:当f

CK_INT =72MHz时,选择f

DTS

=f

CK_INT

/2=36MHz,采样频率f

SAMPLING

=f

DTS

/2=18MHz

且N=6,则频率高于3MHz的信号将被这个滤波器滤除,有效地屏蔽了高于3MHz 的干扰。

比如,结合输入捕获的中断,可以轻松地实现按键的去抖动功能,而不需要软件的干预;这可是由硬件实现的去抖动功能,大大节省了软件的开销和程序代码的长度。

每个定时器最多可以实现4个按键的输入,这个方法也可以用于键盘矩阵的扫描,而且因为是通过中断实现,软件不需频繁的进行扫描动作。

相关文档
最新文档