逻辑分析仪为I2C信号量测提供完整方案
I2C 汇流排在电子产品中,很常见的一种汇流排,它的好处就是只需要两条线,就可以并联很多 IC 进行控制。但因为多装置(Device) 及开路集极(Open drain)的架构,常使I2C 汇流排除错工作变得困难. 本文将提出一些实际的应用案例,并使用逻辑分析仪(Logic Analyzer)之各项功能,来协助排除问题。
使用转态储存进行长时间资料纪录
在 I2C汇流排讯号发生异常时,常无法明确的知道是哪个装置出错。因此,无法用设定触发的方式来做问题点的定位。使用者多半会考虑先把所有的波形都撷取回来再慢慢分析。但逻辑分析仪基本是以采样的方式撷取讯号,不管讯号有没有改变,都会随着采样撷取动作的进行,而不断地消耗记忆体。而转态储存(Transitional Storage)功能是一种波形资料的储存模式,只在波形转态(Transition)的时候才将波形资料储存起来,这样当资料不转态时,逻辑分析仪就可以持续的等候且不存任何资料到记忆体内。相对于每个采样点都存一次资料的作法,转态储存将可以记下更多的资料。由于I2C 的传输速度如下表一,整体来看速度都不会很快。 因此会非常地适合使用转态储存,来拉长可储存的时间。
表一I2C 个模式传输速度。
利用I2C触发来定位问题点
举例来说,电路板上I2C 汇流排连接了装置 A 与装置 B,但在长时间烧机测试(Burn-In Test)的过程中,I2C 汇流排发生错误的问题。已知的现象是当发生错误时,I2C 汇流排上会出现无效的位址(Address),并且烧机的过程中会出现数次。 如何能利用逻辑分析仪来做做问题厘清? 这样的问题,若想把所有的波形资料都抓下来,其实是有困难的。 因为出现问题的时间点及次数都很不一定,且长达好几天的烧机测试也使得把所有的资料都 Log 下来显得不切实际,又必须在大量的资料中寻找问题点。也是相当费时费力的工作。
因此,可采用逻辑分析仪中的I2C 触发功能来进行定位。首先,先把装置 A(Addr:12h) 与装置 B (Addr:34h)的有效位址输入。 然后让逻辑分析仪找出不符合上述两个条件的地址。实际设定如图一所示。
图一 利用I2C 触发功能进行无效位址定位。
然后再搭配逻辑分析仪撷取波形后自动储存功能,就很在烧机的过程中,每次触发成功就存档,之后再检视存档波形之触发点即可。善用I2C 触发功能可以快速的协助波形定位,会比资料抓得多来的有意义很多。同样的,善用整个使用I2C 参数来做为触发条件,例如地址符合或资料符合或多阶式的触发来指定更精准的触发,这些都是单纯使用边缘触发(Edge Trigger)所无法做到的功能。
I2C 触发检查时间违反(Timing violation)的问题点
I2C 汇流排会规范 SCL与 SDA 必须按规定时间送出,不然整个汇流排的行为将会发生错误,导致通讯失败。有时候实际波形的时间已经超出规格,但却无法在开发及验证被挑出来,因为有时候时间误差都不大,使得产品仍可正常使用。 但常常问题会流到量产时才爆发出来,造成量产不良率攀升。甚至到使用者手上才出现问题。这都是产品开发所不乐于见到的结果。
以图二所示,可启用逻辑分析仪之时间违反检查当作触发条件,设定所需检查的时间值,再让逻辑分析仪协助挑出时间违反的地方。逻辑分析仪系统采用 200MHz 采样率来进行采样。 因此,可检查之最小时间宽度为 5ns。这样,就可以辅助使用者,利用触发来做时间违反检查。非常适合于烧机测试时,用这个方式检测I2C 汇流排的讯号时间。
图二 时间违反触发功能之设定画面。
采用舒密特触发电路架构撷取品质良好的I2C 讯号
使用逻辑分析仪进行量测时,常会看到一些杂讯。但使用示波器看的时候似乎又没有,是甚么原因? 要如何排除? 这是因为I2C 汇流排是开路集极架构,汇流排上又同时接了很多装置,还有一些静电防护零件等等。可能使得I2C波形不见得会是很好的方波。 常见的I2C 波形如图三、四所示。但这样的波形在I2C 规范里面,是正常可接受的,并没有问题。
图三 常见的I2C 汇流排讯号(一), 上方为 SCL, 下方为 SDA。
图四 常见的I2C 汇流排讯号(二), SDA 讯号。
也因为这样,一般I2C晶片,都会规范在讯号输入脚位必须要有舒密特触发(Schmitt trigger)电路,以便于完善的解决讯号输入后能正确的处理逻辑讯号。为此,逻辑分析仪也可循此法做较完善的讯号解撷取动作。图五为一般逻辑分析仪,此用单一个触发准位的方式来做逻辑0与逻辑1 的区分。这样的作法,很容易在待测讯号经过触发准位(Threshold)附近时,产生很多不可预期的逻辑变化。 使得撷取出来的讯号像是杂讯或弹跳的现象。
图五 逻辑分析仪采单一触发准位模式示
- 基于虚拟仪器的网络虚拟实验室构建(11-06)
- 信号完整性基础系列之十一——理解力科SDA的三种抖动分解(01-05)
- 数位仪表设计-HY12P65简化可携式电量测量设计(04-03)
- 关于基于FPGA平台的手持式频谱分析仪的实现原理(01-06)
- 双T型功率振荡器用作直流偏置交流源(08-10)
- 基于双DSP的电力系统谐波分析仪的设计(12-23)