欢迎来到天天文库
浏览记录
ID:12065334
大小:127.50 KB
页数:5页
时间:2018-07-15
《理解stm32定时器中的输入捕获滤波器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、理解STM32定时器中的输入捕获滤波器关于STM32定时器中的输入捕获滤波器的功能描述,在中文参考手册中描述如下:我不理解官方的说明,在网上搜了老半天,基本都是下面这几句话:1)当滤波器连续采样到N次个有效电平时,认为一次有效的输入电平。2)该数字滤波器实际上是个事件计数器,它记录到N个事件后会产生一个输出的跳变。例如:当f(CK_INT)=72MHz,CKD[1:0]=01时,选择f(DTS)=f(CK_INT)/2=36MHz;而ETF[3:0]=0100,则采样频率f(SAMPLING)=f(DTS)/2=1
2、8MHz,N=6,此时高于3MHz的信号将被这个滤波器滤除,这样就有效地屏蔽了高于3MHz的干扰。看了这些说法,我还是不理解这个数字滤波器到底是如何工作的,问题如下:问题1:当滤波器连续采样到N次个有效电平时,是输出这个电平?还是输出一个跳变?问题2:当滤波器没有连续采样到N次个有效电平时,输出是的什么?带着这两个问题,我们来分析一下,下面以TIM3为例:首先可以肯定输入捕获过程如下:详细信息见参考手册中的14.2节,通用定时器框图TIM3_CH1(PA.6)---->TI1(外部信号)-------> 输入滤波
3、器IC1F[3:0]-----> IC1(滤波器输出信号)------->输入捕获预分频器IC1PSC[1:0]---->捕获/比较1寄存器CCR1从上面的过程可以知道,1)发生输入捕获所需要的跳变沿是由滤波器输出产生的。2)滤波器和预分频器可软件编程,如果IC1F[3:0]=0x0,则滤波器全通,即TI1和IC1是同一个信号。借助这两点分析,我假设的滤波器的工作原理是:问题1猜测答案:当滤波器连续采样到N次个有效电平时,就输出这个有效电平。问题2猜测答案:当滤波器没有连续采样到N次个有效电平时,再从0开始计数,
4、输出一直保持上一次输出的有效电平。例如:滤波器上一次输出是高电平,本次连续采样到N-1个高低平,但第N是个低电平,那么滤波器仍然保持上次输出的高电平,并重新开始计数,记录1次低电平,如果在其后采样的N-1个也是低电平,此时滤波才输出低电平,于是一个下降沿才出现在IC1上。举例:如果我们产生一个f=1MHz的占空比为50%的方波信号,滤波器的采样频率f(SAMPLING)=18MHz,那么如果滤波器要想监测的1MHz信号,并且滤除高频干扰,则理论上N<=9,即f(SAMPLING)/N >=2*f,这让我想起了《信
5、号与系统》中的“奈圭斯特采样频率”。如下图所示:从上图中我们可以看到,对于1MHz的信号,当采样频率为18MHz时,N最大为9。当N大于9时,是不可能连续采样到大于10个的有效电平的。下面我们验证这个猜测:按照这个猜想,我们先求一下这个数字低通滤波器的最小通带截止频率。令CKD[1:0]=01b,即f(DTS)=f(CK_INT)/4=18MHz; IC1F[3:0]=1111b,即f(SAMPLING)=f(DTS)/32=562.5KHz, N=8;由公式f(SAMPLING)/N >=2*f可得:f<=
6、35.156KHz,也就是说理论上:滤波器可以监测到输入信号频率小于35.156KHz,占空比为50%的方波信号的跳变沿,换句话说,大于35.156KHz的此类信号将被滤除掉。下面是STM32定时器输出频率的计算公式:f(OC1)=72,000,000/(ARR-1)*(PSC-1);50%的PWM波不同频率的计算值如下表:_______________________________________________________________________ fHz
7、 ARR
8、
9、 PSC
10、 理论上
11、 实际上40K
12、 1800-1
13、 0
14、 监测不到跳变沿
15、 监测不到跳变沿36K
16、 2000-1
17、 0
18、 监测不到跳变沿
19、 监测到跳变沿35.156K
20、 2048-1
21、 0
22、 临界值
23、 监测到跳变沿35K
24、
25、 2057-1
26、 0
27、 可检测到跳变沿
28、 监测到跳变沿_______________________________________________________________________下面是源代码:配置TIM3的通道1(PA.6)输出不同频率的占空比50%的方波,配置TIM3的通道2(
此文档下载收益归作者所有