파이썬 또는 MATLAB과 ACE 소프트웨어를 사용하여 데이터 컨버터를 신속히 평가하는 방법
글: 루이스 벨트란 길(Lluis Beltran Gil), 제품 AE(Product Applications Engineer), 아나로그디바이스(Analog Devices, Inc.)
개요
평가 보드(EVB)와 동반 소프트웨어를 플러그 앤 플레이 기능을 이용하여 함께 사용하면 아나로그디바이스(Analog Devices) 제품의 성능을 쉽게 평가할 수 있다. 그래픽 사용자 인터페이스(GUI)는 디바이스를 수동으로 구성하고 통신할 수 있는 직관적인 수단을 제공한다. 그러나 복잡한 제품의 경우, 사용 가능한 모든 기능을 평가하면서 모든 제품의 다양한 부가 기능을 점검하는 작업은 반복 작업들을 자동화하지 않는다면 시간이 많이 걸릴 수 있다.
이 글에서는 복잡한 소프트웨어 컨트롤러 코드를 개발하지 않고도 매크로를 기록하는 방법과 파이썬(Python
®) 및 매트랩(MATLAB
®) 환경에서 매크로를 사용하여 특정 평가 작업을 자동화하는 방법을 설명한다. 이 글에 사용된
AD7380 및
AD7606C-16 예제는 다양한 구성을 점검하고 변환을 실행한 다음 결과를 내보내는 동작과 같은 모든 사용자 상호작용을 자동화한다. 이러한 예제들은 오버샘플링 디지털 필터가 아날로그-디지털 컨버터(ADC)에 제공하는 성능 이점의 평가를 자동화하는 데 사용된다. 이 글에서는 AD7380 및 AD7606C-16을 다루었지만, 이 글의 정보는 다른 ADI 제품과 애플리케이션에도 적용할 수 있다.
머리말
ADI는 모든 신제품들과 신제품의 달성 가능한 성능을 쉽게 평가할 수 있는 수단을 제공한다. 첫째, ADI의 평가 보드는 ADC와 같은 주 장치와 함께 전압 레퍼런스, 드라이버 증폭기, 클록 소스, 전원 솔루션과 같은 필수적인 제품을 탑재한 인쇄회로기판(PCB)으로 구성된다. 둘째, 평가 보드는 솔루션이 달성할 수 있는 실제 성능을 보여주는 소프트웨어와 함께 제공된다. 소프트웨어는 이 플랫폼을 사용하여 얻을 수 있는 실제 데이터를 보여준다. 지난 몇 년 간 ACE 소프트웨어1는 이러한 목적을 위해 사용된 플랫폼이다.
ACE 플랫폼 내에서 각 제품은 플러그인을 내장하므로 깔끔하고 쉽게 이동 가능한 그래픽 사용자 인터페이스(GUI)를 통해 디바이스 레지스터 맵에 액세스하여 손쉽게 디바이스를 구성할 수 있다.
ADC 예제에서 ACE는 일반적으로 파형 또는 히스토그램의 형태로 원자료를 표시하고 FFT를 통해 신호대잡음비(SNR) 또는 총고조파 왜곡(THD)와 같은 AC 성능 지표를 계산한다. 이 글은 소프트웨어를 개발할 필요 없이 이러한 모든 절차를 자동화하는 방법을 보여준다.
그림 1. ACE와 파이썬/매트랩의 통신을 포함하여 평가 보드의 하드웨어 및 소프트웨어 상호작용을 보여주는 블록 다이어그램
ACE 플러그인
그림 2는 디바이스를 쉽게 구성할 수 있도록 여러 버튼이 제공되는 AD7380 플러그인 칩 화면을 보여준다.
- REF는 내부 또는 외부 레퍼런스를 선택할 수 있다.
- OSC는 오버샘플링을 활성화하고 오버샘플링 비를 설정할 수 있다.
그림 2. AD7380의 ACE 플러그인 칩 화면
그림 3은 AD7606C-16 플러그인 칩 화면을 보여준다. 여기에서 더 진한 파란색으로 표시된 여러 버튼을 사용하여 다음을 수행할 수 있다.
- PGA 기호를 클릭하여 채널당 아날로그 입력 범위를 선택한다.
- 레퍼런스 소스로 내부 또는 외부를 선택한다.
- 오버샘플링 비를 선택한다.
- 오프셋/이득/위상 교정 기능을 구성한다.
- 진단을 구성한다.
그림 3. AD7606C-16의 ACE 플러그인 칩 화면
앞선 예시에서는 AD7380 및 AD7606C-16을 사용했지만, 이 글의 범위는 이 제품뿐만 아니라 ACE의 작업과 반복 작업 자동화와 관련된 모든 것을 포함한다. 모든 ACE 플러그인은 자체 GUI 레이아웃을 갖지만 제품의 복잡성이 증가하고 진단이나 교정 등 많은 기능이 추가됨에 따라 이러한 모든 기능을 수동으로 테스트하는 작업은 더 복잡하고 지루해진다. ACE 원격 제어는 일례로 오버샘플링 비를 검토하고 잡음 성능이 얼마나 향상되는지 측정하기 위해 파라미터를 설정하거나 점검하는 기능을 제공한다.
ACE 원격 제어 설정
ACE를 원격 제어하는 코드를 생성하기 전에 다음 단계를 수행하여 ACE와의 통신을 설정해야 한다.
- ACE를 열고 Settings으로 이동한다.
- IPC Server 탭으로 이동하여 활성화되어 있는지 확인한다.
- 포트가 할당되었는지 확인한다(2357 권장).
그림 4. ACE와 통신 설정하기
매크로 기록 및 스크립트 생성
ACE에는 구성과 디바이스 상호작용 단계를 매크로 파일에 넣어 기록하는
Macro Tools 메뉴가 있다. 매크로가 생성되면 이를 사용하여 한 번에 모든 단계를 자동으로 반복할 수 있다. 다음은 매크로 생성 방법을 설명한 것이다.
- ACE를 열고 Tools >> Macro Tools로 이동한다.
- 그림 5의 우측 상단 파란색 영역 안에 있는 매크로 기록(record macro) 명령 버튼을 누른다.
- 디바이스 상호작용(파라미터 변경, 메모리 맵의 레지스터에 값 삽입, 데이터 캡처 등)을 수행하기 시작한다. GUI를 이동하고 상호작용함에 따라 Command 창이 채워진다.
- 입력할 모든 동작/설정을 기록했다면, 매크로 기록 중지 명령 버튼을 누른다. 버튼은 위의 2번과 같은 위치에 있다. 그러면 Command 창이 자동으로 나타난다.
예를 들어 매크로를 기록하는 동안 사용자는 간단히 그림 2에 설명된 버튼을 사용하여 오버샘플링 비와 분해능 모드를 구성한다. Command 창은 그림 5와 같이 보인다.
그림 5. Command 창과 매크로 도구
이 창에서 선택 가능한 언어 스크립트로 전체 프로그램을 내보내기 전에 기록된 모든 단계를 검토하고 원하지 않는 자동 생성 단계는 생략하거나 중단할 수 있다(그림 5에서 빨간색으로 표시).
매크로 파일이 기록되었다면, 매크로 파일을 저장하고 다시 재생하여 이전에 수행한 단계를 반복할 수 있다. ACE에는 지원되는 언어에서 선택한 언어로 기록된 동작을 수행하는 스크립트를 생성하는 기능이 내장되어 있다. 앞의 목록에 이어 다음 단계를 수행한다.
- 그림 5에서 파란색 표시 영역의 오른쪽에 있는 Generate 아이콘을 클릭하여 스크립트 생성기 창을 연다.
- C#, MATLAB 또는 Python 중에서 원하는 언어를 선택하고 Export를 누른다.
그런 다음 이 코드를 실행하기 위해 IDE로 가져올 수 있다. 이 코드를 기본으로 사용하여 계측 제어와 같은 추가적인 기능을 추가하여 측정을 위한 자동화된 테스트 벤치를 사용할 수 있다.2 Visual Studio Code 또는 MATLAB은 다음 섹션에 나오는 예제에 사용되며, 예제들은 별도의 추가 장비 없이 제품 평가 보드를 사용하여 잡음 분석을 수행한다. 다음 섹션들에서 나오는 수집된 데이터의 조작, 저장 또는 그래프 작성을 위한 코드 예제를 보려면
wiki.analog.com을 방문하여 관심있는 평가 보드를 검색하면 된다.
그림 6. 파이썬 언어를 사용하는 ACE 생성 코드 편집기
파이썬을 이용한 평가 작업 자동화
이전 섹션에서 생성한 .py 파일을 사용하면 앞에서 기록한 일련의 동작을 쉽게 실행하고 반복할 수 있다. 뿐만 아니라 이러한 스크립트를 편집하여 특정 작업을 자동화하면 더 많은 이점을 얻을 수 있다. AD7380 ACE 플러그인에서 오버샘플링 비와 분해능을 설정했던 앞의 예제를 따라 입력 파라미터를 허용하도록 생성된 매크로를 편집한다(그림 7 참조). 기본값으로 이러한 매크로는 execute_macro() 이름으로 지정되지만, 더 상세한 이름으로 수정할 수 있다.
그림 7. 입력 파라미터를 사용하기 위해 파이썬 기능을 편집한다.
이제 이 매크로를 반복을 위해 내부에서 호출하여 오버샘플링 비 값을 검토하면서 오버샘플링 비가 증가함에 따라 잡음 성능이 어떻게 향상되는지 볼 수 있으며, 분해능을 추가로 2비트 더 사용하는 이점도 확인할 수 있다.
그림 8. 이 명령은 오버샘플링 비를 검토하고 추가로 분해능 2비트를 켜고 끄는 루프를 위한 것이다.
이에 따라 파이썬 예제 코드는 내보낸 데이터 파일에 액세스하여 ACE 플러그인에서 측정한 SNR 데이터를 읽고, 이를 직렬 모니터를 통해 보고한다. 표 1에서 보듯이 오버샘플링은 잡음 성능을 향상시키지만3, 특정 지점에서 AD7380을 16비트 대신 18비트 워드로 표시하는 진정한 이점을 얻으려면 2비트 분해능이 추가로 필요하다.
표 1. AD7380의 SNR vs. 오버샘플링 비
OSR |
동적 범위
(일반 분해능) |
동적 범위
(분해능 증가, 18비트) |
1 |
90.8dB |
90.8dB |
2 |
92.6dB |
93.6dB |
4 |
94.3dB |
96.5dB |
8 |
95.8dB |
99.2dB |
16 |
96.3dB |
100.4dB |
32 |
96.5dB |
100.5dB |
매트랩을 이용한 평가 작업 자동화
파이썬 예제와 마찬가지로 자동 생성된 코드를 매트랩용으로도 내보낼 수 있다. 이 경우 .m 파일이 생성된다. 여기서 매크로는 함수로 정의되지만, 매크로는 또한 입력 파라미터를 허용하도록 편집할 수 있다. 다음의 매트랩 예제는 대신 AD7606C-16 보드를 사용한다.
여기에서도 AD7606C-16의 오버샘플링의 이점은 ACE 자동화를 통해 쉽게 평가할 수 있다. 그림 9는 매트랩 함수를 보여주며 처리량, 샘플 수, 인터페이스 유형(직렬 또는 병렬), 레퍼런스 소스(내부 또는 외부), 오버샘플링 비, 디지털 라인 수 또는 아날로그 입력 범위와 같은 파라미터를 사용하도록 편집되었다.
그림 9. 입력 파라미터를 사용하기 위해 매트랩 함수를 편집한다.
이 특정 함수는 다양한 구성에 대한 데이터 캡처를 빠르게 실행하기 위해 주 코드 내에서 사용하여 다음과 같은 여러 AD7606C-16 비교를 쉽게 수행할 수 있다.
- 잡음 성능 vs. 오버샘플링 비
- 성능 vs. 처리량
- 성능 vs. 아날로그 입력 범위
- 내부 vs. 외부 레퍼런스
- 직렬 인터페이스 vs. 병렬 인터페이스
그 밖에도 많은 평가를 할 수 있다. 이는 AD7606C-16의 예일 뿐이며, 평가하는 제품에 따라 다양한 성능 평가가 필요할 수 있다.
AD7606C-16의 자동화는
wiki.analog.com4에서 볼 수 있다(소스 코드 제공). 여기에서는 매크로를 코딩하는 방법을 보여주고 데이터를 후처리하는 예제도 제공한다. OversamplingSweep.m 예제는 오버샘플링 비를 검토하여 각 값에 대한 코드의 히스토그램을 그린다. 그림 10에서 보듯이 오버샘플링 비가 클수록 코드의 히스토그램이 좁아진다. 표 2는 또한 오버샘플링에 따라 코드의 피크 투 피크 분포가 어떻게 감소하는지 보여준다.
표 2. AD7606C-16의 코드 분포 vs. 오버샘플링 비
OSR |
피크-대-피크 (LSB) |
1 |
16 |
2 |
13 |
4 |
12 |
8 |
10 |
16 |
7 |
32 |
6 |
64 |
4 |
128 |
4 |
256 |
2 |
최신 평가 보드의 소프트웨어 프레임워크인 새로운 ACE 플랫폼은 매크로 기록 기능이 내장돼 ADI 제품의 평가 작업을 빠르게 수행하고자 하는 모든 하드웨어 설계자에게 유용한 도구를 제공한다. 이러한 매크로는 파이썬 또는 매트랩과 같이 업계에 잘 알려진 프로그래밍 언어를 사용하여 테스트를 자동화할 수 있다. 이러한 작업을 자동화하면 제품 평가와 선택 단계가 빨라져 제품 출시를 앞당기고 하드웨어 설계 주기를 줄일 수 있다. 이 주제 및 기타 주제에 대한 추가 지원은 EngineerZone™에서 확인할 수 있으며, 더 많은 원격 제어 예제는
.” Analog Devices, Inc.
.” Analog Devices, Inc., February 2020.
3 Jonathan Colao. “
, Vo. 54, No. 2, April 2020.
루이스 벨트란 길(Lluis Beltran Gil)은 발렌시아 공과대학(UPV)에서 2009년에 전자공학 학사학위를, 2012년에 산업공학 학사학위를 받았다. 졸업 후 2013년에 리머릭에 있는 아나로그디바이스에 정밀 컨버터 그룹 애플리케이션 엔지니어로 입사했다. 현재 계측 사업부 내 SAR ADC 애플리케이션 팀에서 근무하고 있다. 스페인 발렌시아에 거주하고 있으며, 발렌시아 대학(UV)에서 전자공학 석사학위를 받았다.
제품스펙
바로가기>