查看: 11914|回复: 3

[其他] 每天解决一个问题14:IIC中的clock stretching

[复制链接]
  • TA的每日心情
    开心
    2020-5-24 10:39
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    140

    主题

    2087

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3913
    最后登录
    2020-5-24
    发表于 2015-9-7 23:07:43 | 显示全部楼层 |阅读模式
    首先感谢ocean提供的图片。
    今天测试raspberry pi时,它的I2C功能出现bug。bug就出现在clock stretching上。我很无奈放弃了使用他支持I2C硬件的方案。
    大家都知道,I2C支持“一主多从”通信,接线少,可扩展设备多。主设备始终控制着时钟线SCL,不论是往设备写还是从设备读。一般情况下,如果操作对象是EEPROM或者其他简单设备而言,无所谓,但是,如果从设备是处理器,在接到主机命令后要去处理一些运算,然后将结果返回给主机。这个时候可能造成来不及处理。怎么办?这时,从设备会主动控制时钟线把它拉低!直到数据准备好之后再释放时钟线,把控制权交还给MASTER。这也是I2C通信系统中,从机唯一能控制总线到时候!。
          关键是很多I2C主机不支持clock stretching功能,所以,无法和带有clock stretching功能的从机通信。所以在选择主机器件之前,必须要注意这一点,不然整个设计方案可能报废,影响很大。
          我之前的设计方案中,需要USB2I2C的芯片,我选择了FT2232和CY7C65215,这两块芯片虽然都标注支持USB2I2C,但是,前者是对GPIO拟合I2C操作,后者不支持clock stretching!所以,导致很长时间一度I2C通信失败,现在市场上这种ASIC,特别是usb转多个I2C MASTER的,几乎找不到IC,空白市场(不知道这个信息有木有价值)  
           所以,在大家今后的设计中,千万要注意,I2C不是想象中那么简单的。
    同时,google也搜到网上有老外也发现了这个bug,贴几张他的图:

    1.jpg
    8个时钟后,CLK拉低,那个红线的地方就是clock stretching,按道理来说,从机处理期间,时钟线拉低,等待释放后恢复正常,但是,raspi里面的恢复后的第九个时钟非常小!!!,在400k及以上的通信中,有概率造成通信失败。
    2.jpg
    这个图是CYPRESS的usb转serial的桥,可以看见是一直发的,没有clock stretching功能


    我知道答案 目前已有3人回答
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-9-7 23:49:16 | 显示全部楼层
    谢谢分享
    freescaleic.org.png
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-8-30 16:02
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    36

    主题

    1065

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1851
    最后登录
    2019-11-19
    发表于 2015-9-8 11:14:22 | 显示全部楼层
    IIC还有clock stretching功能,第一次听说,学习了
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-5-24 10:39
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    140

    主题

    2087

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3913
    最后登录
    2020-5-24
     楼主| 发表于 2015-9-8 23:01:02 | 显示全部楼层
    kingsings 发表于 2015-9-8 11:14
    IIC还有clock stretching功能,第一次听说,学习了

    最近才发现,谷歌上有
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-7 14:06 , Processed in 0.094327 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表