0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何确定上拉的大小?I2C总线如何实现双向通信

电子设计 来源:ADI公司 作者:ADI公司 2021-02-24 14:25 次阅读

内部集成电路总线(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个独特的从机地址,使多个具有相同地址的从器件可在同一总线上共存。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6734

    浏览量

    147371
  • 集成电路
    +关注

    关注

    5304

    文章

    10547

    浏览量

    352390
  • I2C
    I2C
    +关注

    关注

    27

    文章

    1335

    浏览量

    120568
  • 多路复用器
    +关注

    关注

    9

    文章

    839

    浏览量

    65025
  • 电气隔离器
    +关注

    关注

    0

    文章

    31

    浏览量

    5449
收藏 人收藏

    评论

    相关推荐

    如何通过I2C总线上的uProcessor或FPGA与芯片通信

    如何通过 I2C 总线上的 uProcessor 或 FPGA 与芯片通信
    发表于 02-26 07:25

    最简单的总线通讯!I2C通讯总线的原理原来这么好懂

    通讯I2C
    安泰仪器维修
    发布于 :2024年01月02日 11:16:31

    ADXL313加速度传感器用I²C通信协议与外部连接时,电阻的阻值如何确定呢?

    ADXL313加速度传感器用I²C通信协议与外部连接时,电阻的阻值如何确定呢?看数据手册里要
    发表于 12-27 08:16

    AT32F423 I2C使用指南

    AT32 的 I2C 总线接口用于处理微控制器和串行 I2C 总线之间的通信,支持主机和从机模式,支持唤醒深睡眠模式,最大
    发表于 10-26 06:33

    单片机通信中,如何用单根线实现200米距离的双向通信

    现在人力成本贵,为减少布线,想一根线实现双向通信
    发表于 10-08 18:57

    终于搞清了:SPI、UART、I2C通信的区别与应用!

    使用的方法 缺点 数据帧的大小最大为9位 不支持多个从属系统或多个主系统 每个UART的波特率必须在彼此的10%之内 I2C通信 I2C总线
    发表于 10-07 17:01

    实现单片机双向通信的实验资料分享

    详细介绍的是实现两个单片机双向通信的实验资料合集包括了程序和仿真电路图及工程文件
    发表于 09-25 06:43

    I2C总线的使用与编程

    I2C总线是飞利浦公司在20世纪80年代初由S定义的一种二线制总线系统。I2C总线是一种双向的,
    发表于 09-04 07:23

    I²C总线通信的应用方法

    可通过指令控制 驱动芯片SSD1306 接口I2C GD32VF103的I²C接口 GD32VF103的I²C(内部集成电路
    发表于 08-16 07:36

    基于 FPGA 的模拟 I2C协议系统设计

    I2C 接口做为不同芯片间的通信协议。I2C 串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到
    发表于 08-14 18:21

    NTAG I2C plus和近场无线通信之间可以交换数据吗?

    假设两个相同的 NTAG(Ntag I2C plus)可能有备用电池,因此它们不需要从 RF 场中提取能量,它们可以在它们之间交换数据吗?....例如利用双向通信中解释的AN11579。 如果是负面的,那是通过什么方式抑制的?
    发表于 05-18 07:51

    LPC55xx为I2C总线配置非“真正的开漏”引脚,还需要考虑什么?

    我在 LPC5528、Flexcomm1 和 Flexcomm4 使用两个 I2C 总线接口。 关于 Flexcomm1,数据表指出 P0_13 和 P0_14 是“真正的漏极开路引脚。符合
    发表于 05-16 07:21

    Arduino IDE 的双I2C总线问题求解

    和 Wire.cpp 文件,它们都包含 end() 函数。所以 ????? 1.关于这个错误有什么建议吗?Wire.h 文件有一个说明,它是在 2020 年修改的,所以它是相当新的。 2. 替代想法?I2C 多路复用器可能不在卡片中。如果没有软件解决方案,我将使用小刀和
    发表于 05-09 07:00

    请问为什么有时在I2C中将SDA和SCL加各加个电阻呢?

    请问为什么有时在I2C中将SDA和SCL 加各加个电阻呢?
    发表于 05-08 18:01

    CH32V103基础教程37-I2C-软件模拟I2C读写EEPROM

    )是一种两线式串行总线,可用于微控制器及其外围设备之间的通信I2C总线由数据线SDA和时钟线SCL构成,可进行数据发送和接收,其通过上
    发表于 04-23 16:04