DIODES I2C-bus IO擴展晶片用法粗談

I2C-bus I/O Expander 一類拓展晶片,應用於當MCU的IO引腳不夠時,可通過這類晶片來拓展IO口數量。它通過I2C和MCU通信,MCU僅僅需要將它並聯到I2C接口上,便能增加多達32ch、40ch、48ch等IO口。
本博文以DIDOES  PI4IOE5V96248 為例,簡要討論用法

PI4IOE5V96248 :
48-bit I2C-bus I/O Expander
2.3V to 5.5V
1MHz I2C-bus
5.0V tolerant I/Os
晶片引腳架構比較簡單,大致分為供電、I2C接口、INT及RESET以及6*8口IO擴展口


遵循標準I2C從機接口,包括開始位、結束位、應答以及SDA在SCL低電平才被允許改變數據。



I2C的設備地址( Device address )通常由7bit地址位+1bit讀寫位組成,往往地址位LSB是可以通過對應引腳接入VCC或GND,實現拉高或置低,這樣可以在同一I2C總線上掛入2顆晶片,LSB區分他們的設備地址。值得注意的是,PI4IOE5V96248設備地址LSB是固定的,沒有留出我們熟悉的引腳,而是預留了3額外引腳AD2/AD1/AD0。這3個引腳,可以通過接入GND/VCC/SDA/SCL,組成了一個多達64種狀態的增值表,見下圖。通過這種方式拓展出多達64個設備地址,這樣用戶最多可在總線上接入64顆PI4IOE5V96248,獲得更多的IO拓展。




主機通過I2C配置PI4IOE5V96248的IO口,用法也非常簡單。datasheet已明確說明:把I2C數據寫入,IO對應引腳將作為輸出output;讀I2C數據,對應引腳的電平狀態將會通過I2C讀回主機,相當於輸入input。無需像MCU一樣,去事先配置它的IO方向。

I2C的通信方式也非常簡單,通過將地址位LSB置0,進入寫模式;通過將址位LSB置1,進入讀模式。而且只有設備地址,沒有寄存器地址。設備地址發送正確並得到響應後,便可進行讀寫操作了。




★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論