ZHCAE77 July 2024 PCA9535 , PCA9555 , TCA6416A , TCA6424A , TCA9535 , TCA9539 , TCA9539-Q1 , TCA9555 , TCAL6416R , TCAL9539 , TCAL9539-Q1
使用自動遞增功能允許用戶在無需執行停止條件的情況下讀取或寫入數據。這樣可以在 I2C 總線的初始化序列期間節省 I2C 控制器的時間和計算周期。圖 2-1 展示了使用自動遞增功能的突發寫入示例。該示例展示了向 I2C 目標寫入 4 個數據字節。每個字節的數據都從第一個寄存器(寄存器 0)開始寫入堆棧中的下一個寄存器。發送到 I2C 目標的總字節數為 6。如果不使用自動遞增功能,則執行同一事務所需的字節數總共可能為 12。此事務可以將所需的時間減半(針對該示例)。
圖 2-2 展示了具有自動遞增功能的讀取事務示例。該示例顯示起始寄存器為寄存器 5(不需要從寄存器 0 開始),并遞增到寄存器 9。從 I2C 器件讀取的總字節數為 5,執行此過程所需的字節數為 8。如果 I2C 控制器(或用戶)選擇了不使用自動遞增功能,則需要額外設置 3 個字節來讀取下一個寄存器(該示例中為寄存器 6)。此遞增總共用到 8 個字節來讀取 2 個字節的數據。由此可以清楚地看出,自動遞增功能可為用戶提供更高效的編程方法。
還有一點需要注意,在該示例中,如果在從寄存器 9 接收數據后發出了 ACK,并且寄存器 10 中有數據需要收集,則理論上 I2C 控制器可能會繼續從該 I2C 目標讀取字節。實際上,讀取事務可以持續到控制器結束事務為止。