如何使用Prodigy逻辑分析仪 在 clock stretching 上实现 pulse width 触发
概述
在嵌入式系统领域,I2C(内部集成电路)是一种广泛使用的通信协议,使设备能够在短距离内相互通信。I2C 通信的一个关键方面是 clock stretching,它允许较慢的器件通过保持较低的 clock line 来控制通信的速度。设计工程师面临的挑战之一是在总线中连接多个 I2C 时监控不频繁的 clock stretching 事件。哪个设备正在延长时钟,以及它如何影响嵌入式系统的性能。
PGY-LA-EMBD 是一款高性能逻辑分析仪,提供用于分析 I2C 信号的高阶功能,包括时钟延展的脉宽触发。本文档概述了如何使用 PGY-LA-EMBD logic analyzer 在 clock stretching 上实现 pulse width 触发。
I2C 中的clock stretching
时钟扩展是 I2C 通信中使用的一种机制,其中从器件可以将 SCL (时钟线)保持为低电平,以向主机发出信号,使其在继续通信之前等待(如图 1 所示)。当 slave 需要更多时间来处理信息时,这确保了数据完整性。主设备必须等到从设备释放 SCL 线路后才能恢复通信。当 slave 需要额外的时间进行处理、缓冲或 synchronization 时,此功能特别有用,但它确实需要 master 支持 clock stretching 才能正确进行通信。
脉冲宽度触发
脉冲宽度触发是 logic analyzers 中的一项强大功能,允许用户根据脉冲的持续时间捕获事件。在 I2C clock stretching 的上下文中,此功能对于检测和分析 I2C 中的器件将时钟线 (SCL) 保持为低电平以进行 clock stretching 的实例特别有用,因为该器件需要更多时间来响应。在 I2C 总线中,并非所有器件都等于响应时间。尽管 I2C 总线可以以 10Kbps 的速度工作,但在逻辑分析仪或 I2C 分析仪中捕获不常见的时钟拉伸事件是很困难的。脉冲宽度触发通过设置脉冲宽度超过 100Kbps 的数据速率来设置脉冲宽度触发,从而可以捕获此事件。此功能可帮助工程师识别 I2C 通信中的时序问题、性能瓶颈和其他异常情况。
PGY-LA-EMBD 提供各种触发选项,包括 pattern 触发、协议感知触发和 timing parameter triggers。timing parameter trigger 是 pulse width 触发的一种形式,允许用户在负边沿设置脉冲宽度。这意味着如果 clock line 保持低电平的时间超过指定的 pulse width,则 PGY-LA-EMBD 将在负沿触发。
例如,在图 2 中,脉冲宽度触发配置为负边沿上的脉冲宽度大于 10,000 ns。在此示例中,I2C 信号以 100 kHz 的频率和 10,000 ns 的周期捕获。在某些情况下,会发生 clock stretching,并且 PGY-LA-EMBD 中的 pulse width 触发功能用于准确捕获这些事件。
图 3 显示了写-读传输期间的 I2C 波形。读取传输后,clock 在写入消息期间被拉伸,导致 clock stretching 事件持续 30,000 ns。Vertical cursors 用于测量此 clock stretching 的持续时间。当 I2C 从器件将时钟线 (SCL) 保持为低电平时,会发生时钟延展,暂时暂停通信以处理数据。在此示例中,PGY-LA-EMBD logic analyzer配置为在超过 10,000 ns 的 clock stretch上触发,以捕获这种不常见的事件。当超过此阈值时,具有 I2C 解码功能的逻辑分析仪将通知触发点在总线视图上标有“T”,从而轻松识别和分析延迟。这种设置有助于诊断 I2C 通信中的时序和性能问题,确保可靠运行。
结论
使用具有 I2C 解码功能的 PGY-LA-EMBD 逻辑分析仪在 I2C 上触发时钟延展的脉宽,为分析和排除 I2C 通信故障提供了一种强大的方法。通过利用 PGY-LA-EMBD 的高阶触发功能,工程师可以更深入地了解 I2C 系统的时序行为,从而确保嵌入式应用中的可靠和高效通信。