微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何对SPI的输入时钟信号进行去毛刺(去抖)处理

如何对SPI的输入时钟信号进行去毛刺(去抖)处理

时间:10-02 整理:3721RD 点击:
FPGA通过SPI接收外部数据,用spi时钟(20MHz)对spi数据采样后用内部时钟逻辑转存。发现会偶发由于spi时钟有毛刺导致的逻辑错误。请问应该怎么做?用FPGA内部产生的高速时钟(比如200MHz)对spi总线时钟数据同步再做接收可行吗?或者还有什么比较好的方法?谢谢各位大神

可以的,还可以用高速时钟做个简单的数字滤波,简单的就是连续采样几个周期,一致才采用



  统计2#的观点,可以用高速的时钟连续采样,例如连续两次采集到0表示0,并且连续两次采集到1表示1,表示上升沿。

SPI本来就是有一个时钟同步的引脚,
这个同步要求就是没有毛刺,如果有说明前级有问题,
毛刺一般简单电容滤波一下就行了吧?

建议查找一些为什么输入时钟有毛刺,spi的clk信号就是作为时钟的
1.如果使用200MHz的时钟采样,连续2个0为0,连续2个1为1,那么还是会存在漏判的情况,比如毛刺宽度大于5ns,就会有可能造成采样误判。
2.采用200MHz时钟过采样的方法,spi的clk信号估计最高也就20MHz,再往上提速就难了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top