TR6143-vi-2.txt
Togotech (토론 | 기여)님의 2023년 3월 16일 (목) 17:22 판 (새 문서: Advantest TR6143 <pre> 10 ! Advantest TR6143 <pre> 20 ! I-1 32uA, I0 320uA, I1 3.2mA, I2 32mA, I3 320mA, I4 2A 30 ! 2020-01-17 40 OPTION BASE 1 50 INTEGER...)
10 ! [[Advantest TR6143]] <pre> 20 ! I-1 32uA, I0 320uA, I1 3.2mA, I2 32mA, I3 320mA, I4 2A 30 ! 2020-01-17 40 OPTION BASE 1 50 INTEGER I,Nop 60 INTEGER Size,Length 70 DIM Cmd$[25],A$[13],Msg$[25] 80 Nop=401 !401 90 Wait=.05 !0.05, 0.04초가 문제가 없다. 100 GOSUB Fileopen 110 GOSUB Inst_open 120 GOSUB Sweep_select 130 GOSUB Src_select 140 GOSUB Dut_select 150 GOSUB Measure 160 ! GOSUB Measure0 170 STOP 180 Sweep_select: ! 190 Size=3 200 Length=4 210 ALLOCATE Sweep$(Size)[Length] 220 Sweep$(1)="LIN" 230 Sweep$(2)="LOG" 240 Sweep$(3)="TIME" 250 Msg$="Sweep 종류" 260 DIALOG "LIST",Msg$,Btn;SET("ITEMS":Sweep$(*),"COLUMNS":Length,"ROWS":Size),RETURN("SELECTION":Sweep_no) 270 Sweep_no=Sweep_no+1 280 RETURN 290 Src_select: ! 300 Size=3 310 Length=4 320 ALLOCATE Src$(Size)[Length] 330 Src$(1)="VOLT" 340 Src$(2)="CURR" 350 Src$(3)="TIME" 360 Msg$="Source 종류" 370 DIALOG "LIST",Msg$,Btn;SET("ITEMS":Src$(*),"COLUMNS":Length,"ROWS":Size),RETURN("SELECTION":Src_no) 380 Src_no=Src_no+1 390 RETURN 400 Dut_select: ! 410 INTEGER Dut_no 420 Size=20 430 Length=15 440 ALLOCATE Dut$(Size)[Length] 450 Dut$(1)="LED" 460 Dut$(2)="Ge DIODE" 470 Dut$(3)="Si DIODE" 480 Dut$(4)="100mA DIODE" 490 Dut$(5)="2A Power" 500 Dut$(6)="DIODE x5" 510 Dut$(7)="Schottky" 520 Dut$(8)="Zener" 530 Dut$(9)="Bat" 540 Dut$(10)="Motor" 550 Dut$(11)="P-PTC" 560 Dut$(12)="12Vcoil" 570 Dut$(13)="Buzzer" 580 Dut$(14)="LED12V" 590 Dut$(15)="LED48V" 600 Dut$(16)="TVS" 610 Msg$="DUT 종류" 620 DIALOG "LIST",Msg$,Btn;SET("ITEMS":Dut$(*),"COLUMNS":Length,"ROWS":Size),RETURN("SELECTION":Dut_no) 630 Dut_no=Dut_no+1 640 SELECT Dut$(Dut_no) 650 CASE "LED" 660 SELECT Src$(Src_no) 670 CASE "VOLT","TIME" 680 Vlimit=90 !! 690 Alimit=.01 !!!!!!!!!!!!!!!!!!!!!!!! 700 Source_min=1 !시작 V=0.001 !LED=0.1 710 Source_max=3 !종료 V=1 !LED=10 720 CASE "CURR" 730 Vlimit=100 740 Alimit=.05 750 Source_min=.01 !시작 760 Source_max=.5 !LED 최대 전류 770 END SELECT 780 CASE "LED12V" 790 SELECT Src$(Src_no) 800 CASE "VOLT","TIME" 810 Vlimit=90 !! 820 Alimit=1 !!!!!!!!!!!!!!!!!!!!!!!! 830 Source_min=7 !시작 V=1,7 840 Source_max=11 !종료 V=12,11 850 CASE "CURR" 860 Vlimit=12 870 Alimit=.05 880 Source_min=.01 !시작 890 Source_max=1 !LED 최대 전류 900 END SELECT 910 CASE "LED48V" 920 SELECT Src$(Src_no) 930 CASE "VOLT","TIME" 940 Vlimit=90 !! 950 Alimit=.4 !!!!!!!!!!!!!!!!!!!!!!!! 960 Source_min=30 !시작 V=0.001 !LED=0.1 970 Source_max=50 !종료 V=1 !LED=10 980 CASE "CURR" 990 Vlimit=100 1000 Alimit=.05 1010 Source_min=.01 !시작 1020 Source_max=.1 !LED 최대 전류 1030 END SELECT 1040 CASE "Ge DIODE" 1050 SELECT Src$(Src_no) 1060 CASE "VOLT" 1070 Vlimit=1 1080 Alimit=.1 1090 Source_min=.001 !시작 V=0.001 1100 Source_max=1 !종료 V=1 1110 CASE "CURR" 1120 Vlimit=1 1130 Alimit=.1 1140 Source_min=1.E-6 !시작 1150 Source_max=.1 !종료 V=1 1160 END SELECT 1170 CASE "Si DIODE" 1180 SELECT Src$(Src_no) 1190 CASE "VOLT" 1200 Vlimit=10 1210 Alimit=.1 1220 Source_min=.01 !시작 V=0.01 1230 Source_max=10 !종료 V=1 1240 CASE "CURR" 1250 Vlimit=10 1260 Alimit=.1 1270 Source_min=1.E-6 !시작 1280 Source_max=.1 !종료 1290 END SELECT 1300 CASE "100mA DIODE" 1310 SELECT Src$(Src_no) 1320 CASE "VOLT" 1330 Vlimit=10 1340 Alimit=.1 1350 Source_min=.1 !시작 V=0.01 1360 Source_max=10 !종료 V=1 1370 CASE "CURR" 1380 Vlimit=10 1390 Alimit=.05 1400 Source_min=1.E-9!시작 1410 Source_max=.1 !종료 1420 END SELECT 1430 CASE "2A Power" 1440 SELECT Src$(Src_no) 1450 CASE "VOLT" 1460 Vlimit=10 1470 Alimit=2 1480 Source_min=.0001 !시작 V=0.01 1490 Source_max=.1 !종료 V=1 1500 CASE "CURR" 1510 Vlimit=10 1520 Alimit=2 1530 Source_min=1.E-6!시작 1540 Source_max=.1 !종료 1550 END SELECT 1560 CASE "DIODE x5" 1570 SELECT Src$(Src_no) 1580 CASE "VOLT" 1590 Vlimit=10 1600 Alimit=.1 1610 Source_min=.001 !시작 V=0.001 !LED=0.01 1620 Source_max=10 !종료 V=1 !LED=10 1630 CASE "CURR" 1640 Vlimit=10 1650 Alimit=.1 1660 Source_min=1.E-6 !시작 1670 Source_max=.1 !종료 V=1 !LED=10 1680 END SELECT 1690 CASE "Schottky" 1700 SELECT Src$(Src_no) 1710 CASE "VOLT" 1720 Vlimit=10 1730 Alimit=.01 1740 Source_min=.001 !시작 V=0.01 1750 Source_max=1 !종료 V=1 1760 CASE "CURR" 1770 Vlimit=10 1780 Alimit=.1 1790 Source_min=1.E-6 !시작 1800 Source_max=.01 !종료 V=1 !LED=10 1810 END SELECT 1820 CASE "Zener" 1830 SELECT Src$(Src_no) 1840 CASE "VOLT" 1850 Vlimit=110 1860 Alimit=.1 1870 Source_min=.1 !시작 V=1 1880 Source_max=10 !종료 V=100 1890 CASE "CURR" 1900 Vlimit=100 1910 Alimit=.1 1920 Source_min=1.E-9 !시작 1930 Source_max=.1 !종료 V=1 !LED=10 1940 END SELECT 1950 CASE "TVS" 1960 SELECT Src$(Src_no) 1970 CASE "VOLT" 1980 Vlimit=110 1990 Alimit=.1 2000 Source_min=.1 !시작 V=1 2010 Source_max=100 !종료 V=100 2020 CASE "CURR" 2030 Vlimit=100 2040 Alimit=.1 2050 Source_min=1.E-6 !시작 2060 Source_max=.1 !종료 V=1 !LED=10 2070 END SELECT 2080 CASE "Bat" 2090 Nop=101 2100 SELECT Src$(Src_no) 2110 CASE "VOLT" 2120 STOP 2130 CASE "CURR" 2140 Vlimit=4 2150 Alimit=.01 2160 Source_min=1.E-5 !시작 2170 Source_max=.1 !종료 V=1 !LED=10 2180 END SELECT 2190 CASE "Motor" 2200 Nop=801 2210 SELECT Src$(Src_no) 2220 CASE "VOLT" 2230 STOP 2240 CASE "CURR" 2250 Vlimit=4 2260 Alimit=1 2270 Source_min=1.E-6 !시작 2280 Source_max=.1 !종료 V=1 !LED=10 2290 END SELECT 2300 CASE "P-PTC" 2310 Nop=401 2320 SELECT Src$(Src_no) 2330 CASE "VOLT" 2340 Vlimit=32 2350 Alimit=2 2360 Source_min=.001 !시작 V=1 2370 Source_max=10 !종료 V=100 2380 CASE "CURR" 2390 Vlimit=5 2400 Alimit=2 2410 Source_min=1 !시작 2420 Source_max=2 !종료 V=1 !LED=10 2430 END SELECT 2440 CASE "12Vcoil" 2450 Nop=801 2460 SELECT Src$(Src_no) 2470 CASE "VOLT" 2480 Vlimit=32 2490 Alimit=1 2500 Source_min=7 !시작 V=6.5 2510 Source_max=3. !종료 V=7 2520 CASE ELSE 2530 STOP 2540 END SELECT 2550 CASE "Buzzer" 2560 Nop=201 2570 SELECT Src$(Src_no) 2580 CASE "VOLT" 2590 Vlimit=32 2600 Alimit=1 2610 Source_min=1.2 !시작 V=6.5 2620 Source_max=.5 !종료 V=7 2630 CASE ELSE 2640 STOP 2650 END SELECT 2660 END SELECT 2670 RETURN 2680 Measure:! 2690 OUTPUT @Src;"E" !on 2700 SELECT Src$(Src_no) 2710 CASE "VOLT","TIME" 2720 OUTPUT @File;"No., Elapsed-Time[s], Source-Volt[V], Measured-Curr[A]" 2730 !V3 320mV, V4 3.2V, V5=32V, V6=110V 2740 Cmd$="V6" !110V 2750 SELECT Vlimit 2760 CASE >32 2770 Cmd$="V5" 2780 CASE >3.2 2790 Cmd$="V4" 2800 CASE >.32 2810 Cmd$="V3" 2820 END SELECT 2830 OUTPUT @Src;Cmd$ 2840 Cmd$=Cmd$&" D "&VAL$(Alimit)&"A" !전류 한계 2850 OUTPUT @Src;Cmd$ 2860 CASE "CURR" 2870 OUTPUT @File;"No., Elapsed-Time[s], Measure-Volt[V], Source-Curr[A]" 2880 !I-1 32uA, I0 320uA, I1 3.2mA, I2 32mA, I3 320mA, I4 2A 2890 SELECT Alimit 2900 CASE <32*1.E-6 2910 Cmd$="I-1" 2920 CASE <320*1.E-6 2930 Cmd$="I0" 2940 CASE <3.2*.001 2950 Cmd$="I1" 2960 CASE <32*.001 2970 Cmd$="I2" 2980 CASE <320*.001 2990 Cmd$="I3" 3000 CASE <=2 3010 Cmd$="I4" 3020 END SELECT 3030 Cmd$="I-1" 3040 ! OUTPUT @Src;Cmd$ 3050 Cmd$=Cmd$&" D "&VAL$(Vlimit)&"V" !전압 한계 3060 OUTPUT @Src;Cmd$ 3070 END SELECT 3080 T0=TIMEDATE 3090 I=0 3100 SELECT Src$(Src_no) 3110 CASE "TIME" 3120 LOOP 3130 I=I+1 3140 IF I=1 THEN GOSUB Reading !첫측정에 종전 데이터가 버퍼에 있기 때문에 3150 IF I=1 THEN GOSUB Reading ! 3160 T1=TIMEDATE-T0 3170 Stimulus=Vlimit 3180 SELECT Stimulus 3190 CASE >1 3200 Stimulus1=Stimulus 3210 Unit$="V" 3220 CASE ELSE 3230 Stimulus1=Stimulus*1000 3240 Unit$="MV" 3250 END SELECT 3260 Cmd$=" D "&VAL$(Vlimit)&Unit$ 3270 OUTPUT @Src;Cmd$ 3280 GOSUB Reading 3290 Volt=Stimulus 3300 Curr=Data 3310 IF Curr=0 THEN Curr=1.E-9 3320 R=Volt/Curr 3330 PRINT "Count=";I;", T=";PROUND(T1,-4);"s, V=";Volt;"V, I=";Curr;"A, R=";PROUND(R,-4) 3340 OUTPUT @File;I,T1,Volt,Curr 3350 EXIT IF T1>3600 3360 END LOOP 3370 CASE "VOLT","CURR" 3380 ! FOR I=1 TO Nop 3390 I=0 3400 LOOP 3410 I=I+1 3420 SELECT Sweep$(Sweep_no) 3430 CASE "LOG" 3440 K=(Source_max/Source_min)^(1/(Nop-1)) 3450 Stimulus=Source_min*K^(I-1) 3460 CASE "LIN" 3470 IF Source_max>Source_min THEN 3480 Stimulus=Source_min+(Source_max-Source_min)/(Nop-1)*(I-1) 3490 ELSE !!!!!!!!!!!! 하강 3500 Stimulus=Source_min-(Source_min-Source_max)/(Nop-1)*(I-1) 3510 END IF 3520 END SELECT 3530 ! stimulus 크기에 따라 V,MV,A,MA,UA로 변환 3540 SELECT Src$(Src_no) 3550 CASE "VOLT" 3560 SELECT Stimulus 3570 CASE >1 3580 Stimulus1=Stimulus 3590 Unit$="V" 3600 CASE ELSE 3610 Stimulus1=Stimulus*1000 3620 Unit$="MV" 3630 END SELECT 3640 CASE "CURR" 3650 SELECT Stimulus 3660 CASE >1 3670 Stimulus1=Stimulus 3680 Unit$="A" 3690 CASE >.001 3700 Stimulus1=Stimulus*1000 3710 Unit$="MA" 3720 CASE >1.E-6 3730 Stimulus1=Stimulus*1.E+6 3740 Unit$="UA" 3750 CASE >1.E-9 3760 Stimulus1=Stimulus*1.E+6 3770 Unit$="UA" 3780 END SELECT 3790 END SELECT 3800 Stimulus=DROUND(Stimulus,5) 3810 Stimulus1=DROUND(Stimulus1,5) 3820 ! 3830 SELECT Dut$(Dut_no) 3840 CASE "Bat" 3850 Cmd$=" D "&VAL$(-Stimulus1)&Unit$ 3860 CASE ELSE 3870 Cmd$=" D "&VAL$(Stimulus1)&Unit$ 3880 END SELECT 3890 OUTPUT @Src;Cmd$ 3900 ! 3910 WAIT Wait! 너무 빠르면 오차 발생하므로 0.04초가 문제없다. 3920 T1=TIMEDATE-T0 3930 IF I=1 THEN GOSUB Reading !첫측정에 종전 데이터가 버퍼에 있기 때문에 3940 IF I=1 THEN GOSUB Reading !첫측정에 종전 데이터가 버퍼에 있기 때문에 3950 GOSUB Reading 3960 ! WAIT 1 3970 SELECT Src$(Src_no) 3980 CASE "VOLT" 3990 Volt=Stimulus 4000 IF Data<0 THEN Data=1.E-9 !-부호 방지 4010 Curr=Data 4020 CASE "CURR" 4030 Curr=Stimulus 4040 Volt=Data 4050 END SELECT 4060 IF Curr=0 THEN Curr=1.E-9 4070 R=Volt/Curr 4080 PRINT "Count=";I;", T=";PROUND(T1,-4);"s, V=";Volt;"V, I=";Curr;"A, R=";PROUND(R,-4) 4090 OUTPUT @File;I,T1,Volt,Curr 4100 EXIT IF PROUND(Volt,-4)>=Vlimit 4110 ! EXIT IF ABS(Curr-Alimit)/Alimit*100<1 !전류 최대값에 1%이내 !!!!!!!!!!!!!!!!!!!!!!!!!!!! 4120 EXIT IF I=Nop 4130 END LOOP 4140 ! NEXT I 4150 END SELECT 4160 !전류 전압을 0으로 4170 Cmd$=" D 0"&Unit$ 4180 OUTPUT @Src;Cmd$ 4190 OUTPUT @Src;"H" !off 4200 RETURN 4210 Reading: ! 4220 ENTER @Src;A$ 4230 Data=VAL(A$[3,13]) 4240 RETURN 4250 Inst_open: ! 4260 ASSIGN @Src TO 714 !advantest TR6143 4270 RETURN 4280 Fileopen:! 4290 DIM Dhms$[8] 4300 DIM Filename$[20] 4310 T=TIMEDATE 4320 Time$=TIME$(T) !하루 추가 +24*3600 4330 Date$=DATE$(T) 4340 Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2] 4350 Filename$=Dhms$&".txt" 4360 CREATE Filename$,1 4370 ASSIGN @File TO Filename$;FORMAT ON 4380 RETURN 4390 END