<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 新品快遞 > GX5295數(shù)字IO&PMU功能在半導體Continuity 測試中的應用

          GX5295數(shù)字IO&PMU功能在半導體Continuity 測試中的應用

          作者:廣州虹科電子 時間:2017-08-17 來源:電子產(chǎn)品世界 收藏

            本文以Texas Instruments 20針TSSOP封裝的SN74HC273為例介紹使用的直流參數(shù)測量單元(PMU)對半導體器件進行Continuity測試。

          本文引用地址:http://www.ex-cimer.com/article/201708/363142.htm

            關(guān)鍵詞:

            , PMU, Parametric, Continuity Test, Semiconductor Test, ATEasy

            Introduction

            在測試半導體器件的功能之前,通常需要驗證器件的結(jié)構(gòu)完整性,包括從測試件到被測器件的連接。直流參數(shù)測量單元(PMU),用于通過強制(force)電壓/測量(measure)電流(FVMI)以及強制電流/測量電壓(FIMV)對器件進行直流特性測試。同樣的,PMU可用于驗證UUT和tester之間的連接的完整性。

            本文重點介紹如何使用的每引腳PMU功能在被測器件上執(zhí)行連續(xù)性測試(Continuity test)和短路/開路測試(continuity and shorts / opens tests)。測試程序是用ATEasy編寫的,也可以使用任何主流編程語言。下面所以截圖都是基于ATEasy應用程序。這里描述的測試可以在從半導體IC到印刷電路板的各種device上進行,因此ATEasy應用程序可以被很容易地移植到其他器件的測試中。

            圖1.Marvin Test Solutions GX5295 -PXI digitial I/O&PMU

            本文的重點也是測試的第一步,是要確定被測器件(DUT,Device Under Test)是否與tester完好連接 - 在這個例子中tester是GX5295數(shù)字IO (DIO)。該測試稱為“Continuity”測試,它通過檢測IC引腳上的ESD二極管(IC里面會有ESD保護電路的設(shè)計)來驗證tester和DUT之間的連續(xù)性。tester到DUT的連續(xù)性是通過將小電流施加到DUT引腳,并測量是否存在電壓來測量的。這利用了GX5295的PMU的強制電流,測量電壓(FIMV)能力。

            ESD保護二極管是一個半導體器件,正常情況下當電流流過時,它產(chǎn)生的電壓應與半導體結(jié)(junction)上的壓降一致。如果ESD二極管不存在,或者在Continuity測試時如果tester未連接到DUT引腳,電流將不會流過ESD二極管,并且電壓將與半導體結(jié)壓降不一致。如果ESD二極管發(fā)生故障,則可以檢測出其他異常的電壓,例如在二極管被短路的情況下,ESD二極管上測量的電壓為“0”伏。(這是后面的測試中的理論基礎(chǔ))

            Pin Mapping

            在進行任何測試或測量之前,您必須定義系統(tǒng)配置。創(chuàng)建了一個ATEasy “Command”,這個命令允許測試程序員定義安裝在測試夾具中的DUT(被測設(shè)備)的數(shù)量及其引腳數(shù)。有關(guān)在ATEasy中定義命令的其他信息,請參閱ATEasy Help/Commands在線文檔。假設(shè)所有的DUT都是同一種器件。通過下面這個命令指定要測試的DUT器件數(shù)量(nCount),每個DUT(nPins)的引腳數(shù):

            Dut Define Counts(nCount, nPins)

            為了在DUT引腳上加電流/測量電壓,有必要在軟件中定義tester resources和DUT IO之間的連接。在本示例中,使用ATEasy中定義的另一個特殊命令執(zhí)行引腳映射,該命令將在結(jié)構(gòu)化陣列中存儲“Tester-Channel to DUT-Pin”相關(guān)性。引腳映射結(jié)構(gòu)還保留DUT引腳名稱和引腳類型(輸出,輸入,IO,Vcc1:4和Ground) - 這對于提供有關(guān)被測試引腳的信息非常有用。使用時,“Dut Define PinMap”命令指定DUT pin_type,DUT pin_name,DUT pin_number以及包含DIO通道號channel_number的數(shù)組。channel_number[]用于索引DIO通道號,以支持從多個DUT的引腳映射到對應的DIO通道。命令的形式如下:

            Dut Define PinMap pin_type ("pin_name",pin_number, channel_number[])

            以Texas Instruments 20針TSSOP封裝的SN74HC273八通道鎖存器為例。

            圖2.Texas Instruments SN74HC273 -TSSOP封裝

            用于定義DUT器件數(shù)量,DUT引腳數(shù)和DUT / DIO引腳映射的命令如下所示。

            注意:為了清楚起見,DIO通道陣列被定義為與引腳映射命令一致,但是可以通過諸如從文件或電子表格讀取或通過從專用GUI輸入通道號等方式來輸入:

            Dut Define Counts(1,20)

            Dut.DioChannels={0}

            Dut Define PinMap Input ("Clr-", 1, Dut.DioChannels)

            Dut.DioChannels={1}

            Dut Define PinMap Output ("Q1" , 2, Dut.DioChannels)

            Dut.DioChannels={2}

            Dut Define PinMap Input ("D1" , 3, Dut.DioChannels)

            Dut.DioChannels={7}

            Dut Define PinMap Input ("D2" , 4, Dut.DioChannels)

            Dut.DioChannels={4}

            Dut Define PinMap Output ("Q2" , 5, Dut.DioChannels)

            Dut.DioChannels={5}

            Dut Define PinMap Output ("Q3" , 6, Dut.DioChannels)

            Dut.DioChannels={6}

            Dut Define PinMap Input ("D3" , 7, Dut.DioChannels)

            Dut.DioChannels={3}

            Dut Define PinMap Input ("D4" , 8, Dut.DioChannels)

            Dut.DioChannels={8}

            Dut Define PinMap Output ("Q4" , 9, Dut.DioChannels)

            Dut.DioChannels={-1}

            Dut Define PinMap Ground ("Gnd" ,10, Dut.DioChannels)

            Dut.DioChannels={17}

            Dut Define PinMap Input ("Clk+",11, Dut.DioChannels)

            Dut.DioChannels={15}

            Dut Define PinMap Output ("Q5" ,12, Dut.DioChannels)

            Dut.DioChannels={10}

            Dut Define PinMap Input ("D5" ,13, Dut.DioChannels)

            Dut.DioChannels={13}

            Dut Define PinMap Input ("D6" ,14,Dut.DioChannels)

            Dut.DioChannels={12}

            Dut Define PinMap Output ("Q6" ,15, Dut.DioChannels)

            Dut.DioChannels={11}

            Dut Define PinMap Output ("Q7" ,16, Dut.DioChannels)

            Dut.DioChannels={14}

            Dut Define PinMap Input ("D7" ,17,Dut.DioChannels)

            Dut.DioChannels={9}

            Dut Define PinMap Input ("D8" ,18,Dut.DioChannels)

            Dut.DioChannels={16}

            Dut Define PinMap Output ("Q8" ,19, Dut.DioChannels)

            Dut.DioChannels={1000}

            Dut Define PinMap Vcc1 ("Vcc" ,20, Dut.DioChannels)

            注意:需要提一下兩個特殊的引腳映射參數(shù)。首先,為DUT “Gnd”信號指定的“-1”DIO通道表示該DUT引腳未映射到任何DIO通道。在這種情況下,這是由于DUT負載板的布局,其將DUT Gnd引腳連接到接地層而不是DIO通道。其次,為DUT“+ 5V”Vcc引腳指定DIO通道“1000”表示Vcc引腳連接到GX5295上的四個輔助IO引腳(Aux)之一。這些“Aux”通道從1000開始映射到DIO通道。將DIO通道1000指定為DUT Vcc輸入意味著GX5295 AUX 0通道將為DUT提供Vcc電壓。

            Continuity Measurement

            為了進行continuity test ,已經(jīng)定義了另一個ATEasy命令。該命令接受DUT number和DUT pin。 DUT pin是個變量(Variant),可以接受由DUT映射命令定義的DUT名稱,DUT pin作為文本參數(shù),或DUT pin number作為一個數(shù)字參數(shù)。通過引用(指針)傳遞另外兩個參數(shù),并返回與DUT pin變量相關(guān)聯(lián)的DUT pin number和DUT pin name。該命令在施加小負載電流至引腳后返回該引腳的一個Double類型的電壓測量值。命令的形式如下:

            dMeasurement = Dut PMU Measure Continuity (nDutNumber,varDutPin, pnDutPin, psDutPin)

            作為面向?qū)ο蟮木幊陶Z言,ATEasy為其Task/Test結(jié)構(gòu)中定義的每個測試提供唯一的名稱(請參閱ATEasy Help/Test)。測試名稱可以使用“Test”對象變量和“Name”屬性在運行時以文本字符串的形式訪問,如下所示:

            string = Test.Name

            通過簡單地使用Test.Name調(diào)用Dut PMU Measure Continuity()命令,并將Test.Name定義為DUT pin name或DUT pin number來大大簡化整個測試程序。下面的示例通過定義the test name來測量DUT引腳的連續(xù)性,并使用ATEasy的內(nèi)部定義的TestResult變量來存儲連續(xù)性測量值。對于每個測試,連續(xù)性測量都可以被以一樣的方式調(diào)用:

            TestResult=Dut PMU Measure Continuity (1, Test.Name,pnDutPin, psDutPin)

            ATEasy Task/Test結(jié)構(gòu)的一個例子如下圖所示。請注意,每個測試名稱是唯一的,與上面的引腳映射命令中使用的名稱相同。還要注意,每個測試提供了用于判定continuity test的Pass/Fail狀態(tài)的最小和最大電壓值(最小/最大參數(shù)在高亮顯示的命令上方可見)。ATEasy將根據(jù)Min / Max參數(shù)自動評估返回到TestResult的測量值,以確定每個continuity test的Pass/Fail狀態(tài),并將自動將評估結(jié)果的報告?zhèn)鬟f給測試日志Test Log(standard output)或ATEasy Test Executive(ATEasy測試管理驅(qū)動)。

            圖3.Continuity Task/Test Structure and Test Command

            Test PMU Measure Command 附加到進行continuity測量的procedure中被調(diào)用。在這個procedure中, TestContinuity位于名為DUT的驅(qū)動程序中,本文中討論的命令也是這樣。這個procedure調(diào)用另一個這個procedure,_GetPinInfo 在結(jié)構(gòu)數(shù)組中搜索通過命令傳遞的DUT Variant pin的name或number,當搜索到時,提取與該引腳相關(guān)聯(lián)的DUT pin number和DIO channel number。 _GetPinInfo的代碼如下所示:

            Procedure _GetPinInfo(nDutNumber,varDutPin, nDioPin, pnDutPin, psDutPin): Void

            --------------------------------------------------------------------------------

            nDutNumber: ValShort !DUT devicenumber

            varDutPin: Val Variant !DUT Pin("Name", "Number" or valNumber)

            nDioPin: VarShort !DIO Channel number

            pnDutPin: VarShort !ReturnedDUT pin number

            psDutPin: VarString !ReturnedDUT pin name

            nHandle: Short !DIO handle

            iPin:Long !Pin index counter

            {

            ! Get the DIO session handle

            Dio Get MasterHandle(nHandle)

            If VarType(varDutPin)=vtBstr

            ! The procedure searches the structure array for the"name"

            ! or "number" of the DUT pin passed in by thecommand,...

            For iPin=0 to m_nDutCount[1]-1

            ! and when"name" is found...

            IfLCase(m_astDomain[nDutNumber-1,iPin].Name)=LCase(varDutPin)

            ! theDUT pin number is saved, ...

            pnDutPin=iPin+1

            ! theDUT pin name is saved, ...

            psDutPin=m_astDomain[nDutNumber-1,iPin].Name

            ! theDIO channel number is used for the measurement process

            nDioPin=m_astDomain[nDutNumber-1,iPin].DIO

            ExitLoop! exit the loop

            ! or when "number"is found...

            ElseIfVal(varDutPin)=(iPin+1)

            ! theDUT pin number is saved, ...

            pnDutPin=iPin+1

            ! theDUT pin name is saved, ...

            psDutPin=m_astDomain[nDutNumber-1,iPin].Name

            ! theDIO channel number is used for the measurement process

            nDioPin=m_astDomain[nDutNumber-1,iPin].DIO

            ExitLoop! exit the loop

            EndIf

            Next

            ! If the DUT pin "name/number"was not found...

            If iPin=m_nDutCount[1]

            ! generate an error exceptionand return

            Error 1,"DUT pinname/number ""+varDutPin+"" not found"

            Return

            EndIf

            Else

            pnDutPin=varDutPin

            ! If the DUT pin number exceeds it'slimits...

            If pnDutPin<1 orpnDutPin>m_nDutCount[1]

            ! generate an error exceptionand return

            Error 1,"DUT pin number"+Str(pnDutPin)+" invalid"

            Return

            EndIf

            ! The DUT pin name is saved, and ...

            psDutPin=m_astDomain[nDutNumber-1,pnDutPin-1].Name

            ! the DIO channel number is used for themeasurement process

            nDioPin=m_astDomain[nDutNumber-1,pnDutPin-1].DIO

            EndIf

            }

            _GetPinInfo返回的DIO channel number用于continuity測量。 DIO channel置于Force Current模式中,+ 5V和-2V的整流電壓(電壓鉗位)施加到DIO通道,以將DUT引腳電壓保持在DUT的安全級別。對DIO通道施加小的負電流(-0.5mA),并測量所得到的電壓。測量完成后,DIO通道返回動態(tài)(dynamic)模式(默認),測量電壓返回到正在被調(diào)用命令中。完整的ATEasy算法如下所示:

            Procedure TestContinuity(nDutNumber,varDutPin, pnDutPin, psDutPin): Double

            --------------------------------------------------------------------------------

            nDutNumber: ValShort !DUT devicenumber

            varDutPin: Val Variant !DUT Pin("Name", "Number" or valNumber)

            pnDutPin: Var Short !ReturnedDUT pin number

            psDutPin: VarString !ReturnedDUT pin name

            nDioPin:Short !DIO Channel number

            dContinuity:Double !Continuityvoltage measurement

            nHandle:Short !DIO handle

            {

            ! Get the DIO session handle

            Dio Get MasterHandle(nHandle)

            _GetPinInfo(nDutNumber,varDutPin,nDioPin,pnDutPin,psDutPin)

            ! The DIO channel is placed in the Force Current mode and...

            Dio Setup Channels Mode PmuForceCurrentModeRangeOfChannels(nHandle,nDioPin,nDioPin)

            ! commutating voltages (voltage clamps) of +5V and -2V are defined

            Dio Setup Channels PMU ForcedCurrentCommutatingVoltageRangeOfChannels(nHandle,nDioPin,nDioPin,5.0,-2.0)

            ! A small negative current (-0.5mA) is applied to the DIO channel, and...

            Dio Setup Channels PMU ForceCurrentRangeOfChannels(nHandle,nDioPin,nDioPin,-0.5,aPmuCurrentRange_n2ma_to_p2ma)

            ! the resulting voltage is measured

            Dio Measure PmuVoltage(nHandle,nDioPin,dContinuity,250)

            ! The DIO channel is returned to dynamic (default) mode and...

            Dio Setup Channels Mode DynamicIo RangeOfChannels(nHandle,nDioPin,nDioPin)

            ! the measured voltage is returned to the calling command

            Return dContinuity

            }

            Results

            ATEasy將根據(jù)Min / Max參數(shù)自動評估返回到TestResult的測量值,以確定每個continuity test的Pass/Fail狀態(tài),并將自動將評估結(jié)果的報告?zhèn)鬟f給測試日志Test Log(standard output)或ATEasy Test Executive(ATEasy測試管理驅(qū)動)。圖4顯示了測試執(zhí)行器輸出,引腳2的DUT開路故障,以及引腳9的DUT短路故障。(這兩種故障被稱為continuity故障)

            結(jié)合圖5二極管的伏安特性曲線可分析:引腳2的測量值為-1.8220V已經(jīng)遠超二極管反向擊穿電壓值,所以是開路故障,在status一列被標記為“Fail”;引腳9的測量值為+0.0020V表現(xiàn)為非常小的正電壓值,所以是短路故障,在status一列被標記為“Fail”,這兩個電壓測量值都超出了Min (-0.85V)/ Max(-0.5V)參數(shù)范圍。

            圖4.ATEasy Test Executive Output with DUT continuity Failures

            圖5.二極管的伏安特性曲線



          關(guān)鍵詞: Texas Instruments GX5295

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();