IIC(Inter-Integrated Circuit)其实是IIC Bus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。

 

IIC总线最多可以挂多少个设备由IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址, 所以理论上可以挂127个从器件。

但是

IIC协议没有规定总线上device最大数目,但是规定了总线电容不能超过400pF。


管脚都是有输入电容的,PCB上也会有寄生电容,所以会有一个限制。实际设计中经验值大概是不超过8个器件。

总线之所以规定电容大小是因为,IIC的OD要求外部有电阻上拉,电阻和总线电容产生了一个RC延时效应,电容越大信号的边沿就越缓,有可能带来信号质量风险。

传输速度越快,信号的窗口就越小,上升沿下降沿时间要求更短更陡峭,所以RC乘积必须更小。

所以结论就是IIC总线挂载设备一般在8个以下。

 

补充:

IIC协议经常用在一些外部存储器件,比如64K、128K的flash,主控和flash之间是IIC通信,Linux内核有写的非常规范的IIC协议和各种所需的结构体,可以参考。

我们曾经用过一个外部EEPROM是IIC通信,名字是P24C64E,是一个64K的flash,后来发现不够用,改成了P24C128E,是pin to pin的,不用更改PCB,加快了项目进度。

比较两个IC时,经常用到“pin to pin”,pin to pin的意思是指两个IC的pin引脚功能完全一致,封装也完全一致。换句话说,如果你以前用的IC没有了,可以找一个pin to pin 的IC完全替代,而不用更改PCB的设计。