르크로이 WaveRunner Xi 시리즈를 이용한 디버깅 및 I2C 디코딩
상태바
르크로이 WaveRunner Xi 시리즈를 이용한 디버깅 및 I2C 디코딩
  • 조진현
  • 승인 2006.12.04 00:00
  • 댓글 0
이 기사를 공유합니다

Test & Measuring instruments
WaveScan 기능은 파형의 디버깅과 에러 검출에 아주 유용하게 사용할 수 있는 검색기능과 검색된 파형을 자세히 관측하거나 통계적으로 측정을 수행할 수 있다. 아울러, 요즘 어디에서나 볼 수 있는 임베디드 시스템에서 필요한 I2C, SPI 버스에 대한 트리거와 디코드를 수행할 수 있는 옵션을 동시에 발표하였다. 이 글에서는 새롭게 추가된 WaveScan과 I2C/SPI의 기능을 이용하여 디버깅하는 과정과 예를 들어 다루어 보고자 한다.WaveScan을 이용한 빠른 디버깅연속적이고 정상적인 파형에 비하여, 에러를 가진 파형은 그 비율이 높지 않아 쉽게 그 파형을 관측하기란 쉽지 않은 작업이다. 일반적으로 에러 파형이 존재하는지의 여부를 판단하기 위해 파라메터를 통계 처리하여 최소값, 최대값을 비교하여 에러가 존재하는지의 여부를 판단하거나, 르크로이의 툴인 파라메터 트랜드, 트랙을 이용하기도 하였다.또는 트리거 기능을 이용하여 펄스폭, 진폭, 주기 등의 정보를 이용하여 트리거를 수행하여, 원하는 이벤트에서 트리거를 수행하여 신호를 관측하는 방법이 있다. 현재 공급되고 있는 오실로스코프의 트리거 기능은 매우 다양하지만 모든 관점에서의 비정상 신호를 모두 포착해내기는 쉽지 않은 것이 사실이다. 예를 들어 주파수 또는 Non-Monotonic 에지에서 트리거를 수행하고자 할 경우, 현재의 오실로스코프의 트리거를 이용하여 그와 같은 파형을 포착한다는 것은 쉬운 일이 아니다.WaveScan은 포착된 파형에서 특정 이벤트를 검색하거나 빠르게 찾아 낼 수 있는 기능을 제공하며, 약 20여 가지의 검색 모드를 지원하고 있다. 그림 1에서는 WaveScan에서 사용할 수 있는 Non-Monotonic 에지를 포착하고 있는 예를 보이고 있다.많은 엔지니어들이 디버깅을 수행할 때, 예를 들어 펄스폭과 같은 파형의 특징에 문제가 있다는 심증을 가지고 있는데 그것을 파형으로 관측할 수 없을 경우, 이 WaveScan이 매우 유용하게 사용될 수 있다.그림 2에서는 약 화면에 1600개 이상의 사이클을 포착하여 Width를 측정하고 있다. 통계 처리를 통하여 입력채널 3에 대한 최대, 최소 및 평균값을 확인하였다.Width 파라메터 값에서 관측자는 최소값이 평균에 비하여 너무 작다는 것을 간파할 수 있었으나, 그 위치를 정확하게 찾아 야 할 경우 비용을 투자하여 위치를 확인할 수 있는 툴을 구매하거나, 트리거링을 사용할 수 있겠지만 WaveScan은 펄스폭을 비롯한 시간에 관련된 모든 파라메터를 이용한 검색 모드를 지원하고 있다. 또한 검색을 유연하고 정확하게 수행할 수 있도록 다양한 필터 기능을 이용할 수 있다. 그림 3의 예에서는 Rarest Event를 사용하고 있다. 특정 값과 비교하여 큰 경우, 작은 경우, 어떤 범위 내에 있는 경우를 비롯한 전체 이벤트에서 상대적으로 적게 발생할 사건들만을 선택하여 검색할 수 있는 유연한 기능을 제공하고 있다.WaveScan은 포착된 신호에서 비정상 이벤트를 포착하고, 측정된 값들을 테이블을 통하여 보여주며, 이를 이용하여 사용자가 확대를 이용하거나, 추가적인 분석을 수행할 수 있을 것이다.WaveScan은 측정에서는 르크로이의 장점을 그대로 이용하고 있다. 그림 4에서는 화면 왼쪽 위 테이블에 많은 양의 펄스폭이 측정되었다는 것을 알 수 있으며, 이 값은 싱글 트리거를 이용하여 단 한 스웹의 신호에서 측정한 결과이다. 이 결과들을 테이블을 통하여 숫자로 확인하거나 또는 스캔히스토그램(ScanHistogram) 기능을 통하여 통계적인 관점에서 측정 결과에 대한 분포를 확인할 수 있으며, 가운데 그리드의 삼각형이 있는 위치에 다른 데이터에 비하여 작은 점으로 동떨어진 데이터가 존재하고 있음을 알 수 있으며, 그 막대를 클릭하는 순간 테이블에서 해당하는 값을 바로 찾아 갈 수 있으며, 파형 또는 확대되어 쉽게 관측할 수 있다.WaveScan은 하드웨어 트리거링 그 이상을 제공한다. 포착된 데이터에서 비정상 이벤트 또는 원하지 않거나, 관심있는 이벤트를 검색/필터하는 기능 이외에, 오랜 시간동안 신호를 포착하면서 이벤트를 검색할 수 있으며, 이벤트가 발생하는 조건에서 사용자가 지정한 동작을 수행한다. 파형을 자동으로 저장하거나, 소리를 내거나, 화면의 이미지를 저장하는 등의 사용자가 추후에 정밀한 분석에 사용할 수 있도록 많은 수단을 제공하고 있다.사용자가 원하는 데이터를 수집할 수 있는 다양한 방법을 제공하므로, 빠른 디버깅이 가능해진다.I2C는 IIC(Inter IC)라고도 하며, CPU와 칩들 간의 제어, 통신을 위한 직렬 버스로 임베디드 시스템이 계속 발전하면서 더욱 많이 사용되고 있으며, 주로 마이프로 프로세어 제어, LCD 드라이버, EEPROM, 전화 비디오 등 모듈 제어에 다양하게 사용되고 있다. 르크로이의 I2C 트리거/디코드 패키지는 아스키 타입의 디코딩 정보는 물론, 매우 다양한 트리거 기능을 보유하고 있다. 그림 5에서는 I2C 버스 정보를 해석하기 위한 디코드 셋업 화면과 HEX 디코딩 예를 보이고 있다.클록과 데이터 소스를 지정하여 디코딩을 수행하며, 버스를 분석하는 사용자가 알아보기 쉽도록 파형 위에서 바로 디코드 정보를 표시하고 있다. 디코딩 결과는 데이터를 Binary, Hex, ASCII를 선택적으로 확인하거나, 또는 동시에 하나의 버스에 대하여 두 가지의 디코드 결과를 표시할 수 있다.따라서, I2C 버스에서 마스터와 슬레이브 칩사이에서 오고가는 정보를 편리한 방법으로 관측할 수 있도록 배려하고 있다.아스키 데이터로 디코딩되면, I2C에 입문하는 초보자라 할지라도 쉽게 I2C 버스를 이해할 수 있을 것이다.한 스윕에 많은 양의 프레임을 포착하는 경우, 전체 프레임에 대한 내용을 한 눈에 관측해야 할 필요성이 있다. 이러한 요구에 맞도록 테이블을 통한 관측 또한 제공하고 있다.그림 6에서는 약 2초 동안에 발생한 5개의 프레임을 포착한 화면이다. 화면의 아래에서 보이는 테이블을 클릭하여 해당 프레임을 확대하여 데이터를 확인하고 있다.이 테이블은 엑셀타입의 파일로 바로 저장하여 PC의 응용프로그램에서 그 내용을 바로 확인하거나 데이터의 검증용으로 쉽게 사용할 수 있다. 만약, 매우 많은 프레임 안에서 사용자가 원하는 어드레스의 Read/Write 또는 데이터 내용 중에 존재하는 데이터를 찾고자하는 경우, 그림 7은 데이터를 검색하기 위한 찾기 메뉴를 통하여 원하는 어드레스, 패킷, 또는 데이터를 이용하여 원하는 데이터를 빠르게 찾아낼 수 있다.I2C 트리거 기능르크로이의 I2C 트리거 기능은 매우 강력한 기능을 제공한다. 다른 오실로스코프에서 제공하는 I2C 시리얼 데이터 트리거는 데이터를 지정하여 입력한 데이터 값과 일치하는 경우에만 트리거를 수행할 수 있다.AD 컨버터와 같은 I2C 기반 센서를 사용하여 설계할 때 데이터가 안전한 동작범위를 벗어날 경우 또는 온도 센서를 제어할 때 특정 범위를 넘어설 경우에 오실로스코프를 이용하여 트리거를 수행하여 해당 신호를 관측해야 한다.이러한 트리거를 수행하기 위해서는 측정기의 트리거 기능에 데이터의 조건을 설정할 수 있어야 한다. 르크로이의 I2C 트리거 기능에는 Data의 조건을 다양한 방법으로 설정할 수 있어, 매우 유연하게 데이터의 조건을 선택하여 신호를 관측할 수 있는 장점을 제공한다. 이러한 기능을 이용하여 칩과 칩 사이의 동작이 적절하게 동작하고 있는지의 여부를 판단할 수 있다.특히, EEROM 프로그램을 검증해야 하는 경우, 다루는 데이터의 길이가 길어질 수 있다. 르크로이의 I2C 트리거는 EEPROM 전용 트리거 메뉴를 갖추고 있어 최대 2048 바이트의 메시지 내의 데이터 바이트에 트리거를 수행할 수 있다.그림 9에서는 EEROM 트리거의 예를 보이고 있다. EEPROM 트리거는 그 동작이 Address+Data 트리거와 유사하다. 먼저 원하는 주소와 방향(Read/Write)을 지정하고, 찾고자하는 값을 입력했다.Address+Data에서는 최대 12바이트 이내에서 트리거를 수행하도록 되어있는 반면, EEPROM 트리거에서는 Start Byte(=byte offset)을 지정할 수 있다는 점이 다른 점이다.지정할 수 있는 스타트 바이트는 최대 2048 바이트로 매우 길기 때문에 긴 데이터를 다루는 경우에도 쉽게 정의 하여 트리거를 수행할 수 있다는 장점이 있다.현재 날로 관심을 받고 있는 임베디드 애플리케이션에서 클록과 데이터의 관측, 지터, 다양한 파라메터를 이용한 관측은 기본적인 측정 항목이 되었다. 아울러 다양한 에러들이 포함될 수 있으며, 이러한 에러들을 얼마나 쉽게 포착하고 또 검색할 수 있느냐는 디버깅 하는 시간을 단축시켜야 하는 엔지니어에게는 필수사항이다.WaveScan에서 제공하는 검색기능(Run, Non Monotonic, Edge, Measurement)과 측정 파라메터의 필터링 기능은 사용하기도 쉬우면서, 디버깅에 필요한 정보를 제공하고 있다는 것을 알 수 있다.I2C 트리거/디코드 기능은 처음 접하는 사람도 쉽게 이해할 수 있는 디코드 정보를 제공하고 다양한 트리거 방법과 데이터 조건을 유연하게 설정할 수 있으며, 프레임의 길이를 이용한 트리거, 2048바이트까지 설정할 수 있는 바이트 옵셋 기능은 시리얼 버스를 다루어야 하는 임베디드 애플리케이션을 다루는 엔지니어들에게는 아주 유용한 트리거 기능이라 할 수 있다.이 글에서 사용한 오실로스코프 모델은 르크로이의 WaveRunner 104Xi에 I2C 트리거/디코드 옵션이 탑재된 장비를 사용했다.