0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

电路从SDA和SCL线路中滤除毛刺的解决方法及过程

Hx 作者:工程师陈翠 2018-06-29 14:00 次阅读

问题描述:

I2C 控制器规范 v2.1 规定了滤除快速工作模式下 SDA 和 SCL 线路上最大间距为 50ns 的毛刺。

Zynq-7000 AP SoCs PS7 中的 I2C 控制器没有实现这些毛刺的滤波电路。

SDA 或 SCL 线路上的毛刺会导致信号线路的瞬间错误触发。

SDA 上的毛刺会导致错误 START 条件或错误 STOP 条件的识别,从而破坏总线协议。

SCL 上的毛刺会导致错误的数据传输,也会破坏总线协议。

两种情况下,数据传输都会受到破坏,并且总线可以挂起。

为了避免这种情况,用户需要实现一个电路从 SDA 和 SCL 线路中滤除毛刺。

解决方案

在将信号送到控制器之前,用户需要在外部利用电路滤除 SCL 和 SDA 上的毛刺。

解决方法:

用户可在 Zynq 的可编程逻辑部分或外部可编程器件(例如 CPLD)中采取如下解决办法。

毛刺滤波器电路由 SDA 和 SCL 信号的亚稳态触发器和去除抖动器逻辑组成。

逻辑电路在更快的时钟域上工作,能够采样在 SDA 和 SCL 信号上出现的毛刺。

SDA 和 SCL 信号穿过一个三级同步器以消除亚稳态。

逻辑电路需要更快速的时钟来滤除毛刺,且时钟频率至少应为 40 MHz。

不过,由于亚稳态触发器的存在,使用该更快频率的时钟源无需大量滤除毛刺。

推荐的时钟频率为 100 MHz。

毛刺滤除过程:

1. 检测 SDA 或 SCL 信号上的转变。用户需要为 SDA 和 SCL 实现独立的毛刺滤波电路。

2. 当检测到时钟边沿时,加载计数器,计数值应为需要去除抖动的时钟周期的数量(应可去除SDA 和 SCL 信号的 50ns 抖动)。将计数器递减。

3. 当计数器递减到 0 时,在输出线路断言之前的总线状态。如果信号值又发生变化,复位计数器,且不改变信号值。这样能消除任何毛刺。

4. 在计数器递减到 0 时,如果信号没有变化,那么在输出信号上分配新的 SCL 和 SDA 值。

注意: SCL 和 SDA 信号都需要去除 50ns 的抖动,以便让 SCL 和 SDA 的时序关系保持不变。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路
    +关注

    关注

    169

    文章

    5467

    浏览量

    169184
  • SDA
    SDA
    +关注

    关注

    0

    文章

    122

    浏览量

    27463
  • SCL
    SCL
    +关注

    关注

    1

    文章

    237

    浏览量

    16846
收藏 人收藏

    评论

    相关推荐

    FPGA设计毛刺产生原因及消除

    将带有毛刺的信号直接接入对毛刺敏感的输入端上,对于产生的毛刺,应仔细分析毛刺的来源和性质,针对不同的信号,采取不同的解决方法加以消除。 因此
    发表于 09-06 14:37

    急! I2C主机等待机应答时SDA线的数据问题

    I2C主机等待机应答时SDA线的数据问题/******应答信号*********/void response() {uchar i; i=1;scl=1;delay();whil
    发表于 05-17 14:05

    毛刺的滤波方法

    ,放大毛刺后如图2所示,大约维持10ns的高电平。图1图2如何滤除这些毛刺呢?办法有两个,其一就是用纯粹硬件的办法,在信号进入FPGA之前进行滤波处理,串个电阻并个电容都可以,特权同学并了一个20pF
    发表于 06-04 05:00

    哪里可以找到主控和模块的sclsda信号的合适引脚?

    喜我有一个i2c设计,需要连接virtex-6 ml605开发套件,Aardvark i2c / spi harware模块充当IIC主设备。任何人都可以告诉我主控和模块的sclsda
    发表于 10-09 08:52

    IIC线路串单向二极管对IIC通讯有影响吗?

    各位大神帮忙看看如下电路IIC线路串二极管可以吗?应用情况:1.测试时候PIN 17 19不接GND,接主设备IIC通讯,SDA,SCL
    发表于 06-02 10:42

    怎样去设计一个使用时序逻辑对单bit信号进行毛刺滤除操作的电路

    什么是边沿检测计数法?怎样去设计一个使用时序逻辑对单bit信号进行毛刺滤除操作的电路?怎样用verilog写出其代码?
    发表于 08-19 06:53

    I2C半双工通信时钟线SCL与数据线SDA介绍

    I2C半双工通信时钟线SCL,数据线SDA起始位:SCL为高,SDA下降沿停止位:SCL为高,SDA
    发表于 12-16 08:20

    SCL线(时钟线)与SDA(数据线)解析

    SCL线(时钟线)为高电平期间SDA(数据线)必须保持稳定,通过在SCL高电平期间对SDA的变化来识别传输的终止信号或起始信号,SDA产生下
    发表于 02-24 06:01

    LPC55xxSDAX/SCLX和SDA/SCL引脚功能的区别?

    我们目前正在开发基于 LPC55xx 系列的新产品。 我注意到一些引脚可以配置为 SDAX 或 SDA,或者类似的 SCLX 或 SCL。 但是,查看处理器的用户手册,我不清楚这些功能之间的区别
    发表于 05-17 07:47

    FPGA | 竞争冒险和毛刺问题

    ,某一输入变量经过不同途径传输后,到达电路某一汇合点的时间有先有后,这种现象称竞争;由于竞争而使电路输出发生瞬时错误的现象叫做冒险。(也就是由于竞争产生的毛刺叫做冒险)。 判断
    发表于 11-02 17:22

    组合逻辑中的竞争与冒险及毛刺的处理方法

    组合逻辑中的竞争与冒险及毛刺的处理方法 在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。
    发表于 01-24 18:12 0次下载
    组合逻辑中的竞争与冒险及<b class='flag-5'>毛刺</b>的处理<b class='flag-5'>方法</b>

    密封橡胶圈毛刺缺陷检测方法的研究

    针对密封橡胶圈毛刺缺陷,提出了一种新的检测方法,该方法根据圆轮廓点在不同象限的分布情况不同,首先使用 窗口模板寻找可疑点,然后对可疑点进行二次检测,滤除
    发表于 07-16 16:13 20次下载

    基于FPGA的毛刺问题及解决方法

    毛刺现象在FPGA设计中非常普遍, 而毛刺的出现往往导致系统结果的错误。本文从FPGA的原理结构的角度深入探讨了毛刺产生的原因及产生的条件,总结了多种不同的解决方法,并结合具体的应用对
    发表于 11-22 14:24 8439次阅读

    PCBA线路板加工抛料的原因及解决方法

    PCBA线路板加工是电子设备在设计生产过程中不可缺少的步骤,PCBA线路板承载着电子设备的控制系统,它的质量直接影响了电子设备的运行和产品质量,一款好的产品离不开高质量PCBA线路板的
    的头像 发表于 10-10 11:28 4072次阅读

    230kV单电源线路保护问题及解决方法综述

    230kV单电源线路保护问题及解决方法综述
    发表于 06-26 16:37 8次下载