I2C匯流排學習 查缺補漏 應答訊號ACK

2021-08-26 07:52:21 字數 483 閱讀 7235

iic協議規定,當主機作為接收裝置時,主機對最後乙個位元組不應答,以向傳送裝置(從裝置)標識資料傳送結束。這是因為每次傳輸都應得到應答訊號後再進行下乙個位元組傳送。如果此時接收機應答了,那它就接收的不是最後乙個位元組了。如果是最後乙個位元組,第9個時鐘週期傳送的是非應答訊號(此時傳送的不是應答訊號就是非應答訊號),最後傳送停止訊號。

並非每傳輸8位資料之後,都會有ack訊號,有以下3中例外

當從機不能響應從機位址時(例如它正忙於其他事而無法響應iic匯流排的操作,或者這個位址沒有對應的從機),在第9個scl週期內sda線沒有拉低,即沒有ack訊號。這時,主機發出乙個p訊號終止傳輸或者重新發出乙個s訊號開始新的傳輸。

如果從機接收器在傳輸過程中不能接收更多的資料時,它不會發出ack訊號。這樣,主機就可以意識到這點,從而發出乙個p訊號終止傳輸或者重新發出乙個s訊號開始新的傳輸。

主機接收器在接收到最後乙個位元組後,也不會發出ack訊號。於是,從機傳送器釋放sda線,以允許主機發出p訊號結束傳輸。

I2C匯流排學習 查缺補漏 應答訊號ACK

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!iic協議規定,當主機作為接收裝置時,主機對最後乙個位元組不應答,以向傳送裝置 從裝置 標識資料傳送結束。這是因為每次傳輸都應得到應答訊號後再進行下乙個位元組傳送。如果此時接收機應答了,那它就接收的不是最後乙個位元組了。如果是最後乙個位元組,第9個...

I2C匯流排學習

i2c的時序圖,如下所示 匯流排應當時序圖 i2c時序要求 空閒狀態 scl和sda都是處於高電平。起始訊號 在scl時鐘線為高電平期間,sda輸出下降沿。停止訊號 在scl時鐘線為高電平期間,sda輸出上公升沿。應答訊號 傳送器每傳送乙個位元組,就在時鐘scl第9個脈衝釋放資料線,由接收器反饋乙個...

i2c匯流排時序

一心想踏入linux device driver的世界,想著i2c匯流排相對於usb等其他匯流排較為簡單,就以i2c作為切入點,希望可以逐步理解ldd的設計思想,並能理解其裝置模型的概念。在此對近期於i2c匯流排及驅動原始碼的理解做備忘,以免徒勞。平台友善之臂s70 tiny6410 cpusams...