[초급] 차를 세워 뒀을 뿐인데 왜 배터리가 방전될까? 제어기 슬립(Sleep) 모드가 필요한 이유
차는 콘센트에 꽂힌 가전제품이 아닙니다. 시동을 끄면 발전기(알터네이터)가 멈추고, 그때부터는 충전 없이 배터리 하나로 버텨야 해요. 그런데 배터리에 직접 물린 제어기(B+ 전원)는 시동을 꺼도 전원이 끊기지 않습니다. 그래서 할 일이 없으면 스스로 일하는 상태(Normal)에서 조는 상태(Sleep)로 내려가 전류를 확 줄여야 합니다.
먼저 알아둘 용어
| 용어 | 원래 이름 | 쉽게 말하면 |
|---|---|---|
| ECU | Electronic Control Unit | 차 곳곳에 들어간 작은 두뇌 상자, 우리말로 '제어기' |
| MCU | Microcontroller Unit | 제어기 안에서 실제로 생각하고 명령하는 칩 한 개짜리 컴퓨터 |
| 알터네이터 | Alternator | 엔진이 돌 때만 전기를 만들어 배터리를 채우는 발전기 |
| B+ | Battery plus (배터리 직결 전원) | 시동과 상관없이 배터리에 항상 연결된 전원선 |
| IGN | Ignition (시동 연동 전원) | 시동을 켜야만 전기가 들어오는 전원선, 시동을 끄면 끊김 |
| 암전류 | Dark current (Quiescent / Parasitic current) | 시동을 끄고 모두 잠든 뒤에도 배터리에서 몰래 새어 나가는 전류 |
| Normal | Normal mode | 제어기가 깨어서 일하는 평소 상태, 불 다 켜진 집 |
| Sleep | Sleep mode (슬립 모드) | 할 일이 없을 때 불을 끄고 초인종만 켜 둔 채 조는 상태 |
| 웨이크업 | Wake-up | 자는 제어기를 깨우는 초인종, 또는 깨어나는 일 |
| CAN | Controller Area Network | 제어기들이 두 가닥 선으로 서로 말을 주고받는 차량용 단체 대화방 |
| 트랜시버 | Transceiver | MCU와 CAN 선 사이에서 말을 전달하는 통역사 칩 |
| 클럭 | Clock | 칩 안의 모든 동작 박자를 맞추는 메트로놈 |
| RAM | Random Access Memory | 전원이 있어야 내용을 기억하는 칩 속 메모장 |
| 레귤레이터 | Voltage regulator | 배터리 12 V를 칩이 쓰는 5 V 등으로 낮춰 주는 감압 밸브, 자기도 전류를 조금 먹음 |
| 분압 저항 | Voltage divider | 저항 두 개로 높은 전압을 잴 수 있는 크기로 나누는 회로, 연결돼 있으면 계속 전류가 흐름 |
| Ah | Ampere-hour (암페어시) | 배터리 물통 크기, 1 A로 몇 시간 쓸 수 있는지 |
이런 일 겪어본 적 있나요? 주차만 했는데 배터리 방전
한 달 출장을 다녀와 공항 주차장에 세워 둔 차에 탑니다. 버튼을 눌렀는데 계기판만 깜빡이고 시동이 걸리지 않아요. 실내등을 켜 둔 것도 아닌데 말이죠.
제어기(ECU)를 만드는 협력사에게 이건 가장 무서운 이야기입니다. 같은 증상이 여러 대에서 나오면 완성차 업체는 명탐정 코난에 빙의해 범인을 찾기 시작하거든요. 차를 재운 뒤 암전류를 재고, 퓨즈를 하나씩 뽑아 전류가 뚝 떨어지는 회로를 찾고, CAN 기록을 뒤져 모두 잠든 뒤에도 혼자 떠들던 제어기를 가려냅니다. 범인으로 지목되면 이미 팔린 차 전체에 소프트웨어를 업데이트하는 무상 수리로 번지기도 해요.
차량 제어기에 Sleep 모드가 필요한 이유: 차는 상시전원이 아니다
집 냉장고는 24시간 켜 둬도 괜찮습니다. 콘센트 너머에서 전기가 끝없이 들어오니까요. 차는 다릅니다. 엔진이 도는 동안에는 알터네이터가 배터리를 채워 주지만, 시동을 끄는 순간 발전이 멈춰요. 그때부터 차는 충전 안 되는 물통 하나를 조금씩 꺼내 쓰는 처지가 됩니다.
제어기는 전원을 받는 선에 따라 두 부류로 나뉩니다. IGN 전원 제어기는 시동을 끄면 전원 자체가 끊기니 따로 잘 필요가 없어요. B+ 전원 제어기는 배터리에 항상 물려 있습니다. 시동이 꺼져도 문 손잡이를 당기거나 스마트키가 다가오면 바로 반응해야 하니까요. 선이 끊기지 않으니, 할 일이 없을 때 스스로 전류를 줄이는 수밖에 없습니다. 그 방법이 Sleep입니다. 참고로 현업에서는 B+를 '상시 전원'이라고도 부르는데, 이건 시동과 상관없이 선이 늘 붙어 있다는 뜻이지 전기가 끝없이 나온다는 뜻은 아니에요. 선 너머에 있는 건 결국 충전 안 되는 배터리입니다. 아래 애니메이션으로 10초 만에 흐름을 먼저 보고 가죠.
Sleep 모드는 무엇을 끄고 무엇을 남길까?
Normal이 모든 방에 불이 켜진 집이라면, Sleep은 불을 다 끄고 냉장고와 초인종만 살려 둔 집입니다. 불을 끄는 효과가 큰 이유는 MCU 속 작은 스위치들 때문이에요. 이 스위치들은 클럭이 한 번 똑딱일 때마다 켜졌다 꺼지며 아주 작은 컵에 물(전하)을 채웠다 비웁니다. 박자가 빠를수록 물을 자주 퍼 나르니 전류를 더 먹죠.
식으로: P스위칭 ≈ α · C · V² · f (α: 실제로 뒤집히는 스위치 비율, C: 컵 크기, V: 전압, f: 클럭 주파수)
Sleep의 핵심은 f를 0으로 만드는 겁니다. 클럭을 멈추면 이 몫이 통째로 사라져요. 여기에 센서 전원처럼 제어기 안에서 전류를 먹는 회로를 끄고, CAN 트랜시버도 저전력 상태로 돌립니다.
대신 두 가지는 남겨 둡니다. 하나는 RAM이에요. 전원을 유지하니 내용이 그대로 남아, 깨어나면 하던 일을 이어 갑니다. 다른 하나는 초인종, 즉 웨이크업 입구입니다. CAN 메시지가 오거나 문 스위치가 눌리거나 시동이 켜지면 이 입구가 MCU를 깨워 Normal로 올려 보내요.
잠들 때는 'CAN 조용함'도 조건입니다. CAN으로 연결된 제어기들은 기본적으로 다 같이 자고 다 같이 깨는 약속을 지키거든요. 하나라도 계속 메시지를 보내면 나머지도 덩달아 Normal에 머뭅니다. 완성차 업체가 CAN 기록부터 뒤지는 이유예요.
Sleep 전류는 얼마여야 할까? [예상]
정비 현장에서는 모든 제어기가 잠든 뒤 차 전체 암전류 20~50 mA 정도를 흔히 정상 범위로 봅니다. 배터리는 바닥까지 쓸 수 없고 시동 모터를 돌릴 힘을 남겨야 하니, 여기서는 용량의 절반까지 쓸 수 있다고 가정할게요. 추운 날이나 오래된 배터리면 이 비율은 더 작아지고, 자기방전은 계산에서 뺐습니다.
예: (60 Ah × 50%) ÷ 20.10 mA ÷ 24 = 30 Ah ÷ 0.0201 A ÷ 24 ≈ 62.2일
20.10 mA는 차 전체 20 mA에 우리 B+ 제어기의 Sleep 전류 0.10 mA를 더한 값입니다. 0.10 mA는 부품별 데이터시트 값을 더해 잡았어요.
| 부품 | Sleep 예상 전류 | 근거 |
|---|---|---|
| MCU (클럭 멈춤, RAM 유지) | 30 µA | 데이터시트 저전력 모드 전류, 상온 수십 µA대 |
| CAN 트랜시버 (저전력 상태) | 15 µA | 웨이크업 신호를 듣느라 수~수십 µA |
| 레귤레이터 | 40 µA | 부하가 거의 없어도 스스로 먹는 전류 |
| 기타 (스위치 입력용 저항 등) | 15 µA | 회로도의 저항값과 전압으로 계산 |
| 합계 | 100 µA = 0.10 mA |
선이 빨간 점선(시동 한계)에 닿는 날이 시동이 안 걸리기 시작하는 날입니다. 목표일 전에 닿으면 선이 빨갛게 바뀌어요. 휴대폰에서는 그래프를 옆으로 밀어 끝까지 볼 수 있습니다.
버튼을 눌러 보세요. 제대로 Sleep이면 62.2일, 회로 하나를 안 끄면 58.7일, Normal에서 못 내려오면 19.2일, 우리 때문에 차 전체가 못 자면 3.9일입니다.
Normal에서 Sleep으로: 잠드는 순서 (수도 코드)
void EnterSleep(void)
{
/* 1. Is anyone still asking us to stay in Normal? */
if (IsWakeRequestPending())
{
return; /* try again next cycle */
}
/* 2. Switch off everything that eats current */
SensorPower_Off();
BatteryDivider_Off(); /* easy to forget! */
UnusedPins_SetSafeState();
/* 3. Put the CAN transceiver in low-power mode (it still listens) */
CanTransceiver_SetSleep();
/* 4. Clear old wake-up events, then arm the doorbells */
Wakeup_ClearAllEvents();
Wakeup_Enable(WAKEUP_CAN);
Wakeup_Enable(WAKEUP_DOOR_SWITCH);
/* 5. Lights out: stop the clock (RAM is kept) */
Mcu_EnterSleep();
/* 6. Doorbell rang: back to Normal, continue where we left off */
RestoreNormalMode();
}
IsWakeRequestPending은 '아직 깨어 있어 달라는 요청이 남았는가', BatteryDivider_Off는 '배터리 전압 측정 회로 끄기', Wakeup_Enable은 '초인종 켜기', RestoreNormalMode는 '껐던 것들 다시 켜기'라는 뜻입니다. 함수 이름은 쓰는 MCU에 맞게 바꾸면 됩니다.
확인은 벤치(책상 위 시험 환경)에서 합니다. 12.0 V 전원 공급기를 B+ 입력에 물리고 그 사이에 전류계를 직렬로 넣어요. Normal 전류를 먼저 읽고, Sleep 조건을 만든 뒤 값이 더 떨어지지 않을 때 다시 읽습니다.
[결과] Sleep으로 전류가 정말 줄었을까?
Sleep으로 내려가자 전류가 45 mA에서 0.11 mA로, 약 400분의 1이 됐습니다. Normal에 그대로 머물렀다면 19.2일이던 배터리가 62.2일로, 3배 넘게 버텨요. 예상 0.10 mA와의 0.01 mA 차이는 데이터시트 전형값(대표값)과 실제 칩 사이의 편차 범위라 합격입니다. 이 제어기는 벤치 시험에 'Sleep 전류 0.15 mA 이하'를 합격 기준으로 넣어, 예상값에 부품 편차와 온도 여유를 더한 선에서 매번 확인하기로 했습니다.
Sleep 전류 측정 현장 팁
MCU가 잠들었다고 제어기가 잠든 건 아닙니다. MCU는 Sleep인데 배터리 전압을 재는 분압 저항 스위치를 안 꺼서 전류가 계속 새는 일이 종종 생겨요. 합쳐서 10 kΩ짜리 저항이 12 V에 붙어 있으면 12 V ÷ 10 kΩ = 1.2 mA가 쉬지 않고 흐릅니다. 계산기의 '회로 하나를 안 끔' 버튼이 이 경우입니다. 끌 것들은 EnterSleep 한 곳에 모아 두고, 회로가 늘 때마다 같이 고치세요.
잠들 때까지 기다리세요. 시동을 끄자마자 재면 아직 정리 중인 제어기들 때문에 수백 mA가 나올 수 있어요. 차종에 따라 다 잠드는 데 수십 분이 걸리기도 합니다.
재는 동안 회로를 끊지 마세요. 전류계 레인지를 바꾸다 전원이 잠깐 끊기면 제어기들이 처음부터 다시 켜집니다. 전류계와 나란히 스위치(바이패스)를 달아 두고, 옮길 땐 스위치를 닫아 전원을 유지하세요.
제어기 Sleep 모드 FAQ
- Q. 시동을 끄면 전류가 0이 되지 않나요?
- 아니요. 시계, 보안, 스마트키 대기처럼 꺼져 있어도 살아 있어야 하는 기능이 B+ 전원으로 동작해서 암전류가 흐릅니다. 정비 현장에선 모든 제어기가 잠든 뒤 20~50 mA를 흔히 정상 범위로 봅니다.
- Q. 모든 제어기가 Sleep을 해야 하나요?
- 배터리에 직접 물린 B+ 제어기가 대상입니다. IGN 전원만 받는 제어기는 시동을 끄면 전원이 끊겨 그냥 꺼져요.
- Q. 제어기 하나가 1 mA 더 먹는 게 그렇게 큰일인가요?
- 한 대만 보면 며칠 차이지만 차에는 제어기가 수십 개라 합쳐지면 커집니다. 무엇보다 잠들지 못한 제어기가 CAN으로 다른 제어기까지 깨우면 수백 mA가 되어 며칠 만에 방전될 수 있어요.
정리: 차는 상시전원이 아니라서 잠들어야 한다
시동을 끄면 알터네이터가 멈추고 차는 배터리 하나로 버팁니다. IGN 제어기는 전원이 끊겨 꺼지지만, B+ 제어기는 스스로 Normal에서 Sleep으로 내려가야 해요. Sleep은 클럭을 멈추고 전류 먹는 회로를 끄되, RAM과 웨이크업 입구는 남겨 두는 상태입니다. 우리 제어기는 이것만으로 전류가 약 400분의 1로 줄고, 배터리가 버티는 날이 3배 넘게 늘었습니다.
참고 자료
N. H. E. Weste, D. M. Harris, CMOS VLSI Design: A Circuits and Systems Perspective, 4th ed., Addison-Wesley, 2011 (ISBN 978-0-321-54774-3) — 동적 전력 P = αCV²f (5장 Power)
'임베디드 실무' 카테고리의 다른 글
| [초급] 풀다운이 더 직관적인데, 스위치엔 왜 풀업 저항을 쓸까? (0) | 2026.09.27 |
|---|---|
| [초급] 워치독은 왜 필요할까? 아무도 리셋 버튼을 눌러 줄 수 없을 때 (0) | 2026.09.23 |
| [중급] 전압만 낮추면 어두워지는데, MCU는 왜 굳이 PWM으로 밝기를 조절할까? (0) | 2026.09.22 |
| [초급] PWM은 빠르게 깜빡일 뿐인데, 어떻게 LED 밝기가 조절될까? (0) | 2026.09.22 |
| [중급] 멀티미터는 1.65V인데, ADC는 왜 더 낮게 읽을까? (0) | 2026.09.22 |
