Data and ACK/NACK
正常情況
主接收機必須向從機發送傳輸結束的信號。
異常情況
- 發送到總線上的地址,卻沒有匹配的從機
- 從機處于 busy 狀態。
- 在傳輸過程中,從機獲取其不理解的數據或命令。
- 在傳輸過程中,從機無法再接收任何數據字節。
主機可以生成停止條件以中止傳輸,或生成重復啟動條件以啟動新傳輸。
Clock stretching 時鐘延展
- 時鐘延展:通過將 SCL 線保持在低電平來暫停傳輸。在 SCL 再次拉高之前,傳輸無法進行。
- 從機通過將 SCL 線拉低,強制主機進入等待狀態。
- 時鐘延展功能是可選的,不是必選的
- 時鐘延展導致需要更多時間來存儲接收到的字節或準備另一個要傳輸的字節
- 通過延長每個時鐘低電平周期來降低總線時鐘。任何主機的速度都與該設備的內部運行速度相適應。
- 在 Hs 模式下,此握手功能只能在字節級別使用
I2C 主設備始終控制著時鐘線 SCL,不論是往設備寫還是從設備讀。一般情況下,如果操作對象是 EEPROM 或者其他簡單設備而言,無所謂,但是,如果從設備是處理器,在接到主機命令后要去處理一些運算然后得出結果返回給主機。這個時候可能造成來不及處理。怎么辦?這時,從設備會主動控制時鐘線把它拉低!直到數據準備好之后再釋放時鐘線,把控制權交還給 MASTER。這也是 I2C 通信系統中,從機唯一能控制總線的時候!
關鍵是很多 I2C 主機不支持 clock stretching 功能,所以,無法和帶有 clock stretching 功能的從機通信!所以,各位在選擇主機器件之前,必須要注意這一點,不然整個設計方案可能報廢,影響很大。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
時鐘
+關注
關注
11文章
1746瀏覽量
131802 -
I2C
+關注
關注
28文章
1495瀏覽量
124563
發布評論請先 登錄
相關推薦
請問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
?4314次閱讀
硬件I2C與模擬I2C
配置;而軟件I2C是沒有寄存器這個概念的。 軟件I2C一般是使用GPIO管腳,用軟件控制SCL,SDA線輸出高低電平,模擬i2c協議的時序。例如下面這段
發表于 12-28 19:14
?81次下載
評論