新手入门
- 积分
- 18
- 金钱
- 18
- 注册时间
- 2018-8-3
- 在线时间
- 7 小时
|
5金钱
关于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 = 18MHz, N = 6,此时高于3MHz的信号
将被这个滤波器滤除,这样就有效地屏蔽了高于3MHz的干扰。
但从手册上看,假如系统时钟的频率保持72M不变,CKD的最大分频数是4,那么: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 <= 35.156KHz,
也就是说理论上:滤波器可以监测到输入信号频率小于35.156KHz,占空比为50%的方波信号的跳变沿,换句话说,大于35.156KHz的此类信号将被滤除掉。
现在的问题是:
假如我想过滤掉频率大于500HZ的信号,如果只是用硬件滤波,该怎么设置此输入捕获定时器的参考时钟(整体系统时钟不变,只是修改输入捕获的时钟),或者还有其他过滤参数可以选择吗?
|
|