cpld如何对输入的光电信号进行去抖?
如题:cpld需要对光电信号进行计数,但是信号有抖动,可以通过程序去掉吗? 本帖最后由 zxq6 于 2015-6-11 09:54 编辑这个是时序逻辑,用fpga比较好,可以判断脉冲宽度,用cpld,很占资源。 施密特触发器 低通滤波器 数字的那种
Y = (S1 | S2 |S3) 要是正交两相就没问题,RC或软件滤波都难兼顾极低频率到相对高频的大动态。 zxq6 发表于 2015-6-11 09:52
这个是时序逻辑,用fpga比较好,可以判断脉冲宽度,用cpld,很占资源。
判断脉冲宽度是用延时的方法么 y595906642 发表于 2015-6-11 10:17
施密特触发器
用cpld如何搭建施密特触发器 3DA502 发表于 2015-6-11 14:24
低通滤波器 数字的那种
Y = (S1 | S2 |S3)
不大明白 Y=(S1|S2|S3)公式的意思 NJ8888 发表于 2015-6-11 22:18
要是正交两相就没问题,RC或软件滤波都难兼顾极低频率到相对高频的大动态。 ...
现在输入就一路光电信号 wq_601840968 发表于 2015-6-15 07:45
判断脉冲宽度是用延时的方法么
常规使用的方法,计数。 wq_601840968 发表于 2015-6-15 07:46
不大明白 Y=(S1|S2|S3)公式的意思
module glitchfilter(clk,in,out)
input clk,in;
output out
reg s1,s2,s3;
always@(posedge clk) begin
s1 <= in;
s2 <= s1;
s3 <= s2;
end
assign out = s1 | s2 | s3;
endmodule 3DA502 发表于 2015-6-15 10:29
module glitchfilter(clk,in,out)
input clk,in;
output out
输入高电平信号是否应改为
assign out = s1 & s2 & s3;
页:
[1]