본문으로 건너뛰기
고급약 40분

오실로스코프와 로직 분석기로 증거 만들기 — 트리거·샘플링·프로빙·간헐 재부팅 포착

임베디드 결함의 증거는 파형이다. 아날로그 현상(전압 레벨·잡음·상승 시간·전원 레일 강하)을 보는 오실로스코프와 여러 디지털 채널을 프로토콜로 해독하는 로직 분석기를 언제 쓰는지 가르고, 에지·펄스 폭·런트·프로토콜 트리거와 단발 트리거로 간헐적 현상을 잡는 법, 신호 주파수의 4~10배 이상이라는 샘플링 규칙, 프로브 접지 함정, 간헐 재부팅 포착 절차, 파형을 결함 보고서에 첨부하는 작성 예를 다룬다.

  • #임베디드
  • #오실로스코프
  • #로직분석기
  • #트리거
  • #결함보고
  • #계측

개념

계측이 곧 증거다

웹 결함 보고서에는 스크린숏과 로그가 붙는다. 임베디드 결함 보고서에 붙는 것은 파형 이다. "가끔 재부팅된다"는 보고는 개발자에게 할 일을 주지 못한다. "전원 레일이 2.9V까지 떨어진 3µs 뒤 리셋 핀이 Low가 됐다"는 파형은 원인과 다음 조치를 동시에 준다. 모듈 6 레슨 2에서 배운 좋은 결함 보고서의 조건 — 재현 절차, 기대와 실제, 증거 — 이 여기서는 계측 장비로 채워진다.

오실로스코프와 로직 분석기 — 무엇을 보나

항목오실로스코프로직 분석기
보는 것전압의 실제 모양(아날로그)0과 1(디지털 판정 결과)
채널 수보통 2~48~32 이상
강점전압 레벨, 잡음, 상승·하강 시간, 링잉, 전원 강하여러 신호의 시간 관계, 긴 기록, 프로토콜 디코딩
약점채널이 적고 기록 길이가 짧은 편전압이 "애매한" 상태를 보지 못함
대표 질문"신호가 제대로 된 High인가?""어떤 바이트가 언제 오갔나?"

규칙은 간단하다. 신호의 품질이 의심되면 스코프, 신호의 내용과 순서가 의심되면 로직 분석기. 레슨 2의 I2C 풀업 문제(상승 시간이 느려 High가 제때 올라오지 않음)는 스코프로만 보인다. 로직 분석기는 문턱 전압을 넘었는지만 판정하므로, 느린 에지는 약간 늦은 1로 보일 뿐이다. 반대로 SPI 모드 불일치(값이 한 비트 밀림)는 로직 분석기 디코딩으로 한눈에 보인다.

요즘 스코프는 디지털 채널과 프로토콜 디코딩을 함께 가진 혼합 신호 오실로스코프(MSO)가 많다. 전원 레일(아날로그)과 SPI 트랜잭션(디지털)을 같은 시간축에 놓을 수 있어, 간헐적 결함 분석에서 특히 강력하다.

샘플링 규칙

디지털 장비는 신호를 일정 간격으로 찍는다. 너무 드물게 찍으면 짧은 펄스를 놓치거나 모양이 왜곡된다.

  • 로직 분석기 — 신호 주파수의 최소 4배, 가능하면 10배 이상으로 샘플링한다. 1MHz SPI 클럭이면 최소 4MS/s, 여유 있게 10MS/s 이상. 4배 미만이면 에지 위치가 한 샘플만큼 흔들려 디코딩이 깨지고 짧은 글리치를 놓친다
  • 오실로스코프 — 파형 모양을 보려면 관심 주파수의 5~10배 이상의 샘플링과, 신호 상승 시간을 따라갈 수 있는 대역폭 이 필요하다. 흔한 경험칙은 대역폭이 신호 최고 주파수의 약 5배
  • 기록 길이 — 샘플링 속도 × 기록 시간 = 메모리. 10MS/s로 10초를 기록하면 1억 샘플이다. 긴 간헐 현상은 샘플링 속도와 기록 시간의 타협이 필요하고, 그래서 트리거가 중요 하다
100kHz I2C를 로직 분석기로 볼 때
  최소 400kS/s(4배), 권장 1MS/s 이상(10배)
  글리치 필터(짧은 펄스 무시)를 켜 두었다면 잡음 결함을 숨길 수 있음 → 증거 캡처 때는 설정을 기록

트리거 — 언제 기록을 멈출 것인가

장비는 계속 찍으며 버퍼를 돌려 쓰다가, 트리거 조건이 만족되면 그 앞뒤를 저장 한다. 간헐적 결함은 트리거로 잡는다.

트리거조건쓰는 곳
에지신호가 문턱을 상승·하강으로 지날 때리셋 핀 Low, 인터럽트 선
펄스 폭지정 폭보다 짧거나 긴 펄스규격보다 짧은 글리치, 늦게 풀리는 CS
런트(runt)한 문턱은 넘었지만 다른 문턱은 못 넘은 펄스반쯤만 올라온 신호, 버스 경합
레벨·윈도전압이 범위를 벗어날 때전원 레일이 3.0V 아래로 떨어질 때
프로토콜특정 주소·ID·데이터 값I2C NACK, CAN 오류 프레임, UART 특정 바이트
순차(시퀀스)A 뒤 일정 시간 안에 B"SPI 쓰기 명령 뒤 10ms 안에 리셋"

트리거 모드는 두 가지를 구분한다.

  • 자동(auto)·일반(normal) — 계속 다시 트리거되며 화면을 갱신한다. 반복 신호를 볼 때 쓴다
  • 단발(single) — 한 번 트리거되면 멈추고 그 순간을 보존한다. 간헐적 결함은 반드시 단발 로 잡는다. 일반 모드로 두면 결함 순간이 다음 정상 파형에 덮인다

프리트리거 비율도 중요하다. 재부팅 원인은 리셋 이전 에 있으므로, 트리거 지점을 화면 오른쪽 끝 가까이(프리트리거 80~90%) 두어 앞쪽을 많이 남긴다.

프로브 접지 함정

스코프 파형이 이상하면 결함보다 측정이 먼저 의심 받아야 한다.

  • 긴 접지선 — 표준 프로브의 15cm 악어 클립 접지선은 인덕턴스로 빠른 에지에 링잉(출렁임)을 만든다. 실제 신호는 깨끗한데 오버슈트가 있는 것처럼 보인다. 고속 신호는 짧은 스프링 접지를 쓴다
  • 접지 루프와 감전·파손 — 일반 스코프의 접지는 콘센트 접지와 연결되어 있다. 다른 전위의 지점(예: 비절연 전원의 1차 측)에 접지 클립을 물리면 단락이 되어 보드나 장비가 망가진다. 이런 측정에는 차동 프로브나 절연 장비를 쓴다
  • 프로브 감쇠 설정 — 10:1 프로브를 쓰면서 장비를 1:1로 두면 3.3V가 0.33V로 보인다. 측정 전 기준 신호로 보정한다
  • 프로브 부하 — 프로브 자체의 정전용량이 느린 신호선을 더 느리게 만든다. 프로브를 대면 결함이 사라지는 경우가 있다. 이 현상 자체가 타이밍 여유가 없다는 증거다

간헐 재부팅 포착 절차

모듈 개요에서 예로 든 "간헐 재부팅"을 실제로 잡는 절차다.

아래에 브라운아웃 과 워치독 이 나온다. 브라운아웃은 전원이 완전히 끊기지는 않고 잠깐 기준치 아래로 내려앉는 것이고, 워치독은 "일정 시간 안에 살아 있다는 신호를 안 보내면 강제로 재시작시키는" 장치다. 멈춘 기기를 스스로 되살리는 안전장치인데, 왜 발동했는지 가 곧 원인 조사의 출발점이 된다(레슨 6에서 일부러 발동시켜 본다).

증상  : 모터 기동 시 하루 2~3회 재부팅, 벤치에서 재현 안 됨
 
1. 리셋 원인 레지스터 확인
   부팅 시 MCU의 리셋 원인(전원·브라운아웃·워치독·소프트웨어·핀)을 로그로 남기게 한다
   → 원인이 브라운아웃으로 기록됨 → 전원 쪽 가설
 
2. 채널 배치(MSO)
   CH1 아날로그 : MCU 전원 레일(3.3V)
   CH2 아날로그 : 모터 드라이버 전류(전류 프로브)
   D0         : 리셋 핀
   D1         : 모터 PWM 활성 신호
 
3. 트리거
   D0 하강 에지, 단발 모드, 프리트리거 90%
   (대안: CH1 레벨 트리거 3.0V 아래)
 
4. 조건 재현
   실제 모터 부하, 배터리 전원(벤치 전원은 내부 저항이 작아 재현 안 됨),
   저온 환경에서 모터 기동을 반복
 
5. 결과
   모터 기동 순간 돌입 전류 → 3.3V 레일이 2.9V까지 약 40µs 강하
   → 브라운아웃 문턱(2.95V) 통과 → 리셋

4단계의 벤치 전원과 실제 전원의 차이 가 핵심이다. 벤치 전원은 전류를 넉넉히 주기 때문에 강하가 생기지 않는다. 재현되지 않는 결함의 상당수는 시험 환경이 현장과 달라서다.

파형을 결함 보고서에 붙이기

파형 스크린숏 한 장만 붙이면 나중에 아무도 해석하지 못한다. 파형은 설정과 함께 붙인다.

결함 ID    : EMB-2317
제목       : 모터 기동 시 3.3V 레일 강하로 브라운아웃 리셋 발생
환경       : 보드 Rev C, S/N B0412, FW 2.4.1 (빌드 해시 7f3a9c1),
             배터리 12.0V, 주변 온도 −10°C
재현 절차  : 1) 대기 상태에서 모터 기동 명령 2) 5초 뒤 정지 3) 반복
재현율     : 50회 중 7회(−10°C), 50회 중 0회(25°C)
기대 결과  : 모터 기동 중 MCU 전원 레일 3.3V ±5%(3.135V 이상) 유지, 리셋 없음
실제 결과  : 기동 순간 3.3V 레일 최저 2.91V, 약 40µs 강하, 리셋 핀 Low,
             리셋 원인 레지스터 = BOR
증거       :
  - EMB-2317_rail_reset.png   전원 레일·전류·리셋 핀 동시 캡처
  - EMB-2317_rail_reset.csv   원시 데이터(장비 내보내기)
  - 장비 설정 : MSO, CH1 1V/div DC 결합, 10:1 프로브 스프링 접지,
                20µs/div, 50MS/s, 트리거 D0 하강 단발, 프리트리거 90%
분석 메모  : 강하 시점이 모터 PWM 활성 에지와 일치(D1). 25°C에서는 최저 3.05V로
             문턱 위. 저온에서 배터리 내부 저항 증가로 판단

이 보고서에서 파형은 세 가지 일을 한다. 기대 결과(3.135V 이상)와 실제(2.91V)를 숫자로 비교하게 하고, 원인 순서(PWM 에지 → 전류 → 레일 강하 → 리셋)를 시간축으로 증명하며, 설정 기록으로 다른 사람이 같은 측정을 반복 할 수 있게 한다. 원시 데이터(CSV나 장비 고유 형식)는 스크린숏이 보여주지 못하는 부분을 나중에 다시 확대할 수 있게 한다.

실무에서 왜 필요한가

임베디드 결함의 상당수는 "재현 안 됨"으로 닫히거나, 하드웨어팀과 소프트웨어팀 사이를 오가다 방치된다. 파형은 이 논쟁을 끝낸다. 전원 레일이 문턱 아래로 떨어진 파형이 있으면 하드웨어 쪽 조치가 정해지고, 전원은 정상인데 워치독 리셋이 걸린 파형이 있으면 소프트웨어 쪽 조사로 넘어간다. 계측 장비를 다룰 줄 아는 테스터는 결함을 분류하고 담당을 정할 수 있는 증거 를 만든다. 장비를 만질 줄 몰라 개발자에게 측정을 부탁하는 테스터와, 트리거를 걸어 두고 밤새 잡아 오는 테스터의 가치는 크게 다르다.

채용시장에서의 위치

임베디드·하드웨어 인접 검증 공고의 우대사항에 "오실로스코프·로직 분석기 사용 가능"이 자주 들어간다. 면접에서는 "간헐적 재부팅을 어떻게 추적하겠나", "스코프와 로직 분석기 중 무엇을 쓰겠나", "트리거를 어떻게 걸겠나"처럼 상황 질문이 나온다. 여기서 리셋 원인 확인 → 채널 배치 → 트리거 → 현장 조건 재현 순서로 답할 수 있으면 강하다. 저가 USB 로직 분석기와 오픈소스 소프트웨어로도 연습할 수 있어, 장비 경험을 스스로 만들기 쉬운 영역이기도 하다.

실습 과제

과제 1 — 장비 고르기 (10분)

다음 다섯 증상에 대해 스코프·로직 분석기·MSO 중 무엇을 쓰고 무엇에 트리거할지 한 줄씩 적는다. (a) I2C 센서가 400kHz에서만 가끔 NACK (b) UART 로그에 가끔 깨진 문자 (c) SPI 플래시 쓰기 뒤 가끔 읽기 값이 다름 (d) 버튼을 누르면 가끔 두 번 입력됨 (e) 무선 송신 시작 때 가끔 재부팅.

과제 2 — 샘플링 설정 계산 (10분)

4MHz SPI와 115200bps UART를 같은 로직 분석기로 30초 기록하려 한다. 필요한 최소·권장 샘플링 속도와 그때의 총 샘플 수를 계산하고, 장비 메모리가 2억 샘플이라면 무엇을 타협할지 적는다.

과제 3 — 결함 보고서 완성 (20분)

"CAN 통신 중 가끔 버스 오프가 난다"는 현장 보고를 가정한다. 본문 예시 형식으로 결함 보고서를 쓰되, 채널 배치·트리거 조건·장비 설정·기대 결과(숫자)·첨부 파일 목록을 빠짐없이 채운다. 측정값은 그럴듯하게 가정해도 된다.

자가 체크리스트

  • 오실로스코프와 로직 분석기가 각각 무엇을 보고 무엇을 못 보는지 설명할 수 있다
  • 샘플링 속도를 신호 주파수의 4~10배로 잡는 이유와 기록 길이의 관계를 계산할 수 있다
  • 에지·펄스 폭·런트·레벨·프로토콜 트리거를 증상에 맞게 고를 수 있다
  • 간헐적 결함에 단발 트리거와 높은 프리트리거 비율을 쓰는 이유를 말할 수 있다
  • 접지선 길이·접지 루프·감쇠 설정·프로브 부하의 함정을 설명할 수 있다
  • 파형을 장비 설정·원시 데이터·숫자 기대값과 함께 결함 보고서에 첨부할 수 있다

흔한 실수

  • 간헐 결함을 일반 트리거 모드로 기다린다. 결함 파형이 다음 정상 파형에 덮인다. 단발 모드로 잡는다.
  • 트리거 지점을 화면 중앙에 둔다. 원인은 리셋 이전에 있다. 프리트리거를 크게 잡는다.
  • 파형 스크린숏만 붙인다. 설정(전압·시간 스케일, 프로브, 샘플링, 트리거)과 원시 데이터가 없으면 재현도 재분석도 안 된다.
  • 긴 접지선의 링잉을 결함으로 보고한다. 측정 방법부터 의심하고, 짧은 접지로 다시 잰다.
  • 벤치 전원으로만 재현을 시도한다. 현장 전원(배터리·긴 배선·저온)의 내부 저항이 결함의 조건인 경우가 많다.
  • 글리치 필터를 켠 채 증거를 캡처한다. 필터가 잡음 결함을 지운다. 증거 캡처 때는 끄거나 설정을 기록한다.

참고 자료

  • sigrok — 오픈소스 신호 분석 소프트웨어(PulseView) — 저가 로직 분석기로 프로토콜 디코딩 연습
  • Saleae Logic 지원 문서 — 샘플링 속도·디코더·트리거 설정
  • Tektronix, "XYZs of Oscilloscopes" — 대역폭·샘플링·프로브·트리거 기본 입문서
  • Keysight·Rohde & Schwarz·Tektronix 각 제조사의 프로빙 응용 노트 — 접지선 길이와 차동 프로브
  • 사용 중인 MCU 레퍼런스 매뉴얼의 리셋·전원 감시(BOR) 장 — 리셋 원인 레지스터와 문턱 전압
  • 레슨 s2-m06-l02 — 좋은 결함 리포트 쓰기
  • 레슨 s5-m46-l02 — 직렬 통신 결함과 경계 시험
  • 레슨 s5-m46-l06 — 전원 강하·브라운아웃 장애 주입

낯선 말 풀이

이 레슨에 나온 약어입니다. 본문에서도 처음 나올 때 점선으로 표시해 두었습니다 (제목과 링크 글자는 그대로 둡니다).

CS — 고객 지원 · 칩 선택 신호
이 커리큘럼에서 두 가지로 쓰인다. ① 고객 문의와 불만을 직접 받는 조직 ② 여러 부품이 한 선을 나눠 쓸 때 "지금은 네 차례" 라고 하나를 고르는 신호. 앞뒤에 문의·고객이 있으면 ①, 통신·배선 이야기면 ②다.
ID — 식별자
무엇 하나를 다른 것과 구별하기 위해 붙인 이름이나 번호.
CAN — 캔 통신
자동차 안의 작은 컴퓨터들이 서로 신호를 주고받는 통신 방식.
UART — 직렬 통신 장치
기기와 컴퓨터를 선으로 잇고 글자를 한 줄씩 주고받는 가장 단순한 통신 방식.
CSV — 쉼표로 구분된 값
표를 글자로 적어 둔 가장 단순한 형식. 줄마다 한 행, 쉼표로 칸을 나눈다.
MCU — 마이크로컨트롤러
아주 작은 컴퓨터 한 칩. 가전·자동차·산업 기기 안에 들어간다.

용어집 전체 보기