기술자료
[E2E 스레드] 전원 켜진 상태에서 JTAG 펌웨어 로드 눌렀더니... (모터·인버터 보드가 타버리는 진짜 이유와 3대 안전 설계)
전원 인가 상태(활전 상태)에서 펌웨어 다운로드 시 FET 파손 원인과 3단계 하드웨어 안전 설계에 대해 정리합니다.
1. 실제 장비 파손 사례 (E2E 스레드 #1673514)
MCU를 활용하여 모터 제어나 전력변환(인버터, 컨버터) 보드를 개발할 때 흔히 겪을 수 있는 사고 사례가 있습니다.
파워서플라이 전원이 켜져 있는 상태에서 CCS의 Debug 버튼을 눌러 새 펌웨어를 다운로드하는 순간, 스위칭 소자(FET)에서 단락(쇼트)이 발생하며 부품이 소손되는 현상입니다.
실제 TI E2E 포럼에 등록된 문의 내용입니다:
"F28377S를 적용한 전력변환 컨버터가 살아 있는 상태에서 XDS110 에뮬레이터로 펌웨어를 다운로드했습니다. 다운로드가 완료되고 리셋하는 순간 컨버터 몇 대의 FET가 단락되어 파손되었습니다. 플래싱 도중 PWM 핀이 특정 상태로 고정되어 상단(High-side)과 하단(Low-side) 스위치가 동시에 켜진 것으로 추정되는데, 원인과 방지 대책이 궁금합니다."
이 현상은 전형적인 '슛스루(Shoot-through, 직통 단락)' 현상으로, 하드웨어적인 안전 대책 없이 소프트웨어에만 의존했을 때 발생하는 대표적인 문제입니다.
2. 개발 과정에서 흔히 발생하는 착각과 원인
"디버거로 CPU를 일시정지(Halt)시키거나 리셋하면 출력 핀도 안전하게 0V(꺼짐) 상태가 될 것이다"라고 생각하기 쉽습니다. 그러나 이는 사실과 다릅니다.
TI 본사 엔지니어의 공식 답변입니다:
"디버거로 칩을 플래싱하거나 멈추는 동안, MCU 핀은 사전에 정의된 안전 상태로 스스로 이동하지 않습니다."

위 다이어그램과 같이 파손이 일어나는 메커니즘은 다음과 같습니다:
- 1) CPU Halt(프로그램 일시정지): 디버거가 플래시를 기록하기 위해 CPU를 멈출 때, 내부 연산 장치만 멈출 뿐 핀 드라이버 회로는 멈추기 직전의 전압 상태(High 또는 Low)를 그대로 유지합니다.
- 2) 플로팅(Floating): 리셋 또는 부트 전환 과정에서 핀이 입력(High-Impedance) 상태로 바뀌며 전압이 불안정해집니다. 주변 스위칭 노이즈가 유입되면 게이트 드라이버가 오작동합니다.
- 3) 상/하단 스위치 동시 턴온: 상단 FET와 하단 FET가 동시에 도통되면서 전원과 접지가 직통으로 연결되어 순간적으로 수십~수백 암페어의 과전류가 흘러 소자가 파손됩니다.
즉, JTAG 다운로드, 시리얼 통신 업데이트, 리셋 구간 등 모든 전이 상태에서 MCU 스스로 전력단을 보호해 주는 기능은 존재하지 않습니다.
3. 전력단 파손을 방지하는 3단계 하드웨어 방어벽
TI가 권장하는 설계 원칙의 핵심은 "전력단 안전을 MCU 소프트웨어 하나에만 의존하지 말 것"입니다. MCU가 멈추거나 리셋되는 상황에서도 하드웨어 회로 자체에서 직통 단락을 원천 차단해야 합니다.

1) 하드웨어 인터록 내장 게이트 드라이버 사용
인버터/하프브리지 구동 회로에는 반드시 동시 턴온 방지(Cross-conduction prevention / Interlock) 로직과 데드타임(Dead-time) 생성 기능이 내장된 게이트 드라이버 IC를 채택합니다. MCU에서 오신호로 상/하단 동시 High를 출력하더라도 드라이버 IC가 이를 무시하고 차단합니다.
2) 물리적 차단 신호(System Enable) 구성
MCU와 게이트 드라이버 사이에 드라이버 동작을 물리적으로 차단할 수 있는 Enable(EN) 핀을 연동합니다. MCU 리셋 중이거나 디버깅 중일 때는 하드웨어 회로가 Enable 신호를 강제로 비활성화(Disable)하여 PWM 신호의 전달을 차단합니다.
3) 확실한 외부 풀다운(Pull-Down) 저항 배치
MCU 내부 풀다운 저항(약 30kΩ~50kΩ)은 스위칭 노이즈가 심한 환경에서 취약합니다. 게이트 드라이버 입력단에 4.7kΩ~10kΩ 수준의 외부 풀다운 저항을 병렬 연결하여, MCU 핀이 하이임피던스(Hi-Z) 상태가 되더라도 신호를 0V 접지 레벨로 확실하게 유지합니다.
4. 안전한 펌웨어 업데이트: 애플리케이션 제어 분기 방식
현장에서 펌웨어를 업데이트할 때는 부트 핀을 조작하여 전원을 강제 리셋하는 방식보다, 실행 중인 애플리케이션이 안전하게 준비를 마친 후 부트로더로 진입하는 방식이 권장됩니다.

- 1) 정상 운용 중 통신(CAN, UART 등)을 통해 펌웨어 업데이트 명령을 수신합니다.
- 2) 메인 애플리케이션이 스스로 PWM 출력을 차단하고 모터를 정지시킨 뒤, 커패시터 전하가 방전될 때까지 안전 대기 시간을 확보합니다.
- 3) 전력단이 완전히 비활성화된 것을 확인한 후, 소프트웨어 명령을 통해 RAM 상의 플래시 부트로더(커널)로 분기합니다.
- 4) 안전이 확보된 상태에서 신규 펌웨어를 기록합니다.
평상시에는 위와 같은 안전 분기 방식을 사용하고, 펌웨어 손상으로 정상 부팅이 불가능할 경우를 대비하여 하드웨어 부트 핀/점퍼를 통한 비상 부트 경로를 함께 유지하는 이중화 설계가 가장 바람직합니다.
5. 실무 점검 체크리스트
회로 설계 및 펌웨어 구현 시 점검할 항목입니다:
1) 모든 PWM 및 게이트 구동 핀에 적절한 외부 풀다운 저항(4.7kΩ~10kΩ)이 배치되어 있는가
2) 게이트 드라이버 IC가 상/하단 동시 도통 방지(인터록) 및 데드타임 삽입 기능을 지원하는가
3) MCU 리셋 및 부트 구간 동안 전력단을 물리적으로 분리할 수 있는 하드웨어 Enable 경로가 있는가
4) 부트 모드 선택 핀이 주요 전력 스위칭 구동 핀과 중복 할당되지 않았는가
5) 펌웨어 업데이트 진입 시 전력단 차단 및 방전 대기 시퀀스가 소프트웨어에 구현되어 있는가
6) 고전압 인가 상태에서 JTAG 디버깅 시 PC와 타깃 보드가 완전히 전기적으로 분리된 절연 에뮬레이터를 사용하고 있는가
6. 핵심 요약
"CPU를 일시정지하는 것"과 "하드웨어 출력이 안전해지는 것"은 전혀 다른 문제입니다. 디버거는 프로그램 카운터의 진행을 멈출 뿐 하드웨어 핀의 전압 상태를 안전하게 정리해 주지 않습니다. 고전력 전력변환 시스템에서 신호 공백으로 인한 사고를 막는 주체는 소프트웨어가 아닌 하드웨어 보호 회로여야 합니다.
원문(출처) : TI E2E 커뮤니티 https://e2e.ti.com/thread/1673514
| 번호 | 제목 | 작성자 | 날짜 |
|---|
- 1




