微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 求教现在的手机芯片上为什么I2C控制器越作越多了?

求教现在的手机芯片上为什么I2C控制器越作越多了?

时间:12-12 整理:3721RD 点击:
为什么现在smartphone 芯片上i2c控制器越做越多了。
高通的6个,听说三星的有8个。
i2c总线上不是可以挂多个slave设备吗?为什么要加那么多控制器?很疑惑,求指教。

我猜测是为了避免地址冲突吧。理论上不同设备都应该有不同的Slave Address,实际上不少国内的公司做芯片就是随便选的地址,这个地址不是去申请的,如果一个总线上挂很多设备的话,就有地址冲突的可能。

另外有些RF器件如果跟别的slave共享bus,性能会受到bus transaction影响
而且bus上slave越少,速度也容易控制,bus也比较好设计吧。
i2c的速度有好几种,混在一起估计挺麻烦的。
反正i2c controller小,多扔几个不值钱的。

I2C的上限速度有三档,使用比较普遍的是100Kbps和400Kbps(可以比上限速度低),如果混在一起使用,则以最慢的为准

这个在选择器件的时候可以排除的。选择一个不冲突就好了,而且,很多器件现在可以通过改变外围电路,选择不同的I2C地址。

用i2c的一般都是些速度很慢的设备,比如各种sensor之类的,一秒钟报几次数据就可以了。所以,速度问题应该不大。
而且,如果速度有问题,加个两三个i2c控制器就好了,不同速度的设备,挂不同i2c控制器上。
六个、八个的加,有点不明白。

是可以这么做,但是多搞几个controller又没有什么成本,客户选择外围芯片的时候更灵活,为什么不呢?

说起Sensor,我还想起来有些Sensor如重力加速度传感器,需要频繁的周期性的读写,如果只有一个Controller的话,那软件上控制起来就比较麻烦。

最郁闷的是有些器件出问题的时候会把I2C总线挂死,不如1对1都分开用。

嗯,当时某国外客户就要求我们:I2C主控制器不许被市面上的卑鄙从设备搞死,因此搞了很多冗余设计
效果还不错,流片之后该客户试过一捆I2C从设备,很幸运没有遇到导致死机的

说到市面上坑爹的I2C从设备,一肚子苦水

呵呵,看来搞上N个I2C控制器也是冗余的一种手段啊~

pin脚,gpio都是很宝贵的资源吧。这么多controller得需要N多pin啊。

这个速度真不高。。。最多一秒钟几十次,对软件来说,这个处理还是很方便的。
smartphone的那些处理器主频都上G了处理这些个东西,小case.

不懂,要i2c master不死,加一个timeout应该就OK了。为何你说的好像很复杂似的。
或者你们还有其他考虑?

如果slave把scl和sda拉死了,master再复位也没用。
不过我的确看到过一些i2c master设备,其实没有安装I2C的标准来搞。

用IO口来模拟I2c最方便了,可以适应任何的I2C设备时序,呵呵

这个。。。
话说slaver也要有个timeout,这是协议规定的;如果别人非要乱来,我实在不知道还能够怎么处理

正解。。。很多slave会把sda一直拉低。那个郁闷啊。

需要N多延时操作,在smartphone那种高速处理器下,这么干非常不划算。

恩,一般而言,GPIO和I2C都是复用的。问题是加那么多控制器,如果大部分都不用,有点画蛇添足吧。
个人觉得,更多的还是考虑到恶心的slave会导致i2c锁死而增加的冗余设计。
多一些controller,可以把某些恶心的slave单独放在一路上。

如果SLAVE状态机锁在第N比特,那么只需要9-N个时钟周期就可以让SLAVE采样到ACK从而释放SDA

呵呵 不会说的我锐吧
正好我们以前也有芯片要遍历地址
不过那款芯片早就市场份额第一了
芯片bug应该是常见的吧,软件能够避免的都不是问题
太大惊小怪了

在mobile系统里面,单线的I2C是不是会受欢迎呢?
可能协议里面会变得复杂些,但是会省一个pin

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top