3245-01-ibw.txt

Togotech (토론 | 기여)님의 2020년 9월 8일 (화) 09:12 판 (새 문서: 3245A <pre> 1 ! volt-std/3245-01-ibw.txt 10 !2018/04/30 HP3245A Universal Source로 출력 + HP3458A DMM으로 측정 20 ! DC 전압: -10.25V ~ +10.25V, 6자리(24비...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

3245A

1      ! volt-std/3245-01-ibw.txt
10     !2018/04/30 HP3245A Universal Source로 출력 + HP3458A DMM으로 측정
20     ! DC 전압: -10.25V ~ +10.25V, 6자리(24비트) 고해상도, 3.5자리(12비트) 저해상도 모드
30     !     저해상도모드에서는 트리거 가능하다.
40     ! DC 전류: -0.1A ~ +0.1A, 0.1mA~100mA 범위, 0.1nA 해상도
50     ! AC 전압(p-p 전압이다.)/전류 1MHz까지, 펄스는 100kHz까지
60     !    duty cycle은 100kHz까지 5%~95%
70     ! Freq Ref = 1,073,741.824Hz
80     ! APPLY DCV | DCI
90     ! USE CHANA | CHANB = 0 | 100
100    ! TERM FRONT | REAR | OPEN = OFF
110    ! IMP  0 | 50
120    ! ARANGE ON | OFF   autorange
130    ! RANGE
140    ! DELAY 0.04sec (default)
150    !
160    ! xmin, xmax, nop 로그계산방법
170    ! k=(xmax/xmin)^(1/(nop-1))
180    ! x=xmin*k^(n-1)   n=1,...,nop
190    INTEGER I,J,Nop,Count
200    REAL K,Vmin,Vmax,Vset,Vmeas,Tmp
210    GOSUB Fileopen
220    ASSIGN @Source TO 710  !HP 3245A
230    ASSIGN @Dmm TO 722     !HP 3458A
240 !  OUTPUT @Source;"USE CHANB"
250    OUTPUT @Source;"IMP 0"   ! 0ohm 50ohm
260    T0=TIMEDATE
270    Nop=101
280    Func$="Trans"     ! V I i Trans
290    Scale$="LIN"  ! LIN LOG
300    SELECT Func$
310    CASE "Trans"   !트랜스 전압비
320      Fstart=10
330      Fstop=100000
340      Fnop=201
350      Vstart=.1/2.828      ! 0.1Vp-p  Vpp=2.828 Vrms
360      Vstop=10/2.828       !10Vp-p
370      Vnop=10
380      OUTPUT @File;"No., Time[s], Vset[V], Vmeas[V]"
390      FOR I=1 TO Fnop
400        Kfreq=(Fstop/Fstart)^(1/(Fnop-1))
410        Freq=Fstart*Kfreq^(I-1)
420        OUTPUT @Source;"FREQ ";Freq
430        FOR J=1 TO Vnop
440          Count=I
450          SELECT Scale$
460          CASE "LOG"
470            Kvolt=(Vstop/Vstart)^(1/(Vnop-1))
480            Vset=Vstart*Kvolt^(J-1)
490          CASE "LIN"
500            Vset=Vstart+(Vstop-Vstart)/(Vnop-1)*(J-1)
510          END SELECT 
520          OUTPUT @Source;"APPLY ACV ";Vset
530          WAIT .1
540          OUTPUT @Dmm;"TRIG SGL"
550          ENTER @Dmm;Vmeas
560          T=TIMEDATE-T0
570          DISP Count,"Freq=";Freq;"Set V=";Vset," Meas V=";Vmeas
580          OUTPUT @File;Count,T,Freq,Vset,Vmeas
590        NEXT J
600      NEXT I
610      OUTPUT @Source;"APPLY ACV 0"
620    CASE "V","v"   !V출력, V측정
630      Vmin=5        ! 1uV
640      Vmax=10       !10V
650      OUTPUT @File;"No., Time[s], Vset[V], Vmeas[V]"
660      FOR I=1 TO Nop STEP 1
670        Count=I
680        SELECT Scale$
690        CASE "LOG"
700          K=(Vmax/Vmin)^(1/(Nop-1))
710          Vset=Vmin*K^(I-1)
720        CASE "LIN"
730          Vset=Vmin+(Vmax-Vmin)/(Nop-1)*(I-1)
740        END SELECT 
750        OUTPUT @Source;"APPLY DCV ";Vset
760        WAIT .1
770        OUTPUT @Dmm;"TRIG SGL"
780        OUTPUT @Dmm;"TRIG SGL"
790        ENTER @Dmm;Vmeas
800        T=TIMEDATE-T0
810        Diff=(Vmeas-Vset)/Vset*100
820        DISP Count,"Set V=";Vset," Meas V=";Vmeas," Diff[%]=";Diff
830        OUTPUT @File;Count,T,Vset,Vmeas
840      NEXT I
850      OUTPUT @Source;"APPLY DCV 0"
860    CASE "I"
870      Imin=1.E-9  ! 1nA에서부터
880      Imax=.1     ! 100mA까지
890      OUTPUT @File;"No., Time[s], Iset[A], Imeas[A]"
900      FOR I=1 TO Nop
910        Count=I
920        K=(Imax/Imin)^(1/(Nop-1))
930        Iset=Imin*K^(I-1)
940        OUTPUT @Source;"APPLY DCI ";Iset
950        WAIT .1
960        OUTPUT @Dmm;"TRIG SGL"
970        ENTER @Dmm;Imeas
980        T=TIMEDATE-T0
990        Diff=(Imeas-Iset)/Iset*100
1000       DISP Count,"Set I=";Iset," Meas I=";Imeas," Diff[%]=";Diff
1010       OUTPUT @File;Count,T,Iset,Imeas
1020     NEXT I
1030     OUTPUT @Source;"APPLY DCI 0"
1040   CASE "i"
1050     OUTPUT @File;"No., Time[s], HP3245A set[A], HP3458A meas[A]"
1060     Count=0
1070     FOR I=-10 TO -1               !0.1A까지만 가능
1080       OUTPUT @Source;"APPLY DCI 0"      !그렇다고 0이 나오는 것은 아니다. 입력단자를 short시켜야 한다.
1090       IF I<=-8 THEN
1100         OUTPUT @Dmm;"FUNC DCI ";1.E-7         !범위 0.1uA시작 000.000nA 표시된다.
1110       ELSE 
1120         OUTPUT @Dmm;"FUNC DCI ";10^(I+1)
1130       END IF 
1140   !   전루 측정 범위별로 MATH NULL 수행
1150   !   OUTPUT @Dmm;"TRIG SGL"
1160   !   ENTER @Dmm;Tmp
1170   !   OUTPUT @Dmm;"MATH NULL"
1180   !   OUTPUT @Dmm;"TRIG SGL"
1190   !   ENTER @Dmm;Tmp
1200       FOR J=1 TO 9     ! 10을 사용하면, 한 단계 더 높은 범위 1에서 수행되는 것과 겹쳐, NULL 의미에 문제가 된다.
1210         Count=Count+1
1220         Vset=J*10^I            ! 최초 출력 전류는 1E-10A부터 시작
1230         IF Vset>.1 THEN STOP   ! 전류출력 .1A 초과하면 이상 나오게 프로그래밍되면 정지시킨다.
1240         OUTPUT @Source;"APPLY DCI ";Vset
1250         WAIT .1
1260         OUTPUT @Dmm;"TRIG SGL"
1270         ENTER @Dmm;Vmeas
1280         T=TIMEDATE-T0
1290         DISP Count,"Set I=";Vset," Meas I=";Vmeas
1300         OUTPUT @File;Count,T,Vset,Vmeas
1310       NEXT J
1320     NEXT I
1330     OUTPUT @Source;"APPLY DCI 0"
1340   END SELECT 
1350   OUTPUT @Dmm;"TRIG AUTO"
1360   STOP
1370 Fileopen: !
1380   DIM Filename$[20],Dhms$[8]
1390   Time$=TIME$(TIMEDATE)
1400   Date$=DATE$(TIMEDATE)
1410   Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2]
1420   Filename$=Dhms$&".txt"
1430   CREATE Filename$,1
1440   ASSIGN @File TO Filename$;FORMAT ON
1450   RETURN
1460   END