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

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

3天内不再提示

I2C总线缓冲器ASSP可处理宽电压电平转换范围

星星科技指导员 来源:嵌入式计算设计 作者:Peter Stonard 2022-06-14 10:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

微控制器MCU) 和相关设备的技术趋势是更小的几何尺寸,因此需要更小的工作电压。电路设计人员面临着将低压信号连接到各种其他设备电压的挑战。I2C 总线以其定义的协议和双向信号流对这些工作提出了独特的问题。集成电平转换总线缓冲器应用特定标准产品 (ASSP) 可以解决此问题,但也有其自身的障碍。

由于半导体制造技术的进步,最新的嵌入式计算设备具有较低的电源电压。这正在创造更小的晶体管几何形状,这反过来意味着更低的击穿电压。因此,信号摆幅现在比以前小得多,低至 1 V(图 1)。

图 1:缩小的晶体管几何尺寸导致击穿电压和信号摆幅比过去更低。

pYYBAGKn7baAcP2yAABheh3vvQo210.png

对于纯数字信号,有几种可用的接口设备可以将较小的信号转换为 CPU 输出端口的较高摆幅。同样,这些相同的器件可用于将现有信号降压为更小、更安全的输入,用于新的低压内核。例如,电压电平转换器 (VLT) 可以解决信号工作电压的任何不匹配问题,但双向 VLT 的设计却很棘手。特定应用标准产品 (ASSP) 解决了这个问题。

I2C 总线基础知识

I2C 总线依靠两个电气连接和两个外部电阻器来实现完整的双向信号传输。该协议是全面的,允许多个节点同时充当发送器和接收器,同时由于简单可靠的多主机仲裁而避免总线冲突。

I2C 总线上的数据流由主机控制,主机提供称为串行时钟 (SCL) 的时钟信号。数据沿称为串行数据 (SDA) 的第二个电气连接传递,并且 SDA 上的数据可能从主机流向从机,或以另一个方向流动。

I2C 总线的一个独特特性是节点的线或逻辑连接。当总线空闲时,没有节点消耗电流,总线信号被上拉电阻保持在逻辑 1(通常为 +5 V),SCL 和 SDA 各一个。信号由一个节点通过一个漏极开路驱动器拉低这些线路来断言(尽管基于双极技术的旧设备使用开路集电极设备来实现相同的结果)。主机发起每个数据事务,响应节点将 SDA 线拉低(响应设备也可能将 SCL 线拉低,但这种称为“时钟拉伸”的模式很少使用)。

双向电压电平转换器 (VLT)

I2C 总线协议中没有硬件流控制,这使得 VLT 协议不可知,但也带来了电路设计挑战(图 2)。

图 2: I2C 总线协议中不存在硬件流控制,这给电路设计带来了挑战。

pYYBAGKn7byAfHWPAACN0OEVqc4770.png

I2C 总线上的数据流向变化经常发生,实际上是在每八个时钟周期或传输一个字节数据之后。第 9 个时钟周期读取从设备以确认发送的数据已被理解。在第 9 个时钟周期期间,主机在 SDA 线上查找逻辑 0 确认(称为“ACK”)或逻辑 1 未确认(称为“NACK”)。VLT 负责可靠地来回传递这些信号。

在第一代 VLT 设计中,典型的电压阶跃是从高侧的 5 V 到低侧的 3.3 V(通常是采用新技术的一侧)。一种常见的低成本转换解决方案是单个场效应晶体管 (FET) 器件(图 3)。

图 3:使用场效应晶体管 (FET) 和无源电压电平转换器 (VLT) 是一种常见的、成本相对较低的电压步进解决方案,尽管它存在局限性。

poYBAGKn7cKAcBimAACLjpiSs6M515.png

限制蔓延到这个拓扑中。虽然单个 FET 可以在两个方向上传递信号,但使用适当的 VLT 就没有隔离。一侧的负载必须由另一侧进行,从而限制了他们的吸引力。更糟糕的是,现有的低成本 FET 不太适合这些较低的总线电压。想象一下在 DDR4 RDIMM 设计(2.5 V 部件)中看到的将 CPU 内核(1 V 信号)连接到控制器所需的 1 V 至 2.5 V 接口的情况。具有较低栅极阈值的 FET 是必要且可用的(价格合理),但 I2C 总线缓冲器 ASSP 也可以解决这些较低总线电压的设计。I2C 总线缓冲器 ASSP 是基于 FET 的 VLT 的卓越解决方案。

I2C 总线缓冲器专用标准产品 (ASSP)

支持 I2C 扩展的 ASSP 已经存在了一段时间,更新的设计在一个令人印象深刻的范围内解决了 VLT,包括仅在 1 V 电源上运行的下一代 CPU 和片上系统 (SoC)。因为 ASSP 设备是缓冲器,所以它们分别加载到 I2C 总线缓冲器的每一侧。这对于不增加 CPU 或 SoC 的 I/O 引脚的负担很重要,并且允许在缓冲设备的另一侧连接更多节点;例如,新的智能手机和个人电子架构具有更多连接到 I2C 总线的传感器(节点)。

向设计中添加任何总线缓冲器时需要小心,因为这些设备必须操纵总线电压电平以避免致命的总线锁定情况。简单地说,I2C 总线缓冲器必须确定“A”侧的低电平是来自其自己的输出(即,“B”侧的缓冲低电平)还是“A”侧总线上的另一个外部设备。

总线缓冲器设计使用改变总线缓冲器输出电压的少数技术之一。在一种这样的方法中,添加了一个小偏移电压,该偏移电压足够小,不会干扰总线上的其他设备,但足以让总线缓冲器知道来自总线上另一个节点的外部(和低得多)信号之间的差异,以及它自己的逻辑0信号。典型的静态偏移仅为 90 mV。

总线速度改进

虽然早期的 I2C 总线以适中的速度移动(时钟频率为 100 kHz 或更低)并服务于当时的应用程序,但较新的应用程序需要更多的数据吞吐量,因此需要更快的时钟。当前的 I2C 规范定义了信号的时序,增加了几个高达1 MHz的新时钟速度。这些时钟速度被称为“Fm+”(快速模式加),比以前的 Fm(快速模式)速度提高了 250%,后者将时钟限制为 400 kHz。

请记住,决定总线时钟速度的是总线主控器(通常是已内置于 MCU、CPU 或 SoC 设备中的功能)的操作。从设备和总线缓冲器不产生时钟,也不关心时钟精度;一个 800 kHz 的总线时钟实际上可能以 20% 的容差运行。为了提高速度,必须降低总线负载(电容)。总线缓冲器分离总线并隔离每个段的电容。

提高时钟频率并非没有硬件挑战。无法控制的更快时钟和数据转换可能会导致振铃和下冲,因为 I2C 总线不是传输线,并且没有足够小的终端电阻来抑制快速信号边沿。I2C 规范限制了边沿的上升时间和下降时间。总线段的上升时间由系统负载电容设置,该电容是节点和互连信号走线电容的总和。板级电路设计人员只能自由选择 I2C 总线信号上拉电阻。

当 I2C 总线由现代高性能数字设备(CPU、MCU 和 SoC 类型)驱动时,需要注意减慢这些快如闪电的设备生成的时钟和数据总线信号的下降沿。如有必要,应添加一个外部串联电阻与杂散电容一起工作,以创建受控的下降时间并抑制 I2C 总线段上的任何振铃。或者,这可以通过添加一个小电容器来实现。

如果设计需要更高的数据吞吐量和在较低电源电压下运行的更新技术组件,则希望在您的设计中添加一个 I2C 总线缓冲器(图 4)。将 I2C 总线缓冲器的两侧视为单独的总线,并选择适合的上拉电阻。

图 4:需要更高数据吞吐量和更新技术组件的设计可能需要集成 I2C 总线缓冲器电压电平转换器 (VLT)。此处显示的是 NXP Semiconductors 的 PCA9617A 总线缓冲器,具有 Fm+ 速度和低至 1 V 的 VLT。

pYYBAGKn7cmAVYDcAADIYdLdc5M574.png

审核编辑:郭婷

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

    关注

    48

    文章

    8255

    浏览量

    162459
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18618

    浏览量

    387352
  • 总线
    +关注

    关注

    10

    文章

    3014

    浏览量

    91309
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Analog Devices Inc. ADuM1252双向I2C隔离数据手册

    Analog Devices Inc. ADuM1252双向^I2C^隔离为要求在同一线路上双向传输数据的应用(如 ^I2C^ )提供两个双向开漏通道。为防止闩锁操作,第1侧输出包含专用缓冲
    的头像 发表于 06-10 10:30 780次阅读
    Analog Devices Inc. ADuM1252双向<b class='flag-5'>I2C</b>隔离<b class='flag-5'>器</b>数据手册

    Analog Devices Inc. ADuM1253超低功耗I2C数字隔离数据手册

    。为防止闩锁行为,第1侧输出包含特殊缓冲器,可将逻辑低电平电压调节为0.64V,并且输入逻辑低电平阈值比输出逻辑低电平
    的头像 发表于 06-07 10:58 815次阅读
    Analog Devices Inc. ADuM1253超低功耗<b class='flag-5'>I2C</b>数字隔离<b class='flag-5'>器</b>数据手册

    ADuM1254具有空闲总线热插拔和低电压的双向I2C隔离技术手册

    ADuM1254 为需要在同一线路上双向传输数据的应用(例如 I^2^C)提供两个双向开漏通道。为了防止闩锁行为,第 1 侧输出包含特殊缓冲器,可将逻辑低
    的头像 发表于 05-29 10:22 766次阅读
    ADuM1254具有空闲<b class='flag-5'>总线</b>热插拔和低<b class='flag-5'>电压</b>的双向<b class='flag-5'>I2C</b>隔离<b class='flag-5'>器</b>技术手册

    I2C总线复用

    帝晶智慧屏I2C总线复用
    的头像 发表于 03-11 17:20 1860次阅读

    I2C总线通信原理 如何设计I2C总线电路

    、高效的通信接口标准。I2C总线通信原理主要包括以下要点: 总线结构 : I2C总线仅使用两条信号线,即串行数据线(SDA)和串行时钟线(S
    的头像 发表于 01-31 15:01 1896次阅读

    I2C总线的优缺点分析

    设备之间的通信,这大大减少了所需的引脚数量,降低了硬件成本。此外,由于其简单性,I2C总线也易于实现和维护。 2. 多主机和多从机支持 I2C总线
    的头像 发表于 01-17 15:50 1768次阅读

    I2C总线数据包结构详解

    I2C(Inter-Integrated Circuit)总线是一种用于连接微控制和各种外围设备的通信协议。它使用两条线:串行数据线(SDA)和串行时钟线(SCL),实现了设备之间的简单、高效通信
    的头像 发表于 01-17 15:46 1394次阅读

    如何选择I2C总线拉电阻

    I2C总线工作原理 在I2C总线中,数据线SDA和时钟线SCL都是双向的,这意味着它们可以被任何一个连接到总线上的设备驱动。当设备不驱动
    的头像 发表于 01-17 15:43 1107次阅读

    I2C总线与Arduino的接口示例

    在现代电子设计中,I2C总线因其简单性和灵活性而广受欢迎。它允许多个设备共享同一通信线路,从而节省空间和成本。Arduino,作为一个多功能的微控制平台,自然也支持I2C通信。
    的头像 发表于 01-17 15:34 2377次阅读

    I2C总线的工作模式介绍

    在现代电子系统中,I2C总线作为一种多主机、多从机的串行通信协议,扮演着至关重要的角色。它允许多个设备共享同一总线,进行数据传输,从而简化了系统设计并降低了成本。 I2C
    的头像 发表于 01-17 15:32 1644次阅读

    I2C总线设备地址设置方法

    通常是一个7位或10位的数字,用于标识总线上的每个设备。在7位寻址模式下,地址范围是0x00到0x7F,而在10位寻址模式下,地址范围是0x000到0x3FF。I2C地址的最低位(LS
    的头像 发表于 01-17 15:17 7001次阅读

    I2C总线应用实例分析

    I2C总线使用两条线进行通信:数据线(SDA)和时钟线(SCL)。这种双线制设计使得I2C总线能够在多个设备之间共享,而不需要为每个设备单独布线。 应用实例:温湿度传感
    的头像 发表于 01-17 15:09 1251次阅读

    I2C总线与SPI总线的比较

    在现代电子系统中,微控制与各种外设之间的通信是必不可少的。I2C和SPI是两种流行的串行通信协议,它们各自具有独特的特点和应用场景。 I2C总线
    的头像 发表于 01-17 15:08 1740次阅读

    I2C总线上拉电阻阻值如何确定?

    导读I2C总线在产品设计中被广泛应用,尽管其结构简单,但经常发生上拉电阻设计不合理的问题。本文将对I2C上拉电阻的选择进行简要分析。一根信号线上,通过电阻连接一个固定的高电平VCC,信
    的头像 发表于 12-27 11:34 2406次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>上拉电阻阻值如何确定?

    PCA9306 I2C缓冲器评估模块

    电子发烧友网站提供《PCA9306 I2C缓冲器评估模块.pdf》资料免费下载
    发表于 12-23 15:16 0次下载
    PCA9306 <b class='flag-5'>I2C</b><b class='flag-5'>缓冲器</b>评估模块