⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testplan

📁 HP3070的主板ICT测试主程序,是用BT-basic写的.
💻
📖 第 1 页 / 共 5 页
字号:

!##############################################################################
sub Print_Startup_Message
global Panel$, Panel_Rev$, Using_ART, QSTATS_Mode, Histo
global Analog_Sample_Rate, Chek_Point_Mode, Failures
global Report_Printer$, Using_Buffered_Reporting, Testmain_Revision$
global Serializing, Serial_Length, Using_Graphics

print using "@,2/"
print "BOARD TYPE"
print "  Name:     ";Panel$
print "  Revision: ";Panel_Rev$
print "AGILENT 3070 TESTMAIN"
print "  Report Printer: ";Report_Printer$
print "  Revision:       ";Testmain_Revision$
!   Build list of options to be printed
!     O1$ is first line, O2$ is second line
O1$ =  "  Options: "
if Using_ART then O1$=O1$&" PR+"
if QSTATS_Mode then O1$=O1$&" QSTATS"
if Chek_Point_Mode then
  O1$=O1$&" Chek-Point"
  if Chek_Point_Mode = Failures then
    O1$=O1$&"-Failures"
  else
    O1$=O1$&"-Pretest"
  end if
end if
if Using_Graphics then O1$ = O1$ & " Graphics"
if (O1$="  Options: ") then
  O2$=O1$
else
  print O1$
  O2$= "           "
end if
if Serializing then O2$=O2$&" Serializing("&val$(Serial_Length)&")"
if learning then O2$=O2$&" LEARNING"
if Using_Buffered_Reporting then O2$=O2$&" Buffered-Reporting"
if QSTATS_Mode = Histo then
  O2$=O2$&" Histograms("&val$(Analog_Sample_Rate)&")"
end if
if not (O2$ = "           ") then print O2$
print using "3/"
subend

!##############################################################################
sub Get_Board_Revision
! NOTE: If Board revs are different from panel rev, modify this routine!
global Panel_Rev$, Panel_Rev_Prompt$, Board_Rev$(*), Number_Boards_On_Panel
global Panel_Itself

if Panel_Rev$ = "" then
  print using """"&Panel_Rev_Prompt$&""",#"
  input "",Panel_Rev$
  for I = Panel_Itself to Number_Boards_On_Panel
    Board_Rev$(I) = Panel_Rev$
  next I
end if
subend

!##############################################################################
sub Do_Version_Inits
global Version_Inits_Needed, Chek_Point_Mode, True, False, Off

unpowered
faoff
!call Characterize                ! external to testmain
if Chek_Point_Mode <> Off then   ! preload pins into testhead memory
  Log_Level_Reset = False
  if lli$ = "all" then
    log level is none            ! turn off digital datalogging
    Log_Level_Reset = True       ! for 'ignore all failures'
  end if
  ignore all failures
  Err = fn Pinsfailed ("")       ! external to testmain
  acknowledge all failures
  if Log_Level_Reset = True then log level is all  ! reset datalogging
end if
Version_Inits_Needed = False
subend

!##############################################################################
sub Get_Version_Label
global Version_Label$, Version_Prompt$, True, False
global Version_Inits_Needed ,Autover$ ,Tempver$
Old_Version$ = bvi$
Version_Inits_Needed = True
loop
  Version_Label$ = ""
!+++++++++++++++++++++++++++++++++
!  print using """" & Version_Prompt$ & """,#"
!  input "", Version_Label$
!=================================

  Tempver$="600-10"&Autover$[6;3]&"-"&Autover$[9;4]&"-"&Autover$[13;3]
  print Tempver$
  if Autover$[24;1]="U" or Autover$[24;1]="u" then
     PcbaVer$= Autover$[24;1]
     else
     PcbaVer$= Autover$[23;2]
  end if

  if Tempver$="600-10651-0001-200" and (Autover$[20;1] = "S" or  Autover$[20;1] = "s") then
     Version_Label$=""
   ! print "version label is : " ;Tempver$
           print "-------------------------------------"
           print "PCB P/N is:         180-10651-0000-A02"
           print "PCB Ver is:         E"
           print "PCBA P/N is:        600-10651-0000-002"!;Tempver$  !cerfi
           print "PCBA Ver is:        ";PcbaVer$
   else

  if Tempver$="600-10651-0001-201" and (Autover$[20;1] = "S" or  Autover$[20;1] = "s") then
     Version_Label$=""
   ! print "version label is : " ;Tempver$
           print "-------------------------------------"
           print "PCB P/N is:         180-10651-0000-A02"
           print "PCB Ver is:         E"
           print "PCBA P/N is:        600-10651-0000-002"!
           print "PCBA Ver is:        ";PcbaVer$
   else

   if  Tempver$="600-10651-0000-200" and (Autover$[20;1] = "H" or  Autover$[20; 1] = "h") then
           Version_Label$="600-10651-0000-200"
           print "----------------------------------"
           print "PCB P/N is:         180-10651-0102-A02"
           print "PCB Ver is:         B"
           print "PCBA P/N is:        " ;Version_Label$
           print "PCBA Ver is:        ";PcbaVer$
      else

   if  Tempver$="600-10651-0000-201" and (Autover$[20;1] = "H" or  Autover$[20; 1] = "h") then
           Version_Label$="600-10651-0000-200"
           print "----------------------------------"
           print "PCB P/N is:         180-10651-0102-A02"
           print "PCB Ver is:         B"
           print "PCBA P/N is:        " ;Version_Label$
           print "PCBA Ver is:        ";PcbaVer$
      else


    print tab(15);chr$(27)&"&v1S==============================================="
    print tab(15);chr$(27)&"&v1Sboard version slection error //  or wrong board"
    print tab(15);chr$(27)&"&v1S==============================================="
               wait 2m
               goto Re_input
             end if
            end if
           end if
          end if

  if Version_Label$ = "" or Version_Label$ = "*" then
    board version is *, Err
  else
!   board version is Version_Label$, Err
  end if
  exit if not Err
  print errmlong$
end loop

if bvi$ = Old_Version$ then
  Version_Inits_Needed = False
end if

subend

!##############################################################################
sub Initialize_Constants
global PreshortsMsg$, ShortsMsg$, PowerMsg$, DigitalMsg$, AnalogMsg$
global DigitalFuncMsg$, AnalogPoweredMsg$, Chek_Point_Msg$
global Break_Detected, Mode$, Board_Not_Tested$,FET_TestMsg$,Failed_In_FET_Test
global True, False, InvOn$, InvOff$, First_Run$, Panel_Rev_Prompt$
global Pass_Msg$, Fail_Msg$, Pass_File$, Fail_File$, Stop_Msg$, Break_Msg$
global No_Init_Warning$, Rep_Test$, Place_Board_Prompt$, Learning_Off_Msg$
global Failed_In_Learn, Failed_Pin_Test, Failed_In_Preshorts, Failed_In_Shorts
global Failed_In_Analog, Failed_In_Power_Supplies, Failed_In_Digital
global Failed_In_Functional, Failed_In_BScan, Passed, Failed, Xed_Out
global Directory_Exists, Log_Path$, System$, Queue_Error_Msg$
global Break_Code, Error_Code
global But$, Put$, Serial_Prompt$, Bad_Serial_Image$, Oper_Id_Prompt$
global Known_Good_Prompt$, Serial_Nr$, Failed_Board$
global Retry_PinTest$, Cycle_Vacuum$, Recycle_Vacuum$
global Pin_Msg$, Pin_Msg2$, Max_Times_To_Fix_Contact
global BScanIntconMsg$, BScanIncktMsg$, All_Xout$
global TestJetMsg$, Failed_In_TestJet
global PolarityMsg$, Failed_In_Polarity_Check
global BScanPShortsMsg$, No_Version_Init_Warning$
global Version_Label$, Version_Prompt$
global ConnectCheckMsg$, Failed_In_ConnectCheck
global Failed_In_Flash, FlashProgMsg$
global AnalogClusterMsg$, Failed_In_Analog_Cluster
global BScanSiNailsMsg$, Failed_In_BScan_SiNails
global SW_ScanPathVerifyMsg$, Failed_In_SW_Testing
global SW_DrVerifyMsg$, SW_IrVerifyMsg$
global SW_InterconnectMsg$, SW_MemInterconnectMsg$
global SW_ClusterMsg$, SW_MemBistMsg$
global SW_ProgrammingMsg$, Failed_In_SW_Programming
global SW_FlashMsg$, Failed_In_SW_Flash
global Bad_Board_Name$

Break_Detected           = False
InvOn$                   = chr$(27)&"&dB"&chr$(7)  ! chr$(7) rings bell
InvOff$                  = chr$(27)&"&d@"
Passed                   = 0
Failed                   = 1
Failed_Pin_Test          = 2
Failed_In_Learn          = 3
Failed_In_Shorts         = 4
Failed_In_Analog         = 6
Failed_In_Power_Supplies = 7
Failed_In_Digital        = 8
Failed_In_Functional     = 9
Failed_In_Preshorts      = 10
! Status codes 11, 12 reserved for use by EFS
Xed_Out                  = 13     ! This status is maintained but not logged
Failed_In_BScan          = 8      ! Equate to Failed_In_Digital
Failed_In_TestJet        = 14
Failed_In_Polarity_Check = 15
Failed_In_ConnectCheck   = 16
Failed_In_Analog_Cluster = 17
Failed_In_Flash          = 18
Failed_In_BScan_SiNails  = 19
Failed_In_SW_Testing     = 8      ! Equate to Failed_In_Digital
Failed_In_SW_Programming = 20
Failed_In_SW_Flash       = 21
Error_Code               = 80
Break_Code               = 82
Failed_In_FET_Test       = 23
Directory_Exists         = 100312
Log_Path$                = "G:\"
!Log_Path$                = btgetenv$("AGILENT3070_ROOT")&"/qm/logdata/testerq/"
enter "uname -n |";System$              ! gets hostname (without domain)
Max_Times_To_Fix_Contact = 4            ! MUST BE >= 1
Pin_Msg$                 = "FIXTURE CONTACT PROBLEM"
Pin_Msg2$                = "FIXTURE CONTACT PROBLEM ON FOLLOWING BOARDS:"
O$                       = InvOn$&"Press YES"&InvOff$
O$                       = O$&" to retry Pins Test, "&InvOn$&"NO"&InvOff$
Retry_PinTest$           = O$&" to continue."
O$                       = InvOn$&"Press YES"&InvOff$&" to cycle vacuum, "
Cycle_Vacuum$            = O$&InvOn$&"NO"&InvOff$&" Otherwise."
O$                       = InvOn$&"Press YES"&InvOff$
Recycle_Vacuum$          = O$&" to turn vacuum on and continue testing."
Queue_Error_Msg$         = "Cannot create directory to queue up log data.  Error is:"
But$                     = "Board Under Test: "
Put$                     = "Panel Under Test: "
Serial_Prompt$           = InvOn$&"Enter"&InvOff$&" Panel Identifier: "
O$                       = "/,""Identifier has wrong length ("",dd,""), must be "
Bad_Serial_Image$        = O$&""",dd,""."",/"
Oper_Id_Prompt$          = InvOn$&"Enter"&InvOff$&" Operator Identifier: "
Known_Good_Prompt$       = InvOn$&"Enter"&InvOff$&" Verification Board Identifier: "
Rep_Test$                = "Repeating test of the following boards: "
First_Run$               = "Please stand by -- doing first-run initializations"
No_Init_Warning$         = "** WARNING: FIRST RUN INITIALIZATIONS NOT COMPLETED --"
No_Init_Warning$         = No_Init_Warning$ & " CLEARING NRUN **"
O$                       = "** WARNING: VERSION CHANGE INITIALIZATIONS NOT"
No_Version_Init_Warning$ = O$ & " COMPLETED -- CLEARING NRUN **"
Pass_File$               = btgetenv$("AGILENT3070_ROOT")&"/util/pass"
Fail_File$               = btgetenv$("AGILENT3070_ROOT")&"/util/fail"
Board_Not_Tested$        = "Board not fully tested."
Pass_Msg$                = "P A N E L   P A S S E D"
Fail_Msg$                = "P A N E L   F A I L E D"
Stop_Msg$                = "P R O G R A M   S T O P P E D"
Break_Msg$               = "Break/Stop detected."
Place_Board_Prompt$      = "Place panel on fixture and "&InvOn$&"press START"
Panel_Rev_Prompt$        = InvOn$&"Enter"&InvOff$&" Panel Revision: "
Learning_Off_Msg$        = "Learning turned off"
if learning then
  Mode$                  = "Learning "
else
  Mode$                  = "Testing "
end if
PreshortsMsg$            = "Preshorts"
ShortsMsg$               = "Shorts"
PowerMsg$                = "Setting Up Power Supplies"
DigitalMsg$              = "Digital Incircuit"
AnalogMsg$               = "Analog Unpowered"
AnalogClusterMsg$        = "Analog Cluster"
TestJetMsg$              = "TestJet"
FET_TestMsg$             = "FET_Test"
PolarityMsg$             = "Polarity Check"
ConnectCheckMsg$         = "Connect Check"
DigitalFuncMsg$          = "Digital Functional"
AnalogPoweredMsg$        = "Analog Powered and Mixed"
BScanIntconMsg$          = "Boundary Scan Interconnect"
BScanIncktMsg$           = "Boundary Scan Incircuit"
BScanPShortsMsg$         = "Boundary Scan Powered Shorts"
BScanSiNailsMsg$         = "Boundary Scan Silicon Nails"
FlashProgMsg$            = "Programming Flash"
SW_ScanPathVerifyMsg$    = "Scan Path Verify with ScanWorks"
SW_DrVerifyMsg$          = "DR Verify with ScanWorks"
SW_IrVerifyMsg$          = "IR Verify with ScanWorks"
SW_InterconnectMsg$      = "Interconnect with ScanWorks"
SW_MemInterconnectMsg$   = "Memory Interconnect with ScanWorks"
SW_ClusterMsg$           = "Cluster with ScanWorks"
SW_MemBistMsg$           = "Memory BIST with ScanWorks"
SW_ProgrammingMsg$       = "Programming Devices with ScanWorks"
SW_FlashMsg$             = "Programming Flash with ScanWorks"
Serial_Nr$               = "Serial #: "
All_Xout$                = "No boards selected; panel has FAILED."
Chek_Point_Msg$          = "Testing Pin Contact"
O$                       = "Further testing on this panel is suspended "
Failed_Board$            = O$&"due to failures on boards: "
Version_Label$           = ""
Version_Prompt$          = InvOn$&"Enter"&InvOff$&" Version Label: "
Bad_Board_Name$          = "Board name contains space, cannot proceed:"
subend

!##############################################################################
sub Set_Custom_Options
!  All variables likely to need to be changed are initialized here.
!  The Usage flag(s) can be set True or False to selectively enable or
!  disable the code needed for each indicated subsystem or feature.
global Using_ART, QSTATS_Mode, Testrev$
global Analog_Sample_Rate
global Serializing, Serial_Length
global Chek_Point_Mode, Using_Graphics
global Report_Printer$, True, False, Using_Buffered_Reporting
global Off, Pretest, Failures, No_Histo, Histo
global Per_Run, Per_Board, Version_Prompting
global Programming

!   Usage flag(s)

QSTATS_Mode               = Off         ! Choose {Off, No_Histo, Histo}
Chek_Point_Mode           = Pretest     ! Choose {Off, Pretest, Failures}
Using_ART                 = True !False       ! Agilent Repair Tool.
Serializing               = True !False       ! Will get set True if Using_ART.
Using_Buffered_Reporting  = True        ! Report failures during board handling
Using_Graphics            = True        ! Will get set False if SimPlate fxt.
Programming               = False       ! Execute Flash and device programming.

!   Other parameters

Report_Printer$           = btgetenv$("RPR"&th$) ! Final report destination
!Report_Printer$           = "/dev/tty"  ! Send reports to the screen
Testrev$                  = "RevA"      ! Update this faithfully
Analog_Sample_Rate        = .30         ! Meaningful if QSTATS_Mode = Histo
Serial_Length             = 24!28          ! Board Id Length (0 = no checking)
Version_Prompting         = Per_Board   ! Choose {Per_Board, Per_Run}
                                        ! Used only on multiple version board
subend

!##############################################################################
sub Cleanup_Flash
global Logging, Report_level$

if Report_level$ = "all" then report level is all
if Report_level$ = "none" then report level is none
if Report_level$ = "log" then report level is log
if Report_level$ = "report" then report level is report
if Logging then
  call Set_Log_Level
end if
subend

!       Data Logging Subroutines

!##############################################################################
sub Set_Log_Level

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -