通過 I2C 執(zhí)行的 MCF8315D 寫入事務涉及以下序列(請參閱圖 6-67)。
- I2C 啟動條件。
- 啟動后跟 I2C 目標 ID 字節(jié),其中包括 7 位目標 ID 和設置為 0b 的 R/W 位。ACK(黃色框中)表示 MCF8315D 已處理接收的目標 ID,該目標 ID 與其 I2C 目標 ID 相匹配,因此將繼續(xù)執(zhí)行此事務。如果接收的目標 ID 與 MCF8315D 的 I2C ID 不匹配,則將忽略此事務,并且 MCF8315D 不會發(fā)送 ACK。
- 目標 ID 字節(jié)后跟 24 位控制字,每次發(fā)送一個字節(jié)??刂谱种械奈?23 為 0b,因為它是寫入事務。ACK(藍色框中)對應于 MCF8315D 發(fā)送到控制器的響應,表明已接收(控制字的)前一個字節(jié)并且可以發(fā)送下一個字節(jié)。
- 24 位控制字后跟數(shù)據(jù)字節(jié)??刂破靼l(fā)送的數(shù)據(jù)字節(jié)數(shù)取決于控制字中的 DLEN 字段。
- 在發(fā)送數(shù)據(jù)字節(jié)時,首先發(fā)送 LSB 字節(jié)。有關更多詳細信息,請參閱節(jié) 6.6.2.4。
- 16 位/32 位寫入 – 發(fā)送的數(shù)據(jù)被寫入控制字中所述的地址。
- 64 位寫入 – 64 位被視為兩個連續(xù) 32 位寫入??刂谱种兴龅牡刂酚米?Addr_1。Addr_2 由 MCF8315D 通過將 Addr_1 遞增 0x2 來計算。一共發(fā)送 8 個數(shù)據(jù)字節(jié)。前 4 個字節(jié)(以 LSB 在前的方式發(fā)送)寫入 Addr_1,接下來的 4 個字節(jié)寫入 Addr_2。
- 藍色框中的 ACK(每個數(shù)據(jù)字節(jié)之后)對應于 MCF8315D 向控制器發(fā)送的響應,表明已接收前一個數(shù)據(jù)字節(jié)并且可以發(fā)送下一個數(shù)據(jù)字節(jié)。
- 如果啟用了 CRC,則數(shù)據(jù)包以 CRC 字節(jié)結束。CRC 是針對整個數(shù)據(jù)包進行計算的(目標 ID + W 位、控制字、數(shù)據(jù)字節(jié))。MCF8315D 將在接收到 CRC 字節(jié)時發(fā)送一個 ACK。
- 終止事務的控制器 I2C 停止條件。