RS232를 통해 HP33120A에서 SCPI를 사용하는 방법은 무엇입니까?


9

구형 Hewlet Packard 33120A 함수 발생기 ( Agilent 33120A 와 동일한 유형 이어야 함 )가 있으며 MCU (ATMega)로 제어하고 싶습니다. 발전기에는 RS232가 있으며 SCPI 명령을 사용합니다.

RX 및 TX 라인을 사용하여 MAX232를 사용하여 간단한 RS232 to TTL 변환기를 만들었습니다. 에 따르면 사용 설명서 (4 장, 절 DTR / DSR 핸드 쉐이크 프로토콜) 나는 연결되어 있지 않은 논리 TRUE (음의 전압)와 DTR에 DSR을 성공 시켰습니다. 이 구성은 하드웨어 핸드 셰이크를 비활성화해야합니다.

이제 변환기를 MCU 또는 컴퓨터에 연결할 수 있습니다. 첫 번째 실험에서는 컴퓨터와이 Python 스크립트를 사용했습니다.

import serial, sys, time

if __name__ == '__main__':
        if len(sys.argv) < 2:
                print 'Usage: %s <serial_port>' % sys.argv[0]
                sys.exit(1)

        s = serial.Serial(port=sys.argv[1], baudrate=2400, bytesize=8, parity='N', stopbits=2, timeout=None, xonxoff=0, rtscts=0)

        time.sleep(0.5)
        s.write('\n*CLS\n')
        time.sleep(0.5)
        s.write('SYST:REM\n')
        time.sleep(0.5)
        s.write('APPL:SIN 30E+3, 0.1\n')


        s.close()

이것은 아무런 문제없이 작동합니다. 발전기는 예상대로 출력을 30kHz로 설정했습니다. 문제는 생성기에서 일부 응답을 읽으려고 할 때입니다. 예를 들어 장치 이름을 반환해야합니다.

        s.write('*IDN?\n')
        print s.realine()

응답이 생성기의 출력 버퍼에 저장되어 있지만 실제로 데이터가 전송되지 않는다고 확신합니다.

버퍼에서 데이터 전송을 트리거하는 명령이 있습니까? 아니면 하드웨어 핸드 셰이크를 활성화해야합니까?

이 발전기가있는 사람이 있습니까? RS232 및 SCPI와 함께 사용합니까?


당신이 내 업 투표있어 그래서 난이 질문에 대답 할 수없는하지만 난 대답에 관심이 있어요
일명 앤디

전송 중이 아님을 어떻게 알 수 있습니까? 읽을 코드가 없습니다. 터미널 프로그램이나 직렬 포트 모니터를 사용해 보셨습니까? 아니면 오실로스코프?
Jeanne Pindar

나는이 Saleae 로직 분석기 conected입니다에 RX / TX 핀과 파이썬 스크립트에서,이 s.readline()기능은 (내가 당신을 감사합니다, 내 질문을 편집).
vasco


컴퓨터에서 직렬 버퍼링을 끄고 직렬 버퍼 크기를 0으로 설정하십시오. 리드 라인이 무기한 차단됩니까? (그것은 당신이 묘사 한 것이어야합니다)
david

답변:


3

RS-232를 통해 SCPI를 디버깅하는 가장 쉬운 방법은 기존 직렬 인터페이스와 함께 터미널 프로그램을 사용하는 것입니다. 명령을 입력하고 무엇이 돌아 오는지 확인하십시오. 터미널을 사용하면 사이에 알려지지 않은 직렬 통신 라이브러리에 의존하지 않고 보드 속도, 핸드 쉐이킹, 에코 및 종료 문자로 상당히 쉽게 fiddlle을 입력 할 수 있습니다 (입력 한 내용, 보내는 내용, 표시되는 내용).

* IDN? 특별한 트리거 또는 응답 프롬프트가 필요하지 않습니다. 명령이 지원되는 경우 (매뉴얼에 따르면) 종료 문자가 정확하고 (이전의 Python 작업에 성공한 것으로 보임) 핸드 셰이 킹이 올바른 경우 계측기는 즉시 식별 문자열

계측기가 기대하고 반환하는 것을 정확히 파악하면 Python 스크립트를 쉽게 만들 수 있습니다.


1
나에게 유용한 정보 mister guruman +1. OP에 무슨 일이 있었나요?
Andy 일명

1

나중에하지만 ...

DSR을 양의 전압에 연결하십시오. 33120A는 음의 전압에 묶는 대신에 응답하는 경우에만 응답합니다.

FTDI USB-RS232 변환기와 함께 RealTerm을 사용하고 CTS (PC)를 DSR (33120a)에 연결하지만 통신 중에 RealTerm을 통해 CTS의 전압을 관리 (및 유지)합니다 (프로그램에서 수행 할 수있는 옵션이 있습니다).

문안 인사.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.