ICT 数字测试原理 22 - -系统保护
ICT 数字测试原理 22 - -系统保护
文章目录
- ICT 数字测试原理 22 - -系统保护
- i3070系统保护
- 驱动检查(UnMux系统)
- 过压/欠压保护(UnMux系统)
- 过功率保护(Mux系统)
- 过压保护(Mux系统)
- 虚假过压情况
- 预防虚假过压情况
- 电流限制
i3070系统保护
i3070电路测试系统具备多种功能,保护被测板上的设备。这里描述的功能还通过防止被测板上的无效电压损坏电路来增强测试系统的可靠性。
这些功能包括:
- 驱动检查(UnMux系统):验证数字驱动器能否转换为所有编程逻辑状态。
- 过压/欠压保护(UnMux系统):保护系统的驱动器和接收器不受被测板上过高或过低电压的影响。
- 过功率保护(Mux系统):防止系统驱动器长时间提供过多电流。
- 过压保护(Mux系统):保护系统的驱动器和接收器不受被测板上过高电压的影响。
- 电流限制:防止DUT电源超过指定电流水平。此功能也保护被测板。
驱动检查(UnMux系统)
UnMux系统的驱动检查功能检测驱动器在向量执行期间是否达到其编程的逻辑电平。如果未达到此条件,测试执行期间会出现致命错误消息,测试将停止。报告票将列出驱动检查错误条件、发生错误的节点以及适用时的向量编号。驱动检查通过在接收选通期间验证驱动器状态,确保数字驱动器向被测设备输出正确状态。如果与同一节点连接的其他设备未及时禁用,可能引发不稳定测试,这可以通过驱检查发现。这可能是被测板上的干扰造成的。
导致此故障的原因包括:
- UnMux系统驱动器与板上高电流源之间的低阻抗路径。为防止此运行时错误发生,必须先禁用该电流源。
- 在板上未被禁用的振荡器。UnMux系统驱动器上此振荡电压的转换可能导致此错误。禁用振荡器将消除此错误。
- 设备上未连接的输入引脚。板上设备未连接输入引脚的错误机制与上述振荡器案例类似。您可以通过将驱动器设置为默认状态,或将引脚设置为双向并在引脚上添加上拉或下拉负载来防止此类错误。也可以通过在测试夹具中为这些引脚添加上拉或下拉电阻来纠正错误。
在无法禁用的板上非常高的电流源将要求在显示错误的引脚上不存在驱动器。在无法用上述技术解决的驱动检查错误的情况下,应该将该引脚标记为“星号”(即,在引脚编号上加“*”,并将该引脚设置为“非数字”引脚),并重新编译测试。这将从该引脚的数字测试中移除数字驱动器。如果您这样做,请确保导线清单文件没有为该节点分配任何数字资源。
要检查导线清单文件,请按照以下步骤进行:
- 启动BT-Basic窗口。
- 在命令行执行
load "wirelist"
将导线清单文件加载到BT-Basic工作区。 - 使用“find”命令在导线清单文件中搜索设备测试名称(例如,
find "u35"
)。 - 确认未为该测试的不安全节点分配数字资源。如果有,移除它们。
- 重新保存导线清单文件(
re-save
)。 - 编译导线清单文件(
compile "wirelist"
)。 - 重新编译出现过压或欠压错误的数字或混合测试(
compile "digital/u32"
)。 - 重新执行测试,确保不会发生驱动检查错误。
过压/欠压保护(UnMux系统)
UnMux系统的过压/欠压保护功能通过保护测试系统的驱动器和接收器免受被测板上意外的高电压或负电压的影响,增强了测试系统的可靠性。如果出现过压或欠压情况,它会自动断开系统驱动器和接收器与被测板的连接并停止测试。
本讨论旨在简要解释过压/欠压保护功能的工作原理以及当您遇到这种情况时可以采取的一些措施。
过压/欠压保护的工作原理
每个无多路转换的混合卡都有电路来检测过压或负电压情况。在testplan运行期间,该电路用于查看无多路转换的混合卡上的任何引脚是否发生潜在的破坏性情况。
过压/欠压保护的工作过程如下:
-
当testplan或在BT-Basic命令行执行cps、sps、gpconnect或gpdisconnect命令时,测试头中会设置一个标志,表明需要进行OV-UV扫描。
-
如果testplan或用户执行数字或混合测试,并且设置了OV-UV扫描标志,测试头将扫描所有无多路转换的混合引脚卡上的所有引脚。这包括瞄准任何引脚接地功能的引脚和板目录的导线清单文件中未列出的引脚。任何数字通道如果未通过OV-UV扫描,将被禁用,直到通过另一次OV-UV扫描或下面列出的命令之一重置。通道的安全电压范围为-0.25V至+6.0V。
每次在数字或混合测试中使用的引脚如果未通过初始OV-UV扫描,将进行检查。如果引脚持续未通过,测试将停止并报告严重的过压/欠压错误。此次第二次检查是为了消除瞬态电压误报引脚的可能性。
OV-UV扫描可以通过在BT-Basic命令行使用verify channels命令启动。Pushbutton Debug界面也提供了verify channels命令。此命令不会在testplan中使用,因为已有自动运行OV-UV扫描的机制。
-
如果任何混合或数字测试试图使用标记为OV-UV扫描失败的任何资源,测试执行将因致命错误而停止。测试失败消息将报告存在过压错误条件,并报告OV-UV扫描失败引脚的BRC、节点名称和设备引脚编号。
-
当testplan或用户执行unpowered、load board、scratch board或testhead is 1命令或在UnMux系统上运行系统诊断时,禁用的通道将恢复全部功能。
如何纠正过压/欠压错误
纠正此错误的唯一方法是消除错误的来源。检查通过模拟元件(电阻、跳线等)与出错设备连接的不安全电压。某些情况下,如果数字测试无需使用该引脚,可以将该引脚“星号化”,以便不为其分配任何数字资源。如果这样做,请确保导线清单文件没有为该节点分配任何数字资源。
检查导线清单文件,请按照以下步骤进行:
- 启动BT-Basic窗口。
- 在命令行执行
load "wirelist"
将导线清单文件加载到BT-Basic工作区。 - 使用“find”命令在导线清单文件中搜索设备测试名称(例如,
find "u35"
)。 - 确认未为该测试的不安全节点分配数字资源。如果有,移除它们。
- 重新保存导线清单文件(
re-save
)。 - 编译导线清单文件(
compile "wirelist"
)。 - 重新编译出现过压或欠压错误的数字或混合测试(
compile "digital/u32"
)。 - 重新执行测试,确保不会发生过压或欠压错误。
过功率保护(Mux系统)
过功率保护通过防止测试系统驱动器提供过多电流过长时间,增强了测试系统的可靠性。如果驱动器在短时间内提供过多的功率,会导致其过热并受损。如果出现过功率情况,系统会自动停止测试,并将驱动器设置为高阻状态。过功率保护还会发出警告,指示导致该情况的驱动器。
什么是过功率保护
HybridPlus卡上的驱动器常因被用于超驱动而供应大电流。每个驱动器可以连续提供50 mA(或吸收40 mA)电流而不致过热。在过功率状态发生之前,每个驱动器还可以在较短时间内驱动超过50 mA的电流(低于-40 mA),具体时间取决于电流水平。驱动器的电流/时间关系是非线性的;然而,最大电流为700 mA(-500 mA),可以驱动长达2毫秒,然后发生过功率情况。
过功率的原因及应对措施
驱动器上的过功率情况是由于驱动器提供了过多电流过长时间,并存在过热的危险。此情况可能是由于被测板上的短路引起的。然而,这在数字测试中不常发生,因为任何短路通常会在短路测试中检测到。
如果驱动器在多个测试期间必须持续驱动,也可能触发过功率。过功率是电流和时间的函数;因此,您通常可以通过重新排列测试顺序来避免此问题,以便受影响的驱动器不被连续使用并得到冷却。如果测试本身足够长,足以引发过功率情况,请在测试中添加冷却延迟(请参阅VCL冷却延迟语句)。
如果驱动器必须超驱动连接了多个上游设备的节点,也可能触发过功率。如果可能,应对上游设备进行预处理,以便不需要超驱动它们,或需要较少的电流来超驱动它们(参见预处理(禁用和条件化))。
过压保护(Mux系统)
过压保护通过保护测试系统的驱动器和接收器免受被测板上意外高电压的影响来提高测试系统的可靠性。如果发生过压,它会自动断开系统驱动器和接收器与被测板的连接并停止测试。
然而,某些PC板上的设备物理特性可能导致振铃或振荡,从而导致虚假过压情况。这些情况可能会停止测试并阻止您测试正常的板。在测试系统中,通过在HybridPlus卡上的接收器输入端添加可编程终端二极管,已经解决了大多数电路的虚假过压问题。有关这些二极管的更多信息,请参见更改驱动器和接收器参数(Mux系统)以及VCL设置终端语句的描述。如果您遇到虚假过压情况,建议在VCL测试中使用这些二极管(终端)。
本讨论旨在简要说明过压功能如何工作、设备如何导致虚假过压情况以及遇到这种情况时您可以采取的一些措施。
过压的工作原理
每个引脚卡上都有一个RC电路来触发过压情况。卡上的每个驱动器和接收器通过二极管连接到同一卡上的RC电路。过压保护的工作过程如下:
-
如果对任何一个二极管的电压超过给定的(正或负)阈值水平,该二极管便会向RC电路导通电流。
-
如果RC电路充电到过压水平,它会触发一个过压情况。因为如果RC电路没有充电,则会放电,所以快速变化信号的尖峰通常不会导致过压情况。
-
当过压发生时,它停止测试,打开发生情况的引脚卡上的驱动器和接收器的所有继电器,并将所有引脚卡上的驱动器设置为高阻状态。
电压阈值水平根据引脚卡的设计而有所不同。最初的HybridPlus卡的阈值为+6.1V和-4.5V。在卡的C版中,上限阈值提高到+9.5V。(未来,其他卡可能会有不同的阈值水平。)
虚假过压情况
虚假过压(即正常板上的过压)主要发生在高速逻辑中,可能由振荡或在系统接收器输入端的振铃引起。它也可能是由于许多节点一次性切换状态造成的,这种情况通常发生在高速测试中。
测试系统接收器具有高输入阻抗;因此,当设备的上升时间短于到接收器的往返延迟时,会发生振铃。在实践中,超过700到1000 V/µs(5V摆幅的5 ns上升时间)的斜率可能会在接收器上方振铃到超过6.0 V。当今高速CMOS逻辑中普遍存在这种幅度的斜率。
当设备有多个输入允许浮动而仅一个输入被驱动用于测试时,常常会发生振荡。当输入电压上下浮动时,它们可以导致输出切换状态;通过接地路径或板上的其他路径反馈到输入上,然后导致输出节点的高频振荡。具有浮动节点的设备(例如,那些仅连接到电路板上的边缘连接器的设备)甚至在应用第一个测试向量之前就可能开始振荡并造成过压情况。
当PLAs(可编程逻辑阵列)的输出被过驱时,可能会发生振荡,这也可能导致过压情况。
另一个虚假过压的原因是将数字设备连接到可以达到更高电压的模拟电路。
预防虚假过压情况
有几种方法可以解决虚假过压问题:
-
降低系统驱动器的斜率(参见VCL设置斜率语句)。这是最简单的解决方案;然而,在高速逻辑中不总是可行。
-
在系统接收器的输入端使用可编程终端二极管。这些二极管是引脚卡上的标准配置。对于需要它们的VCL测试,这些二极管会自动启用;我们建议不要关闭这些二极管。
-
连接上拉/下拉负载到接收器(参见VCL设置负载语句)以解决振铃。或者,如果需要其他终止阻抗,可以将所需值的电阻添加到夹具中。
-
如果设备的输入允许浮动会导致振荡,请通过将系统驱动器设置为1或0而不是将它们设置为高阻态来驱动这些输入。如果这样做不切实际,那么在关闭驱动器之前,将输入设置为其通常浮动的状态。
例如,如果输入浮动为高,则在关闭驱动器之前将其设置为1。这样,当它们允许浮动时,输入电压保持相对稳定。如果将这些输入保持低,然后关闭驱动器,输入将漂移高。在这种情况下,输入会通过切换电平,导致输出尝试切换状态。然而,此方法的问题是它不允许对设备进行任何控制,因为它依赖于浮动输入保持相对稳定:如果可能的话,请将输入设置为1或0的状态。
- 如果设备的输出过驱时会振荡,请安排对设备进行某种形式的预处理,而不是过驱。有关详细信息,请参见预处理(禁用和条件化)。
对于连接到能够达到更高电压的模拟电路的节点,不要将系统驱动器或接收器连接到这些节点。
电流限制
电流限制通过限制可从电源中吸取的电流,保护被测板和DUT电源免受板上短路的影响。最大电流是可编程的,并由testplan中的BT-Basic sps语句设置。如果您正在调试测试并怀疑已发生电流限制,您可以使用BT-Basic pslimit语句来确定DUT电源的状态。
VCL测试示例
示例2-38是本章不同部分中使用的完整VCL测试示例。
被测试的设备是如图2-17所示的24WB99自定义设备。此设备有四个输入引脚(I)、四个输出引脚(O)和三个双向引脚(B),以及一个控制引脚(I/O)用于确定其方向(1为输入,0为输出)。该设备的功能并不重要,甚至是否存在也不重要。我们的目的是向您展示如何在库测试中使用VCL语句。
正在测试的24WB99自定义设备
因为这不是一个真实的测试,我们仅定义了三个向量。包括了格式语句,不是因为在如此简单的测试中需要,而只是为了向您展示它们如何与向量中的设置语句互动。本示例的目的是说明如何在测试中使用这些语句,而不是如何测试设备。如果您想了解如何测试特定设备,可以从标准数字库中复制相应的测试并进行检查。
为向您展示测试的三个部分如何协同工作,表2-20简要描述了每个部分的功能,并总结了示例测试语句的功能。
示例2-38
VCL库测试的完整示例
! Library, in‑circuit test for 24WB99 - BS/Rev. E
! File: "my_lib/24wb99"
! Created by: BTC 2/14/03
! Description: This is a simple custom digital device.! DECLARATION SECTIONsequential ! test‑typeassign Data_in to pins 1,2,9,8
assign Results to pins 3,4,5,6 ! assign pins to groups and name the groups
assign I_O_bar to pins 10 ! (also determines pin-order for the vectors)
assign Bus1 to pins 13,12,11
assign VCC to pins 14
assign GND to pins 7inputs Data_in, I_O_bar ! classify pin groups as inputs,
outputs Results ! outputs,
bidirectional Bus1 ! bidirectional,
power VCC, GND ! and powerformat hexadecimal Results ! formats to be used by "set"
format octal Bus1 ! statements to specify pin‑states in the vectorsfamily TTL ! sets up vector drive and receive voltages at TTL levelsvector cycle 550n ! vector timing
receive delay 450n ! delay before the receiver strobedisable Bus1 with I_O_bar to "1" ! information required by other tests to disable! this device
when I_O_bar is "1" inputs Bus1
when I_O_bar is "0" outputs Bus1! VECTOR DEFINITION SECTIONvector All_ones drive Bus1 ! bidirectional group of pins declared as inputsset Data_in to "1111" ! binary format (default) - assigns "1" to each pinset Results to "F" ! hexadecimal format - same as binary "1111" set Bus1 to "7" ! octal format - same as binary "111" set I_O_bar to "1"end vector vector Mixed initialize to All_ones ! copies all pin‑states from vector All_onesset Data_in to "0010" ! overrides the existing states set Results to "9" ! same as binary "1001" end vector ! Bus1 and I_O_bar retain the states (1's) copied from the! previous vector by initialize toformat binary Results ! change format on this group from hexadecimal to binaryvector Change receive Bus1 ! bidirectional pins declared as outputsset Bus1 to "5" ! same as binary "101" set Results to "1001" set I_O_bar to "0"end vector ! drivers in group Data_in default to hi‑Z state (keep plus off)! VECTOR EXECUTION SECTIONunit "Preset_device"execute Change ! determines the order in which vectorsexecute Mixed ! are executed - vectors can be executedexecute Change ! in any order and any number of timesexecute Mixedexecute All_onesend unit! ******** END OF TEST *********
表2-20
示例测试语句概述
语句类型 | 描述 |
---|---|
声明 | 分配设备引脚到引脚组,并对引脚类型进行分类。记住,每个向量都必须同时驱动输入引脚的状态并从输出引脚并行接收状态。 |
向量定义 | 为每个向量命名,并指明每次执行该向量时设备每个引脚的状态(还声明双向引脚是要驱动还是接收)。 |
向量执行 | 指明运行测试时向量的实际执行顺序。 |
示例2-39展示了示例测试片段中的语句实际上在做什么。为简洁起见,该示例未包含不活动的引脚组;即未显示GND(引脚7)和VCC(引脚14)。
示例2-39
声明引脚组名称: Data_in Results I_O_bar Bus1分配的引脚号: 1 2 9 8 3 4 5 6 10 13 12 11类型: 输入 输出 输入 双向向量定义(输入)向量 All_ones: 1 1 1 1 1 1 1 1 1 1 1 1(输入)向量 Mixed: 0 0 1 0 1 0 0 1 1 1 1 1(输出)向量 Change: Z Z Z Z 1 0 0 1 0 1 0 1向量执行! 动作: 驱动/接收 * 注释执行 Change: Z Z Z Z 1 0 0 1 0 1 0 1 ! * 接收执行 Mixed: 0 1 0 1 1 0 0 1 1 1 1 1 ! * 驱动执行 Change: Z Z Z Z 1 0 0 1 0 1 0 1 ! * 接收执行 Mixed: 0 0 1 0 1 0 0 1 1 1 1 1 ! * 驱动执行 All_ones: 1 1 1 1 1 1 1 1 1 1 1 1 ! * 驱动