I2C總線學(xué)習(xí)—查缺補(bǔ)漏—應(yīng)答信號ACK
并非每傳輸8位數(shù)據(jù)之后,都會(huì)有ACK信號,有以下3中例外
- 當(dāng)從機(jī)不能響應(yīng)從機(jī)地址時(shí)(例如它正忙于其他事而無法響應(yīng)IIC總線的操作,或者這個(gè)地址沒有對應(yīng)的從機(jī)),在第9個(gè)SCL周期內(nèi)SDA線沒有拉低,即沒有ACK信號。這時(shí),主機(jī)發(fā)出一個(gè)P信號終止傳輸或者重新發(fā)出一個(gè)S信號開始新的傳輸。
- 如果從機(jī)接收器在傳輸過程中不能接收更多的數(shù)據(jù)時(shí),它不會(huì)發(fā)出ACK信號。這樣,主機(jī)就可以意識到這點(diǎn),從而發(fā)出一個(gè)P信號終止傳輸或者重新發(fā)出一個(gè)S信號開始新的傳輸。
- 主機(jī)接收器在接收到最后一個(gè)字節(jié)后,也不會(huì)發(fā)出ACK信號。于是,從機(jī)發(fā)送器釋放SDA線,以允許主機(jī)發(fā)出P信號結(jié)束傳輸。
評論