임베디드 면접 용어 사전
디버깅·신뢰성EMC · ESD · EMI

EMC / ESD

전자기 적합성과 정전기 방전. 간헐적 오동작의 물리적 원인으로 배선·접지·보호 소자를 점검한다.

EMC(Electromagnetic Compatibility) — 전자기 환경에서 오작동하지 않고, 남에게 방해도 주지 않는 능력. ESD(Electrostatic Discharge) — 정전기 방전.

EMC의 두 측면

  • EMI (Emission) — : 내가 노이즈를 얼마나 내보내나 → 규제 대상
  • EMS (Immunity) — : 남의 노이즈를 얼마나 견디나 → 제품 신뢰성

둘 다 인증에서 시험한다. CE, FCC, KC 마크가 그 결과다.

왜 소프트웨어 엔지니어가 알아야 하나

  • EMI 방출량은 회로만의 문제가 아니다
  • 소프트웨어가 만드는 신호 파형이 직접 영향을 준다

소프트웨어로 개선할 수 있는 것들

항목방법
슬루 레이트GPIO Speed를 필요한 만큼만. 가파른 에지 = 넓은 스펙트럼
스프레드 스펙트럼클럭 주파수를 미세하게 흔들어 피크를 분산(SSCG)
불필요한 토글 제거안 쓰는 클럭·주변장치 끄기
전송 타이밍 분산여러 통신이 동시에 일어나지 않게
PWM 주파수 선택문제되는 대역을 피한다

슬루 레이트 제어가 가장 손쉽고 효과적이다. LED 구동에 GPIO_SPEED_FREQ_VERY_HIGH를 쓸 이유가 없다.

ESD — 사람이 만드는 수천 볼트

  • 카펫 위를 걷고 문고리를 잡으면 → 수 kV
  • 사람이 느끼는 최소 전압 — → 약 3kV
  • 반도체가 파괴되는 전압 — → 수십~수백 V ★

★ 사람이 느끼지도 못하는 정전기가 칩을 죽인다. 느꼈다면 이미 훨씬 큰 방전이다.

두 가지 피해 즉시 파괴(catastrophic) : 바로 고장. 발견하기 쉽다

  • 잠재 손상(latent) — : 당장은 동작하지만 수명이 줄어든다 ← 더 무섭다

잠재 손상은 현장에서 몇 달 뒤 고장으로 나타나 원인 추적이 거의 불가능하다.

ESD 대책 — 하드웨어

  • ① TVS 다이오드 — 외부와 연결되는 모든 신호선에
  • ESD 보호 IC — — USB, HDMI 등 고속 신호용
  • 접지 설계 — — 방전 전류가 안전하게 흐를 경로
  • 기구 설계 — — 커넥터 주변 갭, 도전성 개스킷
  • 케이스 접지 — — 금속 케이스는 반드시 접지

"외부로 나가는 모든 신호에 보호 소자" 가 원칙이다. 커넥터, 버튼, 케이블이 모두 대상이다.

ESD 대책 — 소프트웨어

하드웨어가 막지 못한 것을 소프트웨어가 복구한다.

  • ① 워치독 — 폭주 시 자동 복구 ← 가장 중요
  • ② 주기적 레지스터 재설정
    • — ESD로 주변장치 설정 레지스터가 변조될 수 있다
    • 중요한 설정을 주기적으로 다시 쓴다
  • ③ 데이터 무결성 — 중요 변수를 이중화하고 CRC 검증
  • ④ 통신 재시도 — 일시적 오류를 흡수
  • ⑤ 상태 머신 검증 — 정의되지 않은 상태면 안전 상태로 복귀
  • ⑥ 플래시 CRC 검증 — 부팅 시 코드 무결성 확인

②가 실무에서 효과적이다. ESD가 GPIO 설정 레지스터를 바꿔 출력이 입력으로 변해 버리는 사고가 실제로 있다.

// 1초마다 중요 레지스터 재설정
void periodic_reinit(void) {
    GPIOA->MODER = SAVED_MODER;
    GPIOA->OTYPER = SAVED_OTYPER;
    // …
}

시험 규격

IEC 61000-4-2  ESD        (접촉 ±4kV, 공중 ±8kV 등)
IEC 61000-4-3  방사 내성   (전자파를 쬔다)
IEC 61000-4-4  EFT/버스트  (빠른 과도 현상)
IEC 61000-4-5  서지        (낙뢰 등)
IEC 61000-4-6  전도 내성
CISPR 22/32    방출 한계

시험 결과 판정 기준 A등급: 시험 중에도 정상 동작 B등급: 일시적 저하, 자동 복구 C등급: 사용자 개입으로 복구 (재부팅 등) D등급: 복구 불가 (불합격)

B등급까지가 보통 목표다. 워치독으로 자동 복구되면 B등급이 된다.

개발 단계에서 확인

  • ① 정전기 건(ESD gun)으로 자체 시험 — 인증 전에 미리
  • ② 근접 자계 프로브로 노이즈 소스 탐색
  • ③ 스펙트럼 분석기로 EMI 피크 확인
    • 피크 주파수가 클럭의 배수면 그 클럭이 원인

인증 시험은 비싸고 재시험도 비싸다. 설계 단계에서 대비하지 않으면 일정이 크게 밀린다.

소프트웨어 엔지니어의 실전 체크리스트

✅ 워치독을 켜고 올바르게 구현했는가 ✅ GPIO 슬루 레이트를 필요한 만큼만 설정했는가 ✅ 안 쓰는 주변장치의 클럭을 껐는가 ✅ 통신에 CRC와 재시도가 있는가 ✅ 중요 설정을 주기적으로 검증·복원하는가 ✅ 정의되지 않은 상태에서 안전 상태로 가는가 ✅ 리셋 원인을 기록하는가 (EMC 시험 중 리셋을 추적하려면 필수)

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 디버깅·신뢰성 — JTAG/SWD·HardFault(fault 레지스터)·트레이스·watchdog·EMC