内部集成电路总线(I2C)是一种同步串行数据通信总线,是一种极为常见的协议,用于连接微控制器及其外围设备。这种在每一个工程师的设计中几乎都可能遇到的总线技术,却总是可能因为各种不经意的问题为大家的设计带来不大不小的挑战。比如,一般器件都提供开漏输出,表示它们只能稍微下拉,这在实现双向通信的同时也意味着需要上拉才能在总线上实现高电平状态。如何确定上拉的大小?这是设计人员常常会提出的一个问题。
在网上找到许多相关资料,但是最后发现,需要满足的所有电气规格都已在如下的表中列出。在确定应用计划的数据速率运行之后,查看规格表找到所需的上升时间即可。如果不知道总线的电容,可以估测一个值,例如每个器件30微微法拉,然后据此实施调节。但是上拉电流和总线上的总电容都存在限值,所以在设置电路之后,都会使用I2C包进行通信。每一个经验丰富的硬件设计工程师大概还能提出曾经遇到过的很多类似问题,这里不妨以几个工程师共性的问题提出来给出设计建议。
使用I2C包进行通信,如何降低功耗?
如果更详细地考虑I2C信号,一般会使用上拉电阻来获得高电平信号,可为上升沿选择电阻。但是,当信号处于低电平时,上拉电阻只是在消耗功率,那么如何降低这种功耗呢?
ADUM1250是ADI公司的一款I2C电气隔离器,这里来比较一下ADUM1250的发射端和上拉电阻,然后再与添加到电路中的LTC4311上升时间加速度计比较。如下图所示,将电路中的器件电源和总线电源分开,用不同电源供电就能够看出电源消耗在哪些地方。
下表是测试结果。有2K欧上拉电阻,上升时间表现不错,但是有2.6毫安电流流过上拉电阻。如何节省功耗?根据功率预算,将上拉电阻调整为10 K,但是这样的话,上升时间又会出现问题。可以假设已知RC,但是需要设定功率预算。所以,对上升时间加速。当RTA发现电压阈值中有上升沿且压摆率最低时,会注入电流,加快上升时间,但不会大幅上拉。这里需要注意的是,上升时间时在需要的范围内。
再来看看RTA消耗多少电流。LTC4311与上拉电阻连接至同一电源,可以看到,消耗的电流比2K上拉时低得多。真正有利的是,RTA在剩余的波形内都保持闲置。LTC4311仅消耗约25微安电流,所以能够使用更弱一些的上拉电阻,但仍然让上升时间满足所需的I2C规格。这使得LTC4311成为一种非常有趣的器件,能够添加至移动应用或电池供电的应用中。
除此以外,还能给RTA电路带来另一项优势。要求开漏装置同步的电流越多,总线上的低电平越高,这是因为开漏两端存在压降。所以,当低电平升高,噪声裕量会越低。因此,RTA电路有助于降低开漏输出两端的压降,并保持低电平。在电源电压很低时,这尤其有用。LTC4311可以支持最低1.8V总线电线,所以上述电路中的RTA有助于满足所需的上升时间,后者会消耗电源,使VOL保持低电平。
LTC4311是一款双通道I2C有源上拉加速器,专为在远远超过400pF I2C规格限值的总线负载条件下提升数据传输速度和可靠性而设计。多个器件连接到同一总线的系统可能呈现远高于400pF I2C性能规格的大总线电容。容性加载引起较慢的上升时间,这可能影响数据可靠性并指定总线的实际最高速度。通过在总线上升跃变时采用升高的上拉电流,同时在下降跃变和逻辑低与逻辑高时禁止电流源以改善低态噪声容限,LTC4311减轻了这些问题。
总线缓冲器,解决不中断加入有源I2C总线等问题
下图这个系统具有背板,可能是服务器或者其他,上面插有很多卡。对于低速通信,I2C非常适用于与这些卡通信。但对于采用这种结构的总线需要调节上拉电阻,以获得固定电容。 如果没有固定数量的卡会怎样?或者,如果拔出一张卡,然后使用具有不同电气特性的卡进行替代,又会怎样?可以通过设计来分配一些上拉电阻,但是在可以同步多少电流量方面,仍然存在限制。所以,可以估测每个器件给总线增加30微微法拉。如果在卡终端添加连接器,那么背板或卡上的线路会很长,电容预算很快就会用完,所以建议在卡终端添加总线缓冲器,这些总线缓冲器会将电容隔离到各个分段。
如果在应用中,卡是在I2C总线处于激活状态时插入,那么应该以适当的方式插入。所以基本上,我们希望尽可能减少造成数据混乱或数据丢失,甚至导致总线锁定的机率。许多总线缓冲器都有一个预充电功能。所以在总线连接之前,它可以让总线引脚的电压升高到约1V,相当于200Ω的串联电阻。此举的作用是,在新总线分段进行机械接触时,1V预充电会尽量减少对信号的干扰。
此外,如果不希望在总线缓冲器或总线分段未上电时,产生电气干扰,也不想给总线电压轨馈电。总线缓冲器可以解决这些问题。I2C总线缓冲器的输出级是末端通道开漏下拉电阻,它们的栅极接地,直到满足一系列启动条件。所以在上电时不允许电压反馈,且缓冲器远端的电容从不可见。
总线缓冲器是一种常见的系统结构,LTC4330是ADI总线缓冲器系列中的最新产品,它会隔离总线电容,采用RTA,会断开和恢复卡塞总线,进行预充电,但仍然采用3x3毫米封装。该产品的运行温度最高可以达到125℃,余下的总线缓冲器的最高运行温度为85℃。其他总线缓冲器支持400KHz,LTC4330最高支持1MHz总线,还为第三个通道提供双向支持,所以这对于PM总线通信非常有用。
另外,总线缓冲器具有VOL偏移。但LTC4330没有采用VOL偏移,其两端都是固定的VOL电平。所以,如果应用以串行方式使用缓冲器,LTC4330的表现会很出色,因为设计师无需担心VOL偏移累计问题。此外,LTC4330还提供极为可靠的系统级ESD保护,这是一个非常有用的功能,尤其当缓冲器位于卡终端上时,不仅可以让总线缓冲器实施逻辑电平转换,还可以实施接地电平转换。
LTC4330虽然不是电气隔离器,但是可以用在只需偏移基准电压源电平的应用中。有时候,隔离器会起到这个作用。就像48V系统一样,它可以偏移基准电压源电平,并在两端之间通信,而且,如果这些接地相对于彼此移动,那么LTC4330也具备非常出色的CMCI性能。
±150V I2C总线缓冲器的典型应用:-48V基准电压源电平偏移,并提供第三个通道支持
如何控制I2C上的流量?
总线缓冲多路复用器不仅可以将总线电容隔离到各个分段,如果需要还能以不同的电压电平操作总线分段。对于要求I2C总线扇出且ATI的I2C总线缓冲器盒包含2个和4个通道的应用,它们表现会十分出色。另一个有用的功能是,有时I2C器件采用固定的硬连接地址,但是需要更多这种器件时,数量超过可用地址的数量,这时可以使用多路复用器来获取冗余地址,这意味着,设计师可以控制信息发送到总线的哪个分段。可以采用不同的方法来控制I2C流量,例如LTC4305和LTC4306,或者用具有控制线路的其他器件,例如LTC4312和LTC4314,利用多路复用器和控制线路,它们可以实施转换。
使用多路复用器来控制I2C上的流量,使用总线缓冲器也可以实现同样的效果。但是通过使用地址转换器,无需花费成本来开关流量,也无需使用控制引脚或任何额外的I2C命令。或者使用LTC4316之类的器件来修改7位地址通信。所以,当使用采用复用地址的从机时,从主机角度它们是唯一的。
总结
ADI公司的I2C解决方案系列支持热插拔、双线式双向总线缓冲器,可将I/O卡插入带电背板中,而不会损坏数据和时钟总线。I2C加速度计可改善总线转换特性,支持多个器件连接或更长、更多容性互连,而不影响压摆率或总线性能。另外,ADI的软件可编程和引脚可选I2C多路复用器有助于解决I2C地址限制,增加扇入或扇出能力,并为一体化解决方案集成总线缓冲器和上升时间加速度计。电阻可配置I2C地址转换器可配置超过100个独特的从机地址,使多个具有相同地址的从器件可在同一总线上共存。