关于FPGA实现I2C总线时提高可靠性的总结

  1. 采样窗口的选择:
    不要在SCL下降沿后立刻采样SDA信号。 I2C总线经常用于可插卸外设。其导线长度可从几厘米到几米。长导线增加了总线的电容,导致信号改变时间缓慢,SCL下降后立刻采样,SDA的信号可能在短导线时已经稳定,而长导线时SDA还在冲放电的不稳定阶段,导致采样信号错误。
    采样点应该选在SDA稳定的中心点,这样留给总线充电的时间比较充裕。
  2. 提高抗干扰能力:
    实际工业高辐射环境下,不排除EMC做的不好,IIC总线收到其他信号的影响,出现毛刺。如果毛刺出现在SDA的采样点,便会出现采样错误。为了在毛刺干扰下仍然可以采样成功,应该不只采样一个点,而是参考debouncing,采样多个点,当多个点的值一致时,或者进行毛刺判断,采样数据才会被取用。
    例如,采样五个点,“11111” 才会被视为是SDA线上的一个高电位,“00000”反之。
    毛刺判断,采样五个点,有四个一就可以视为高电位,例如“11101” 视为有干扰情况下的高电位。“00100”反之。
  3. 降低IIC自身的电磁辐射:
    非常陡的电平变化会引起强的电磁辐射(EMI), 所以IIC电平变化的原则是在满足Timing的前提下尽可能降低电平变化的速度,使电平变化曲线变缓。
    达到这一目的有两点需要注意。 第一是选择合适的上拉电阻。第二是管脚约束,不要使用Vivado默认的drive strength 和 slew rate值。从最低的值开始调试,使用满足Timing的时最低的drive strenth 和 slew rate
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值