SCPI write()가 예외 없이 끝났다는 사실은 DUT가 안전한 voltage에 도달했다는 증거가 아니다. 명령 전송, 장비 operation 완료, query response, error-free state와 실제 bias readback을 순서대로 닫아야 한다.
직관 · 무엇이 보이나?
프로그램을 명령 목록이 아니라 증거가 붙은 상태 전이로 보자
명령 순서와 실제 bias 순서를 어떻게 같은 상태기계로 만들까?
Output coupling, rise/fall delay, LIST dwell, query-back과 이중 output-enable gate를 한 timeline으로 읽습니다.
교육용 계산 모델 · 실제 장비 정확도나 compliance 판정을 대신하지 않습니다.
- Source파형·전력·할당초기 상태에서 관찰하는 stage
- DUT전달·반사·비선형초기 상태에서 관찰하는 stage
- Acquisitionmixer·IF·ADC초기 상태에서 관찰하는 stage
- DSP / MathRBW·FFT·복소수초기 상태에서 관찰하는 stage
- Displaytrace·marker·grid초기 상태에서 관찰하는 stage
먼저 결과를 예측해보세요
VOLT:MODE LIST와 INIT:TRAN을 보냈지만 BUS trigger를 보내지 않았다면?
Coupling은 배선이 아니라 output-state synchronization입니다
Gate 0 ms → Drain 100 ms
그래프 값을 표로 보기
| 항목 | 값 | 해석 |
|---|---|---|
| Gate rise | 0 ms | 추가 compatible module 또는 외부 bias source의 delay |
| Drain rise | 100 ms | DUT data sheet가 정한 drain enable timing |
| LIST step | 28.0 V | trigger 뒤 transient output value |
| Current limit guard | 2.50 A | 100 W envelope 안 |
| LIST dwell | 500 ms | 512-step, max 262.144 s/step 범위 안 |
Configure program은 output을 켜지 않습니다
*IDN? → module/option → OFF → configure → query-back → error → optional ON → finally OFF
- identify
*IDN? - identify
SYST:CHAN:MOD? (@1) - identify
SYST:CHAN:OPT? (@1) - safe-off
OUTP OFF,(@1) - verify
*OPC? - configure
VOLT 28,(@1) - configure
CURR 2.5,(@1) - configure
VOLT:PROT 32,(@1) - configure
CURR:PROT:DEL 0.02,(@1) - configure
CURR:PROT:STAT ON,(@1) - verify
VOLT? (@1) - verify
CURR? (@1) - verify
VOLT:PROT? (@1) - verify
CURR:PROT:STAT? (@1) - verify
OUTP? (@1) - verify
SYST:ERR? - cleanup
OUTP OFF,(@1) - cleanup
ABOR:TRAN (@1) - cleanup
ABOR:ACQ (@1)
지금 보이는 변화의 원인
같은 계산 state- 변경
- Gate 0 ms · Drain 100 ms · LIST 28.0 V/500 ms
- 직접 효과
- Coupled output state가 rail별 RISE/FALL delay를 적용하고 BUS trigger 뒤 LIST address가 진행합니다.
- 화면 결과
- Output permission이 없어 program은 configure와 cleanup만 수행합니다.
- 비용·한계
- OUTP:COUP 설정은 nonvolatile이고 *RST로 지워지지 않습니다. 시작 시 coupling state를 반드시 query해야 합니다.
원인을 자기 말로 닫아보세요
바꾼 물리량 → 영향을 받은 stage → 화면에서 바뀐 부분 → 비용·한계 순서로 설명합니다.
먼저 예측을 맞게 고정하세요.
측정 주의 · 고정 profile은 slot 1 N6752A 한 채널입니다. Gate rail은 추가 compatible module 또는 외부 bias source를 연결한 확장 예이며, 순서는 DUT 데이터시트와 interlock를 따라야 합니다.
안전한 한 사이클
connect → identity/module/option → all outputs OFF → configure → query-back/error drain → load/arm → external permits → output ON → measure → RF OFF → PSU OFF → abort/drain/close
Output ON은 configuration의 일부가 아니라 별도의 permission이다. 기본 dry-run은 장비에 연결하지 않고 command transcript만 만들며, 실제 통신과 실제 output은 두 개의 명시적 flag를 요구한다.
실무 조작·해석 · 무엇을 바꿀까?
LIST·trigger·multi-rail을 복구 가능한 순서로 실행하자
LIST는 waveform file이 아니라 DC setpoint sequence다
N6752A list는 최대 512 steps, dwell은 step당 최대 262.144 s다. LIST:VOLT와 LIST:DWEL을 load하고 voltage mode를 LIST로 바꾼 뒤 INIT:TRAN으로 arm한다. Trigger source가 BUS라면 *TRG가 오기 전에는 진행하지 않는다.
OUTP OFF,(@1)
VOLT:MODE LIST,(@1)
LIST:VOLT 0,5,12,28,(@1)
LIST:DWEL 0.050,0.050,0.100,0.500,(@1)
TRIG:TRAN:SOUR BUS,(@1)
INIT:TRAN (@1)
*OPC?
# 외부 DUT·measurement readiness 확인
OUTP ON,(@1)
*TRG*OPC?는 앞선 장비 operation의 완료를 동기화하지만 DUT가 안정화되었다거나 RF measurement가 끝났다는 뜻은 아니다. Voltage/current/status readback와 analyzer trigger를 별도로 확인한다.
다중 rail coupling은 explicit state로 다룬다
Output coupling과 channel delay를 쓰면 rail마다 rise/fall delay를 설정할 수 있다. Coupling 설정은 nonvolatile일 수 있고 *RST로 지워지지 않는 항목이 있으므로, 프로그램 시작 시 읽고 종료 시 정책에 맞는 state로 복원한다. Gate-first/drain-first 순서는 PA technology와 회로에 따라 달라 예제 숫자를 일반화하지 않는다.
이 Wiki의 고정 hardware profile은 slot 1의 N6752A 한 채널이다. Lab의 gate rail은 slot 2에 별도 compatible module을 설치하거나 외부 bias source를 동기화한 확장 예다. Mainframe에 두 번째 source가 자동으로 있다고 가정하지 말고 SYST:CHAN?, SYST:CHAN:MOD?와 option을 확인한 뒤에만 coupling channel list를 만든다.
Error queue는 FIFO로 끝까지 읽되 bounded한다
SYST:ERR?는 한 번 읽으면 한 record만 반환한다. +0,"No error"까지 읽되 최대 횟수를 정한다. Parse 실패나 queue가 끝나지 않으면 session 실패로 처리하고 cleanup으로 간다. *CLS는 과거 오류를 없앨 수 있으므로 먼저 drain/log할지 정책을 명시한다.
실행 가능한 예제는 N6705C PyVISA 가이드에서 dry-run부터 시작한다.
수식·규격 · 어떻게 검증할까?
통신 성공과 물리 성공을 분리한 불변조건을 세우자
각 transition 뒤 다음 조건을 검사한다.
| Transition | 필요한 증거 |
|---|---|
| Connected | IDN에 N6705C, slot 1에 N6752A, option scope 확인 |
| Configured | Voltage/current/OVP/OCP/slew query-back 일치 |
| Armed | Trigger source와 pending transient state 확인 |
| Energized | Output ON, CV/CC status, measured V/I와 DUT interlock |
| Complete | Measurement record와 error queue 종료 |
| Safe | RF OFF, PSU output OFF, abort, discharge/physical indication |
통신이 끊기면 software가 OUTP OFF를 전달했다고 보장할 수 없다. Hardware remote inhibit, relay/contactor, fuse, bleed와 사람이 볼 수 있는 front-panel state를 독립 방어선으로 둔다.
단원을 닫기 전에
같은 조건으로 설명하고 재현할 수 있나요?
완료 기준
- Command acceptance, operation completion, query-back와 물리 상태를 서로 다른 증거로 취급한다.
- LIST를 load하고 trigger로 시작하는 transient state를 설명한다.
- 실패 경로에서 RF OFF와 PSU OFF를 우선하는 bounded cleanup을 구현한다.
대표 bench
- Source
- Python 3/PyVISA에서 VISA alias로 연결한 N6705C
- DUT
- Gate·drain 또는 enable·VDD 다중 rail PA module
- Analyzer
- PSU readback와 후속 sensor/SA trigger coordination
근거와 더 읽을 자료
- 장비 문서N6700 Modular Power System Programmer's ReferenceKeysight Technologies
- 장비 문서Programming Instruments with Keysight VISAKeysight Technologies