关键词:PFI Filter、最小脉宽
一、功能介绍
PFI Filter功能主要用来对输入PFI通道中的意外毛刺信号进行滤波。适用于所有数字输入(DI)通道和计数器输入(CI),默认设置为禁用。当通过软件启用该功能时,需配置最小脉冲宽度值,该值代表信号变化时,能确保通过滤波器的最短时长,单位为ns。
通常PFI Filter通过设置脉宽来设计滤波器,脉宽最小值由基准时钟决定,脉宽最大值由分频倍数决定。以JY5113为例,内部基准采样时钟=125 MHz,则最小脉冲宽度值= 8 ns ,按1倍分频计算(步进=8 ns),则最大脉冲宽度=8*(256-1)=2040 ns,5113支持3种分频,脉冲宽度设置详见如下:

对应的频率应用范围:957.4 Hz~125 MHz,可作为低通滤波器使用。
如下图,开启滤波功能后,若设置最小脉宽为200 ns,则第一个信号的脉冲宽度为 180 ns小于200 ns,则会被滤除。而接下来的信号,其脉冲宽度为 210 ns大于200 ns则保留。当关闭滤波功能以后,后续的180 ns则会被保留输出。

注意:
1.默认为关闭状态;
2.脉冲宽度单位ns,软件根据步进规则向下取整(如设置210 ns,测实际用208 ns);
3.状态设置保留,若启动后,关闭要主动Disable,删代码或屏蔽无效;
二、使用说明
启动PFI Filter:
在CI任务中对PFI0端口,设置200ns的最小脉宽,设置如下:
ciTask.Device.PFI.Filter.Enable( JY5113.PFITerminal.PFI0, 200);
关闭PFI Filter:
关闭PFI0端口:
ciTask.Device.PFI.Filter.Disable( JY5113.PFITerminal.PFI0);
关闭所有端口:
ciTask.Device.PFI.Filter.DisableAll();
Eg:若已知毛刺的频率≥1 MHz,则对应脉宽≤1000 ns,若要滤除需要设置脉宽大于1008 ns。