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次,发文人进小黑屋喔~

评论