ZHCAE77 July 2024 PCA9535 , PCA9555 , TCA6416A , TCA6424A , TCA9535 , TCA9539 , TCA9539-Q1 , TCA9555 , TCAL6416R , TCAL9539 , TCAL9539-Q1
是的,有些器件只能在一組特定的寄存器內(nèi)自動(dòng)遞增。例如,TI I2C IO 擴(kuò)展器便是如此。對(duì)于具有 2 個(gè)端口(16 位擴(kuò)展)的 IO 擴(kuò)展器,可在一組端口寄存器內(nèi)進(jìn)行自動(dòng)遞增。圖 4-1 展示了使用 TCAL6416 等 16 位 IO 擴(kuò)展器的這種特殊自動(dòng)遞增情況的示例。如果在將寄存器設(shè)置為 0x02h(輸出端口 0 寄存器)后執(zhí)行連續(xù)寫(xiě)入,則會(huì)使得向寄存器寫(xiě)入的數(shù)據(jù)在寄存器 0x02h(輸出端口 0 寄存器)和 0x03h(輸出端口 1 寄存器)之間交替。
由于用戶無(wú)法一次性向所有寄存器進(jìn)行寫(xiě)入,因此這種類型的自動(dòng)遞增功能會(huì)產(chǎn)生一個(gè)需要多個(gè) I2C 事務(wù)(具有啟動(dòng)/重啟和/或停止條件)的初始化序列。雖然從初始化的角度來(lái)看這是一個(gè)缺點(diǎn),但這種自動(dòng)遞增方法有一個(gè)優(yōu)點(diǎn)。由于只能從一個(gè)設(shè)定端口進(jìn)行寫(xiě)入或讀取,因此可以在接收/輸出有用數(shù)據(jù)時(shí)獲得更好的延遲。
圖 4-2 所示為一個(gè) 4 位 IO 擴(kuò)展器 (TCA9536) 用于切換位 2 和位 3。自動(dòng)遞增功能用于在每次 ACK 后立即切換這些位。由于該器件只有一個(gè)端口,因此自動(dòng)遞增功能會(huì)持續(xù)遞增到同一寄存器(輸出寄存器 0x01h)中,因此每次寫(xiě)入新數(shù)據(jù)時(shí),該器件都會(huì)在每次 ACK 時(shí)更新。這種方法降低了輸出切換的延遲,因?yàn)榘l(fā)送寄存器字節(jié) (0x01h) 后,該器件可以自由更改輸出狀態(tài)。另一種方法是始終通過(guò)發(fā)送器件地址、寄存器以及啟動(dòng)和停止條件之間的數(shù)據(jù)來(lái)向器件執(zhí)行寫(xiě)入操作。
圖 4-2 示波器示例寫(xiě)入突發(fā)從讀取角度來(lái)看,需輪詢 IO 擴(kuò)展器輸入的應(yīng)用可以使這種自動(dòng)遞增變得高效,因?yàn)槠骷诜祷氐较嚓P(guān)寄存器之前不需要在所有寄存器中進(jìn)行遞增。