电子说
在工业控制和传感器、照明与音响系统控制等应用场景中,常常需要在高噪声环境下对I²C总线进行扩展。今天我们就来深入探讨凌力尔特(现ADI)的LTC4331,一款专为这类应用设计的I²C从设备扩展器。
文件下载:LTC4331HUFD#PBF.pdf
支持高达1MHz的串行时钟(Fast - mode Plus,Fm +),通过可选的链路波特率,能将I²C总线扩展至1200m。这使得它在长距离通信应用中表现出色,能够满足工业现场不同设备间的通信需求。
电源电压范围为3V至5.5V,逻辑电源电压范围为1.62V至5.5V,能够适应不同的电源系统,方便与各种设备集成。
在不同的工作模式(本地模式和远程模式)下,LTC4331的开关特性有详细的规定。例如,在本地模式下,从ON上升到RDY低的延迟为65μs;在远程模式下,主设备SCL的工作周期根据不同的速度设置(Fm +、Fm、Sm)有所不同。同时,还规定了数据建立时间、保持时间、超时检测时间等重要参数,确保了I²C通信的准确性和稳定性。
LTC4331采用4mm × 5mm的20引脚QFN封装,引脚布局合理,便于PCB设计。引脚功能涵盖了电源、逻辑控制、I²C通信、链路状态指示等多个方面。
将REMOTE引脚置低,LTC4331工作在本地从设备模式。在该模式下,它捕获本地I²C主设备发送的START、STOP和数据事件,并将这些事件通过差分链路以编码位流的形式传输到远程的LTC4331。在I²C总线反转后,它作为从发送器接收远程设备的响应数据,并将其解码后驱动到本地I²C总线上。由于需要考虑远程I²C总线和链路延迟,本地LTC4331可能会通过时钟拉伸来暂停本地I²C总线,因此建议本地I²C主设备完全支持SCL时钟拉伸。
将REMOTE引脚置高,LTC4331工作在远程主设备模式。在正常操作中,远程主设备会镜像本地I²C主设备产生的I²C事件,并使用Fast - mode Plus、Fast - mode或Standard - mode类的定时规范重新创建这些事件。需要注意的是,LTC4331不支持远程I²C网络上的多个主设备,其I²C主设备接口是远程侧网络上唯一允许的主设备。
本地主设备通过发送I²C START和从设备地址字节发起事务。本地LTC4331将捕获的I²C事件编码并传输到远程I²C网络,在那里这些事件被重新创建。本地LTC4331在第9位等待远程从设备的(N)ACK响应,根据响应结果进行后续操作。在读写事务中,数据在本地和远程设备之间通过差分链路进行传输,同时设备会根据不同的情况进行相应的处理,如数据缓存、总线反转等。
LTC4331依赖SCL时钟拉伸来补偿链路和远程总线延迟,因此建议使用完全支持时钟拉伸的本地主设备,以获得最佳性能。如果主设备不支持时钟拉伸,可适当降低SCL频率。
当使用SMBus ARA时,如果扩展器的本地和远程侧都有SMBus从设备,所有本地从设备地址必须大于(优先级低于)远程从设备地址,以确保正确的从设备地址协商。
在中断I²C事务时,START或STOP命令只能在本地LTC4331处于从接收模式时发出,否则可能会导致数据传输错误。
LTC4331支持比有效链路速率更快的本地I²C时钟速率,但如果本地主设备发送连续的START/STOP命令速度过快,可能会导致内部缓冲区溢出。此时,RDY引脚会变高,同时会触发TX_BUFFER_OVERFLOW FAULT事件。
链路波特率通过SPEED1和SPEED2引脚设置,需要确保本地和远程侧的设置一致,并且不要超过给定SPEED设置对应的最大电缆长度。
建议采用接地平面布局,将4.7μF的旁路电容放置在距离VCC引脚不超过7mm的位置。连接信号A和B的PCB走线应尽量对称且短,以保持良好的差分信号完整性。差分信号A和B应作为边缘耦合微带线布线,其差分阻抗应与电缆阻抗近似匹配。
为了减少链路传输线上的反射,应在每个节点的A和B引脚之间连接一个端接电阻,电阻值应与差分电缆的特性阻抗紧密匹配。同时,应插入偏置电阻网络以维持链路反转时的空闲状态。
支持对链路进行电气隔离,适用于有安全要求或独立接地电位的应用。在变压器隔离应用中,需要在链路两侧的A和B引脚添加串联电阻;在电容隔离应用中,需要选择合适的电阻和电容值。
虽然LTC4331本身具有一定的ESD保护能力,但在工业环境中,可能会遇到更高水平的电气过应力,如5kV浪涌、5kV EFT和30kV IEC ESD。因此,需要设计一个适当的外部保护网络来实现高水平的浪涌保护,并进一步提高ESD和EFT性能。
LTC4331以其高速、长距离、强保护、多功能等特点,为工业级I²C总线扩展提供了一个可靠而灵活的解决方案。电子工程师在设计相关系统时,需要充分考虑其特性和应用注意事项,合理进行PCB布局和保护措施设计,以确保系统的稳定性和可靠性。在实际应用中,你是否遇到过类似I²C总线扩展的挑战?又是如何解决的呢?欢迎在评论区分享你的经验。
全部0条评论
快来发表一下你的评论吧 !