新聞中心

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

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

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

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

        本文引用地址:http://www.104case.com/article/201708/363142.htm

          關鍵詞:

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

          Introduction

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

          本文重點介紹如何使用的每引腳PMU功能在被測器件上執行連續性測試(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數字IO (DIO)。該測試稱為“Continuity”測試,它通過檢測IC引腳上的ESD二極管(IC里面會有ESD保護電路的設計)來驗證tester和DUT之間的連續性。tester到DUT的連續性是通過將小電流施加到DUT引腳,并測量是否存在電壓來測量的。這利用了GX5295的PMU的強制電流,測量電壓(FIMV)能力。

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

          Pin Mapping

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

          Dut Define Counts(nCount, nPins)

          為了在DUT引腳上加電流/測量電壓,有必要在軟件中定義tester resources和DUT IO之間的連接。在本示例中,使用ATEasy中定義的另一個特殊命令執行引腳映射,該命令將在結構化陣列中存儲“Tester-Channel to DUT-Pin”相關性。引腳映射結構還保留DUT引腳名稱和引腳類型(輸出,輸入,IO,Vcc1:4和Ground) - 這對于提供有關被測試引腳的信息非常有用。使用時,“Dut Define PinMap”命令指定DUT pin_type,DUT pin_name,DUT pin_number以及包含DIO通道號channel_number的數組。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器件數量,DUT引腳數和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)

          注意:需要提一下兩個特殊的引腳映射參數。首先,為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 ,已經定義了另一個ATEasy命令。該命令接受DUT number和DUT pin。 DUT pin是個變量(Variant),可以接受由DUT映射命令定義的DUT名稱,DUT pin作為文本參數,或DUT pin number作為一個數字參數。通過引用(指針)傳遞另外兩個參數,并返回與DUT pin變量相關聯的DUT pin number和DUT pin name。該命令在施加小負載電流至引腳后返回該引腳的一個Double類型的電壓測量值。命令的形式如下:

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

          作為面向對象的編程語言,ATEasy為其Task/Test結構中定義的每個測試提供唯一的名稱(請參閱ATEasy Help/Test)。測試名稱可以使用“Test”對象變量和“Name”屬性在運行時以文本字符串的形式訪問,如下所示:

          string = Test.Name

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

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

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

          圖3.Continuity Task/Test Structure and Test Command

          Test PMU Measure Command 附加到進行continuity測量的procedure中被調用。在這個procedure中, TestContinuity位于名為DUT的驅動程序中,本文中討論的命令也是這樣。這個procedure調用另一個這個procedure,_GetPinInfo 在結構數組中搜索通過命令傳遞的DUT Variant pin的name或number,當搜索到時,提取與該引腳相關聯的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通道返回動態(dynamic)模式(默認),測量電壓返回到正在被調用命令中。完整的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將根據Min / Max參數自動評估返回到TestResult的測量值,以確定每個continuity test的Pass/Fail狀態,并將自動將評估結果的報告傳遞給測試日志Test Log(standard output)或ATEasy Test Executive(ATEasy測試管理驅動)。圖4顯示了測試執行器輸出,引腳2的DUT開路故障,以及引腳9的DUT短路故障。(這兩種故障被稱為continuity故障)

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

          圖4.ATEasy Test Executive Output with DUT continuity Failures

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



        關鍵詞: Texas Instruments GX5295

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 柳州市| 尖扎县| 大城县| 苍溪县| 岳普湖县| 文登市| 连南| 宜宾市| 墨竹工卡县| 石台县| 铜山县| 吴桥县| 乌鲁木齐市| 寿阳县| 呈贡县| 通化市| 文山县| 平遥县| 那坡县| 家居| 封开县| 满城县| 衡南县| 康马县| 锡林郭勒盟| 车致| 龙南县| 澄城县| 巴马| 松桃| 河西区| 平山县| 五台县| 大港区| 石楼县| 城固县| 海丰县| 南宁市| 穆棱市| 台南市| 昂仁县|