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