需要确认注册邮箱后才能开通博客,立即确认我的邮箱
文章 搜索 高级搜索 ?3? ?3?
  • 滤波器new!
  • LED驱动 new!
  • 新能源 new!
  • PLL
  • PCIE协议
  • 可穿戴
  • LSI
  • FCI
文章 论坛 博客 小组 研讨会
EDN China>EDN论坛>测试测量专区>应用举例1:IDDQ测试
?
大家在做什么...
楼主 问题:

应用举例1:IDDQ测试

发布时间:2012-9-27 上午11:14

作者: jack_ma

等级: 优秀技术总监

积分: 4513分

发帖数: 213次

网站总积分: 6333分

2723分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件

在此例中,将2000个测试向量发送至必须用恒定2V加电的CMOS IC。此例将使用一个阈值电平,而且1μA及以下的静态电流将被认为是合格电流。无需保存实际的测量值,所以将只检查260X的箝位状态。为确保生产吞吐量符合要求,必须尽快完成测量,最好在1秒以内。测量仪器必须发送一个通过/失效指示至数字测试系统。

?

方案:开发TSP脚本用于创建“IddqTest(smu, ndevices, nvectors)函数”。此脚本的一部分被列在下面。完整的脚本可以在吉时利网站(www.keithley.com)下载。此脚本可以用测试脚本生成器查看、编辑、装载和运行。由于无法获得实际的“数字测试系统”,因而使用IDDQ测量与测试向量应用同步的触发线路进行环绕测试以评估函数的速度性能。260X的输入触发线路连至其输出触发线路。在此条件下,260X能以每秒约2500个向量的速率执行IDDQ测试。

?

函数定义如下。除了这里示出的以外,实际脚本包括更多注释。注释用双横线(--)标识。函数中声明了几个局部变量。所有变量都是全局的,除非显式声明为局部变量。此函数在执行实际测试前要进行一些仪器初始化设置。此设置包括设定2V源电平和1μA箝位极限,选择电压感测模式以及配置触发线路。例子中使用了本地(2线)电压感测。可以直接将其改为远端(4线)感测。

?

function IddqTest(smu, ndevices, nvectors)

-- 传递参数:

-- 源测量单元是用于测试的SMU(A或B)

-- ndevices是待测IC的数量

-- nvectors是Iddq测试序列用到的向量数量

-- 默认smua,如果未指定SMU。

if smu == nil then smu = smua end

-- ***** 声明并初始化临时变量*****

-- 保存“等待触发信号”布尔状态的变量

local l_sot_received

local l_trig_received

-- 放弃测试标记(布尔型)

local l_abort_test

-- 保存定时信息的变量

local l_start_time, l_stop_time, l_elapsed_time

-- 计数器变量

local l_i, l_nvectors_remaining

-- 用于模拟器件机械手分级的表格

local l_bins = {0,0} -- 全部分级初始设置为0

-- *************** 执行260X的初始化设置***************

smu.reset() -- 将SMU重置为缺省设置

smu.source.func = smu.OUTPUT_DCVOLTS -- 源DCV

smu.source.rangev = 2 -- 将自动选择6V量程

smu.source.levelv = 2 -- 源2V

smu.source.limiti = 1E-6 -- 电流箝位设为1uA
smu.sense = smu.SENSE_LOCAL -- 用smu.SENSE_REMOTE进行4线感测
?

-- 配置数字I/O端口

digio.writeprotect = 0 -- 全部比特撤销保护

digio.writeport(30) -- 将2、3、4和5比特/行设置为高

digio.writeprotect = 30 -- 触发线路2、3、4和5写保护

-- 配置触发线路2(输入SOT)

digio.trigger[2].mode = digio.TRIG_FALLING -- 检测下降沿

digio.trigger[2].clear() -- 清除“锁存”触发信号

-- 配置触发线路3(输出EOT)

digio.trigger[3].mode = digio.TRIG_FALLING -- 输出TTL低电平脉冲

digio.trigger[3].pulsewidth = 10E-6 -- 确保最小脉冲

-- 配置触发线路4(在设置了测试向量时输入TRIG)

digio.trigger[4].mode = digio.TRIG_FALLING -- 检测下降沿

digio.trigger[4].clear() -- 清除“锁存”触发信号

-- 配置触发线路5(在完成IDDQ测量后输出TRIG)

digio.trigger[5].mode = digio.TRIG_FALLING -- 输出TTL低电平脉冲

digio.trigger[5].pulsewidth = 10E-6 -- 确保最小脉冲

-- 清除错误队列

errorqueue.clear()

-- ************************* 执行测试*************************

-- 在前面板显示一些状态信息

display.clear()

display.setcursor (1,1)

display.settext(" Test In Progress")

display.setcursor (2,1)

display.settext(" Testing "..tostring(ndevices).." Parts")

timer.reset()

l_start_time = timer.measure.t()

for l_i = 1, ndevices do

-- 等待SOT指示器件准备好进行测试;10ms后超时

l_sot_received = digio.trigger[2].wait(0.01)

-- 打开SMU输出;等到测试完成

smu.source.output = smu.OUTPUT_ON

-- 初始化中断标记和向量计数器

l_abort_test = false

l_nvectors_remaining = nvectors

digio.trigger[4].clear() -- 清除全部“锁存”触发信号

-- 重复测试直至不再有测试向量或测试失败

while (l_nvectors_remaining >0) and not (l_abort_test) do

-- 等待来自数字测试系统的触发信号;10ms后超时

l_trig_received = digio.trigger[4].wait(10E-3)

-- 如需建立时间,delay(0.0005)在这里插入延时

-- 检查箝位状态;返回布尔值真或假

l_incompliance = smu.source.compliance

-- 如果源在箝位状态,那么器件损坏并且中断测试

if l_incompliance then

digio.writeport(32) --写失效模式至DIO

l_bins[2] = l_bins[2]+1 -- “分级”器件

l_abort_test = true -- 将中断测试标记置为真并退出循环

else -- 否则,器件仍然是好的,所以继续测试

digio.trigger[5].assert() -- 输出触发信号至“数字测试系统”

l_nvectors_remaining = l_nvectors_remaining – 1 -- 新计数
end --if语句
?

-- 如果测试不中断,那么器件是好的

if not (l_abort_test) then

digio.writeport(64) -- 写通过模式至DIO

l_bins[1] = l_bins[1]+1 -- “分级”器件

end --if语句

--关闭SMU输出

smu.source.output = smu.OUTPUT_OFF

-- 输出EOT触发信号

digio.trigger[3].assert()

-- 清除分级码(将全部撤销保护的比特置为零)

delay(0.0001) -- 清除分级码之前延迟的单位为秒

digio.writeport(0)

end --for语句

l_stop_time = timer.measure.t()

l_elapsed_time = l_stop_time - l_start_time

-- 在260X前面板显示吞吐率和最终分级结果

display.clear()

display.setcursor (1,1)

display.settext("Parts per sec = "..tostring(ndevices / l_elapsed_time))

display.setcursor(2,1)

display.settext("Bin Count: Good= "..l_bins[1].." Bad= "..l_bins[2])

-- 将速度与分级结果写至输出队列以供PC主机读取

print("Elapsed time = "..l_elapsed_time.." sec")

print("Parts per sec = "..tostring(ndevices / l_elapsed_time))

print("Bin Count: Good Parts: "..l_bins[1].." Bad Parts: "..l_bins[2])
end --IddqTest函数
?
用测试脚本生成器或者其它应用执行示例的IDDQ测试脚本仅创建了函数,不执行任何测试。执行IDDQ测试需要调用IddqTest()函数。例如,为了用2000个测试向量测试100个器件,系统控制器必须发送指令“IddqTest(smua, 100, 2000)”。
作为对函数调用的响应,260X等待外部数字测试系统对每个DUT的开始测试(SOT)触发信号。260X收到SOT信号后,打开SMU输出并等待数字测试系统的触发信号。数字测试系统向IC输入端施加测试向量,然后发送一个触发信号至260X。260X接到触发信号后,等待一个预定的建立时间,然后检查其箝位状态。如果不在箝位状态,那么这项IDDQ测试通过,而且260X输出一个触发信号至数字测试系统并进入循环等着下一个施加的测试向量。此过程持续进行直至完成全部测试向量或者260X进入箝位状态。如果成功通过全部测试向量,260X
就向其DIO端口写入十进制数64表明通过了数字测试系统。表元素“l_bins[1]”加1用于模拟器件的分级。然后,260X输出测试结束(EOT)触发信号至数字测试系统,表明已完成DUT的IDDQ测试序列。
如果260X进入箝位状态,那么IDDQ测试失败。在单项测试失败时,260X采用“立即”分级方案,这意味着260X会立即向数字测试系统写一个失效位模式(十进制数32),中断
?
剩余的测试序列,然后输出EOT触发信号至数字测试系统。在输出了失效模式后,表元素“l_bins[2]”加1用于模拟分级过程。在260X通过写十进制数0至DIO端口来发送EOT触发信号后,260X等待一个预定的时间间隔就会清除通过/失效位模式。如果有更多的DUT要测试,260X进入循环并等待下一个SOT触发信号。当完成全部测试后,在260X前面板会显示吞吐率和分级结果;吞吐率和分级结果也会打印至输出队列以供系统控制器读取。
?
想与吉时利测试测量专家互动?想有更多学习资源?可登录吉时利官方网站http://www.keithley.com.cn/
?
?


分享到:? 新浪微博 ?? 微信 ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
qq空间 ?? 腾讯微博 ?? 人人网 ?? 百度搜藏 ??
?
引用 回复 收藏 推荐到小组 ( 0) ( 0) 关注

EDN China电子设计技术通过增强材料技术提升电容器寿命
第1楼

回复主题:应用举例1:IDDQ测试

发布时间:2014-9-19 上午0:16

作者: flatfishtoh

等级: 初学者

积分: 104分

发帖数: 3次

网站总积分: 104分

174分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
好東西,頂
引用 回复
( 0) ( 0)


快速回复 高级回复
用户名:?
美国的游客?????? (您将以游客身份发表,请登陆 | 注册) ?
标题: * 标题还可以输入80
评论: * 你还可以输入30000
验证码: ?*?
分享: 新浪微博?? qq空间?? qq微博?? 人人网?? 百度搜藏??
维护专业、整洁的论坛环境需要您的参与,请及时举报违规帖子,如果举报属实,我们将给予相应的积分奖励。
谢谢您的热心参与!
返回测试测量 | 返回专业技术交流区
本论坛仅陈述专家或个人观点,并不代表EDN China 电子技术设计互动社区网站立场。
积分排行榜
彩云 [殿堂级工程师]
mzlr [殿堂级工程师]
特权同学 [殿堂级工程师]
敬请关注EDNC官方微信“edn-china"

每月定期向您递送电子元器件规格书网中的最新元器件数据手册下载、库存信息及技术参数更新。请点击订阅:

2016我的工程师社区
EDN官方QQ群???更多QQ群
  • EDN-深圳 8366025
  • 菜农Cortex-M0技术交流 12047788
  • EDN-哈尔滨 75642591
  • EDN-上海 15156661
  • EDN-广州 57660943
  • EDN-桂林 48813559
  • EDN-武汉 25150805
  • EDN-模拟电路 2837145
  • EDN-通讯 30548292
  • EDN-综合 57490949

促进EDN网友交流合作,方便EDN网友学习沟通

有问题请反馈