Data and ACK/NACK
正常情况
主接收机必须向从机发送传输结束的信号。
异常情况
- 发送到总线上的地址,却没有匹配的从机
- 从机处于 busy 状态。
- 在传输过程中,从机获取其不理解的数据或命令。
- 在传输过程中,从机无法再接收任何数据字节。
主机可以生成停止条件以中止传输,或生成重复启动条件以启动新传输。
Clock stretching 时钟延展
- 时钟延展:通过将 SCL 线保持在低电平来暂停传输。在 SCL 再次拉高之前,传输无法进行。
- 从机通过将 SCL 线拉低,强制主机进入等待状态。
- 时钟延展功能是可选的,不是必选的
- 时钟延展导致需要更多时间来存储接收到的字节或准备另一个要传输的字节
- 通过延长每个时钟低电平周期来降低总线时钟。任何主机的速度都与该设备的内部运行速度相适应。
- 在 Hs 模式下,此握手功能只能在字节级别使用
I2C 主设备始终控制着时钟线 SCL,不论是往设备写还是从设备读。一般情况下,如果操作对象是 EEPROM 或者其他简单设备而言,无所谓,但是,如果从设备是处理器,在接到主机命令后要去处理一些运算然后得出结果返回给主机。这个时候可能造成来不及处理。怎么办?这时,从设备会主动控制时钟线把它拉低!直到数据准备好之后再释放时钟线,把控制权交还给 MASTER。这也是 I2C 通信系统中,从机唯一能控制总线的时候!
关键是很多 I2C 主机不支持 clock stretching 功能,所以,无法和带有 clock stretching 功能的从机通信!所以,各位在选择主机器件之前,必须要注意这一点,不然整个设计方案可能报废,影响很大。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
时钟
+关注
关注
10文章
1722浏览量
131393 -
I2C
+关注
关注
28文章
1482浏览量
123406
发布评论请先 登录
相关推荐
请问S32K148 LPI2C主控如何支持时钟延展功能?
我们想使用 S32K148 LPI2C 配置 ADI A2B 网络,需要 I2C master 支持时钟延展功能。S32K148 LPI
发表于 04-06 06:36
i2c总线ppt(I2C总线器件应用)
I2C总线器件应用第一节 I2C总线器件应用概述I2C总线工作原理I2C总线系统结构I2C总线系统结构如图7-1所示。其中,SCL是
发表于 08-13 17:34
•0次下载
i2c总线技术 (非常详细)
i2c总线技术:2 I2C 总线使设计人员和厂商都得益.. 32.1 设计人员的得益.. 42.2 厂商的得益. 53 介绍I2C 总线规范
发表于 03-25 08:58
•62次下载
I2C Guid I2C指南
I2C Guid I2C指南
The I2C bus is used in a wide rangeof applications because it is simpleand
发表于 04-23 13:55
•36次下载
I2C总线在Linux系统中的驱动设计
介绍I2C总线的基本概念和工作原理,叙述I2C总线扩展器件ZLG7290的功能特点。在以S3C2410为微控制器,ZLG7290为
发表于 12-29 16:52
•40次下载
I2C总线实验(实时时钟、EEPROM和ZLG7290的实验
I2C 总线实验(实时时钟、EEPROM 和ZLG7290 的实验)
一. 实验目的加深用户对I2C 总线的理解,熟悉I2C 器件的使用
发表于 09-22 16:58
•4260次阅读
硬件I2C与模拟I2C
配置;而软件I2C是没有寄存器这个概念的。 软件I2C一般是使用GPIO管脚,用软件控制SCL,SDA线输出高低电平,模拟i2c协议的时序。例如下面这段
发表于 12-28 19:14
•81次下载
评论