Skip to content
Published on

FingerScore 하드웨어 5 — 전원·배터리·회로 설계

Authors

들어가며

4편에서 우리는 FingerScore 링이 BLE로 점수를 똑똑하게 폰에 보내도록 만들었습니다. 그런데 한 가지 전제가 있었습니다. 링에 전원이 들어와 있어야 한다는 것이죠. 손가락만 한 기기 안에 배터리를 넣고, 며칠에서 몇 주를 버티게 하고, 안전하게 충전하는 일은 생각보다 어렵습니다. 전원 설계를 대충 하면 배터리가 반나절 만에 죽거나, 발열로 손가락이 뜨겁거나, 최악의 경우 LiPo가 부풀어 오릅니다.

이번 5편은 전원·배터리·회로 설계입니다. 전력 예산을 계산해 배터리 수명을 예측하는 법부터, 배터리 종류 선택, 충전 IC와 보호회로, 전압을 깨끗하게 만드는 레귤레이터, 그리고 발열과 ESD 같은 안전 문제까지 다룹니다. 수식과 회로도가 나오지만 모두 풀어서 설명하니 전자공학 비전공자도 따라올 수 있습니다.


1. 전력 예산 — 배터리는 얼마나 버틸까

가장 먼저 할 일은 "이 기기가 평균적으로 전류를 얼마나 먹는가"를 계산하는 것입니다. 이걸 **전력 예산(power budget)**이라고 합니다.

슬립과 액티브의 평균

FingerScore 링은 대부분의 시간을 슬립 상태로 보냅니다. 가끔 가속도계가 충격을 감지하면 깨어나(액티브) 점수를 처리하고 BLE로 보낸 뒤 다시 잠듭니다. 그래서 평균 전류는 슬립 전류와 액티브 전류의 가중 평균입니다.

평균 전류 계산 (가중 평균)

I_avg = (I_sleep × t_sleep + I_active × t_active) / (t_sleep + t_active)

예시 값:
  I_sleep  = 10 uA      (대부분의 시간)
  I_active = 8 mA       (BLE 송신 + MCU 동작)
  한 번 깨어나는 시간 t_active = 5 ms
  깨어나는 빈도 = 분당 6회 (10초에 한 번 점수/광고)

1분(60초) 기준:
  active 총 시간 = 6 × 5 ms = 30 ms = 0.03 초
  sleep  총 시간 = 60 - 0.03 = 59.97 초

I_avg = (10uA × 59.97 + 8000uA × 0.03) / 60
      = (599.7 + 240) / 60
      = 839.7 / 60
      = 약 14 uA

평균 14uA라는 결과가 나왔습니다. 액티브 전류가 슬립보다 800배 크지만, 액티브 시간이 워낙 짧아서 평균은 슬립 전류에 가깝게 유지됩니다. 저전력 설계의 핵심은 "얼마나 적게 먹느냐"가 아니라 "얼마나 자주 깨어나느냐"입니다.

배터리 수명 추정

배터리 용량(mAh)을 평균 전류로 나누면 대략적인 수명이 나옵니다.

배터리 수명 추정

수명(시간) = 배터리 용량(mAh) / 평균 전류(mA) × 디레이팅

CR2032 코인셀 = 약 220 mAh
평균 전류 = 0.014 mA (위에서 계산한 14 uA)
디레이팅 = 0.7 (자가방전, 온도, 전압 강하 여유)

수명 = 220 / 0.014 × 0.7
     = 15714 × 0.7
     = 약 11000 시간
     = 약 458 일

(실제로는 광고 빈도, 연결 유지, 온도에 따라 크게 달라짐.
 보수적으로 잡아 수개월~1년으로 본다.)

디레이팅(derating) 계수 0.7을 곱한 이유는, 실제 배터리는 카탈로그 용량을 100% 쓸 수 없기 때문입니다. 자가방전, 저온에서의 용량 감소, 컷오프 전압 등을 감안해 보수적으로 잡습니다.


2. 배터리 선택 — 코인셀 vs 소형 LiPo

링의 폼팩터에서 배터리는 가장 큰 부피를 차지합니다. 두 가지 주요 선택지를 비교합니다.

항목코인셀 (CR2032)소형 LiPo
전압3.0V (비충전)3.7V 공칭, 4.2V 만충
용량약 220 mAh20~110 mAh (크기 따라)
충전불가(일회용)가능
두께/형태두껍고 원형얇고 사각, 곡면 가능
안전성높음(안정)주의 필요(과충전·천공 위험)
반지 적합두께 부담곡면 LiPo가 유리

어느 쪽인가

  • 코인셀: 충전 회로가 필요 없어 회로가 단순하고 안전합니다. 다만 한 번 쓰면 갈아야 하고, 두께(약 3.2mm) 때문에 반지가 두꺼워집니다. 프로토타입 초기나 저전력 극단 설계에 좋습니다.
  • 소형 LiPo: 충전이 가능해 사용 경험이 좋고, 곡면 형태가 있어 반지에 감을 수 있습니다. 대신 충전 IC, 보호회로, 안전 설계가 추가로 필요합니다. 양산 제품에는 보통 LiPo가 선택됩니다.

FingerScore의 최종 제품 방향은 충전식이므로 소형 곡면 LiPo를 기준으로 이후 설명을 진행하되, 프로토타입 단계에서 코인셀로 펌웨어를 먼저 검증하는 것을 추천합니다.


3. LiPo 충전 IC와 보호회로

LiPo는 편리하지만 위험합니다. 과충전하면 부풀고, 과방전하면 망가지고, 과전류가 흐르면 발열합니다. 그래서 두 가지 보호 장치가 필수입니다.

충전 IC (예: TP4056류)

리튬 배터리는 정해진 곡선(CC-CV: 정전류-정전압)으로 충전해야 합니다. 이를 자동으로 해 주는 칩이 충전 IC입니다. 대표적으로 TP4056 계열이 입문자에게 많이 쓰입니다.

CC-CV 충전 곡선

전압/전류
  ^
  |        CC 구간          CV 구간
  |  전류 --------          ‾‾\___
  |  일정                       \___  (전류 점점 감소)
  |
  |  전압  ___/‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾  (4.2V 도달 후 일정)
  |     /
  +------------------------------------> 시간
     충전 시작                  만충 근처
  • CC(정전류): 처음엔 일정한 전류로 빠르게 채웁니다.
  • CV(정전압): 4.2V에 도달하면 전압을 고정하고 전류를 서서히 줄입니다. 전류가 충분히 작아지면 충전 완료로 봅니다.

충전 전류는 보통 배터리 용량의 0.5C1C 정도로 잡습니다. 50mAh 배터리라면 2550mA. 작은 배터리에 너무 큰 전류를 흘리면 위험하므로, 충전 IC의 프로그램 저항(R_PROG)으로 충전 전류를 제한합니다.

보호회로 (Protection IC)

충전 IC와 별개로, 배터리 자체를 지키는 보호회로가 필요합니다. 보호 IC(예: DW01류 + 듀얼 MOSFET)는 다음을 차단합니다.

  • 과충전(Over-charge): 전압이 너무 높아지면 충전 차단
  • 과방전(Over-discharge): 전압이 너무 낮아지면 방전 차단
  • 과전류/단락(Over-current/short): 큰 전류가 흐르면 즉시 차단

많은 LiPo 셀은 이미 보호회로가 내장(PCM)되어 판매됩니다. 보호회로 없는 "raw cell"을 쓸 때는 반드시 별도 보호 IC를 추가해야 합니다. 안전과 직결되므로 절대 생략하지 마세요.


4. 레귤레이터 — LDO vs 벅 컨버터

배터리 전압은 충전 상태에 따라 변합니다(만충 4.2V → 방전 3.0V). 하지만 MCU와 BLE 칩은 안정적인 전압(예: 3.3V 또는 1.8V)을 원합니다. 이 변하는 전압을 일정하게 만들어 주는 게 레귤레이터입니다.

항목LDO벅(Buck) 컨버터
원리남는 전압을 열로 버림스위칭으로 효율적 변환
효율낮음(전압차 클수록 손해)높음(80~95%)
노이즈매우 깨끗스위칭 노이즈 있음
부품 수적음(콘덴서 2개)많음(인덕터, 콘덴서 등)
크기작음인덕터 때문에 큼
정지전류초저전력 품 선택 가능품에 따라 다양

FingerScore 선택

링은 공간이 극도로 좁고, 입력(3.0~4.2V)과 출력(3.3V)의 전압 차가 작습니다. 전압 차가 작으면 LDO의 효율 손실도 작아집니다. 게다가 BLE 라디오는 깨끗한 전원을 좋아하므로 노이즈가 적은 LDO가 유리합니다.

따라서 FingerScore는 초저 정지전류(quiescent current) LDO를 기본으로 합니다. 슬립 상태에서 LDO 자체가 먹는 전류(Iq)가 수십 nA~수 uA인 품을 골라야 합니다. 만약 LDO의 Iq가 100uA라면, 앞서 계산한 평균 전류(14uA)보다 훨씬 커져서 배터리 수명을 망칩니다.

LDO 정지전류의 중요성

기기 평균 소비 = 14 uA
LDO Iq = 1 uA   -> 총 15 uA, 수명 거의 유지 (좋음)
LDO Iq = 100 uA -> 총 114 uA, 수명 1/8 토막 (나쁨)

교훈: 슬립이 긴 기기에서 LDO 정지전류는 핵심 스펙

5. 디커플링과 전원 무결성

칩이 갑자기 많은 전류를 요구하면(BLE 송신 순간 등) 전원 전압이 순간적으로 출렁입니다. 이 출렁임은 칩을 오작동시키거나 BLE 신호를 망칩니다. 이를 잡아 주는 게 **디커플링 커패시터(decoupling capacitor)**입니다.

디커플링 커패시터는 칩의 전원 핀 바로 옆에 두는 작은 콘덴서로, 작은 에너지 저장소 역할을 합니다. 칩이 갑자기 전류를 당기면 먼 배터리 대신 바로 옆 콘덴서가 즉시 공급해 전압 출렁임을 줄입니다.

디커플링 커패시터 배치 (개념)

[배터리]---[LDO]----+----+----[MCU/BLE VDD 핀]
                    |    |
                  100nF 1uF   <- 칩 핀에 최대한 가깝게
                    |    |
                   GND  GND

핵심: 콘덴서를 칩 전원 핀에 물리적으로 가깝게 둘 것.
      멀어지면 배선의 인덕턴스 때문에 효과가 떨어진다.

보통 100nF(고주파 잡음용) 한 개와 1uF~10uF(저주파/대용량 순간 공급용) 한 개를 조합해 칩 전원 핀마다 배치합니다. 이건 6편 PCB 설계에서 배치 위치가 더 중요해집니다.


6. 저전력 설계 기법

전력 예산 절에서 봤듯이, 수명을 좌우하는 건 "얼마나 자주, 얼마나 길게 깨어나느냐"입니다. 펌웨어와 하드웨어 양쪽에서 쓸 수 있는 기법들입니다.

  • 딥 슬립 활용: MCU의 가장 깊은 슬립 모드(예: System OFF)를 쓰면 수 uA 이하로 떨어집니다. 깨우는 트리거는 가속도계 인터럽트나 버튼.
  • 클럭 게이팅: 안 쓰는 주변장치(타이머, ADC, UART)의 클럭을 꺼서 전류를 줄입니다.
  • 페리페럴 끄기: 안 쓰는 센서·LED·레귤레이터 채널을 GPIO로 완전히 차단합니다. LED 하나가 켜져 있으면 슬립 전류가 무의미해질 수 있습니다.
  • 광고 주기 최적화: BLE 광고를 너무 자주 하면 전력을 먹습니다. 연결 후에는 광고를 멈춥니다.
  • 센서 모드 선택: 가속도계를 "동작 감지(motion wake)" 저전력 모드로 두면, 충격이 있을 때만 MCU를 깨웁니다. 평소 MCU는 완전히 잡니다.
전력 소비 우선순위 (큰 도둑부터 잡기)

1. 켜진 LED / 항상 켜진 센서   <- 가장 큰 도둑, 최우선
2. 잦은 BLE 광고 / 짧은 interval
3. 높은 LDO 정지전류
4. 안 끈 주변장치 클럭
5. 비효율 코드(busy-wait 등)

원칙: uA를 아끼기 전에 mA를 먹는 놈부터 잡아라.

배터리 잔량 추정 — 전압 게이지 vs 쿨롱 카운팅

폰 앱에 "배터리 30%"를 보여 주려면 잔량을 알아야 합니다. 방법은 두 가지입니다.

  • 전압 게이지(voltage gauge): 배터리 전압을 ADC로 읽어 잔량을 추정합니다. 간단하지만, LiPo는 방전 곡선이 평탄해서(중간 구간에서 전압 변화가 작음) 부정확합니다. 또 부하가 걸리면 전압이 순간 떨어져 오차가 큽니다.
  • 쿨롱 카운팅(coulomb counting): 들어오고 나간 전류를 적분해 정확히 추적합니다. 전용 연료 게이지 IC(예: MAX17048류)를 쓰면 정확하지만 부품이 추가됩니다.
LiPo 방전 곡선과 잔량 추정의 함정

전압
 4.2 |‾‾\
     |   ‾‾‾‾‾‾‾‾‾‾‾\        <- 평탄 구간: 전압만으로는
 3.7 |              ‾‾‾‾\       잔량 구분 어려움
     |                  ‾‾\
 3.0 |                     \_
     +------------------------> 사용량(%)
     100%                  0%

평탄 구간에서 전압 게이지는 60%인지 40%인지 헷갈린다.
정확한 잔량이 중요하면 연료 게이지 IC를 고려.

FingerScore는 잔량을 4단계(100/70/40/10%) 정도로만 보여 줘도 충분하므로, 비용을 아끼려면 전압 게이지 + 보정 테이블로 시작하고, 사용자 경험이 중요해지면 연료 게이지 IC로 업그레이드하는 전략이 합리적입니다.

배터리 노화 — 수명은 영원하지 않다

LiPo는 충방전을 반복하면 용량이 줄어듭니다. 보통 300~500 사이클이면 초기 용량의 80% 수준으로 떨어집니다. 또 만충(4.2V)으로 오래 보관하거나 고온에 두면 노화가 빨라집니다.

  • 매번 100%까지 충전하지 않고 80~90%에서 멈추면 수명이 늘어납니다.
  • 장기 보관 시에는 50% 정도로 충전해 둡니다.
  • 펌웨어에서 충전 종료 전압을 살짝 낮게(예: 4.1V) 설정하면 용량은 약간 줄지만 수명이 크게 늘 수 있습니다.

이런 배려는 손가락에 끼고 매일 쓰는 제품에서 "1년 뒤에도 하루 버티는가"를 좌우합니다.


7. 전류 측정 — 보이지 않는 소비를 재기

설계가 끝나면 실제로 얼마나 먹는지 측정해야 합니다. 문제는 슬립 전류(uA)와 액티브 전류(mA)가 1000배 차이라 일반 멀티미터로는 둘 다 정확히 재기 어렵다는 점입니다.

  • 일반 멀티미터: 평균은 보지만, 짧은 액티브 펄스를 놓치고 슬립 전류도 부정확합니다.
  • 전용 전류 측정기(예: Nordic PPK2, Joulescope): uA부터 mA까지 넓은 범위를 동시에, 시간축으로 보여 줍니다. 깨어나는 펄스 모양까지 볼 수 있어 "왜 평균이 높지?"를 추적할 수 있습니다.
전류 파형 측정 (전용 측정기로 본 모습)

전류
  ^
  | mA      ┌┐        ┌┐        ┌┐
  |         ││        ││        ││   <- BLE 송신 펄스
  | uA  ____┘└________┘└________┘└___  <- 슬립 베이스라인
  +-----------------------------------> 시간

확인 포인트:
 - 슬립 베이스라인이 예상(uA)보다 높지 않은가?
 - 펄스가 너무 길거나 잦지 않은가?

측정 없이 "잘 되겠지" 하면 거의 항상 어딘가 숨은 소비가 있습니다. 측정은 선택이 아니라 필수입니다.


8. 회로도 — 전원부 ASCII

지금까지의 요소를 하나의 전원부 블록으로 그리면 다음과 같습니다.

FingerScore 전원부 블록도

 USB-C  ---> [ESD 보호] ---> [충전 IC TP4056류] ---+---> [LiPo + 보호 IC]
 (VBUS)                          (CC-CV 충전)       |
                                                    |
                                                    v
                                          [전원 스위치/로드 스위치]
                                                    |
                                                    v
                                       [LDO 3.3V (초저 Iq)]
                                          |       |
                                       100nF     1uF  (디커플링)
                                          |       |
                                          v       v
                                    [MCU + BLE SoC VDD]
                                          |
                                          +--> [가속도계 VDD]
                                          +--> [상태 LED (GPIO 제어)]

흐름을 정리하면: USB-C로 들어온 전기가 ESD 보호를 거쳐 충전 IC로 가고, 충전 IC가 LiPo를 안전하게 채웁니다. 사용 시에는 LiPo → 로드 스위치 → LDO를 거쳐 깨끗한 3.3V가 만들어지고, 디커플링 콘덴서를 지나 MCU/BLE/센서로 공급됩니다.


9. 충전과 USB-C

요즘은 USB-C로 충전하는 게 표준입니다. 다만 작은 기기라 풀 USB-C 사양을 다 구현할 필요는 없습니다.

  • 전원만 받는 경우: VBUS와 GND만 연결하고, CC1/CC2 핀에 각각 5.1kΩ 풀다운 저항을 달면 "나는 전원만 받는 장치야"라고 USB-C 호스트에 알립니다. 이 저항을 빠뜨리면 충전이 안 될 수 있습니다.
  • 데이터도 필요하면: 펌웨어 업데이트용 USB를 넣을 수 있지만, 링처럼 작은 기기는 보통 무선(OTA) 업데이트를 쓰고 USB는 충전 전용으로 둡니다.

반지처럼 작은 기기에서는 USB-C 커넥터 자체도 부피를 차지합니다. 그래서 자석식 충전 도크(폰의 핀 2~4개를 접점으로 노출)나 무선 충전(Qi 소형)을 쓰기도 합니다. 접점식은 회로가 간단하지만 방수와 부식에 주의해야 합니다.

전원 켜기/끄기 — 로드 스위치와 부팅

링에는 물리 전원 버튼을 두기 어렵습니다(방수·공간). 그래서 전원 관리가 펌웨어와 하드웨어의 협업으로 이뤄집니다.

  • 로드 스위치: 배터리와 회로 사이의 스위치(P-MOSFET 또는 전용 로드 스위치 IC)로, 안 쓸 때 전체 회로를 끊어 누설 전류를 0에 가깝게 만듭니다.
  • 버튼 깨우기: 작은 택트 스위치나 정전식 터치로 "켜기"를 구현합니다. 길게 누르면 켜지고, 더 길게 누르면 꺼지는 식.
  • 충전 시 자동 부팅: 충전기를 꽂으면 자동으로 켜지게 해, 보관 중 완전히 꺼진 상태에서도 되살아나게 합니다.
전원 상태 머신 (개념)

  [완전 꺼짐]  --버튼 길게--> [부팅]  --초기화 완료--> [동작]
       ^                                                 |
       |                                                 |
       +------- 버튼 더 길게 / 저전압 ---- [종료] <-------+

핵심: "완전 꺼짐"에서는 로드 스위치가 회로를 끊어 누설을 막는다.
      보관 수개월에도 배터리가 살아 있게 하는 비결.

이 설계 덕분에 사용자가 며칠 안 써도 배터리가 새지 않고, 다시 끼면 바로 켜집니다. 작은 디테일이지만 "서랍에 둔 반지가 한 달 뒤에도 켜지는가"를 좌우합니다.


10. 발열·안전·ESD

작은 기기를 손가락에 끼므로 발열과 안전은 특히 중요합니다.

발열

  • 충전 중 충전 IC와 LDO에서 열이 납니다. 충전 전류를 너무 크게 잡으면 뜨거워지므로 0.5C 이하로 보수적으로 잡습니다.
  • LDO는 입력-출력 전압 차 × 전류만큼 열을 냅니다. 전압 차가 작은 설계가 발열도 적습니다(LDO를 고른 또 다른 이유).

LiPo 안전

  • 과충전·천공·압착 시 LiPo는 부풀거나 발화할 수 있습니다. 보호 IC는 필수이며, 기구 설계 시 셀을 누르지 않게 여유 공간을 둡니다.
  • 온도 범위를 벗어난 충전(저온·고온)은 위험합니다. 충전 IC 중 온도 보호(NTC) 기능이 있는 품을 쓰면 좋습니다.

ESD 보호

손가락이 닿는 기기는 정전기(ESD)에 노출됩니다. 문고리를 잡았을 때 튀는 그 정전기가 칩을 죽일 수 있습니다.

ESD 위협 지점과 방어

USB-C 핀  ----[TVS 다이오드]---- 내부 회로
접점/버튼  ----[TVS 다이오드]---- GPIO

원칙: 사람 손이 닿는 모든 노출 도체에 TVS(과도전압 억제) 다이오드로
      과도한 정전기를 그라운드로 흘려보낸다.

TVS 다이오드는 평소엔 아무 일도 안 하다가, 정전기 같은 순간적인 고전압이 들어오면 그 에너지를 그라운드로 흘려 내부 칩을 지킵니다. USB-C 데이터/전원 라인과 외부에 노출된 모든 핀에 다는 것이 좋습니다.


11. 흔한 실수

  • LDO 정지전류를 무시: 데이터시트에서 Iq를 안 보고 골랐다가 슬립 전류가 100배 높아 배터리가 하루 만에 죽습니다.
  • 보호회로 생략: raw LiPo 셀에 보호 IC를 안 달면 과방전으로 셀이 망가지거나, 과충전으로 부풉니다. 안전 사고로 직결됩니다.
  • CC 풀다운 저항 누락: USB-C에서 5.1kΩ을 안 달면 충전기가 전원을 안 줍니다.
  • 디커플링 콘덴서 위치: 콘덴서를 칩에서 멀리 두면 효과가 없어 BLE가 간헐적으로 죽습니다.
  • 충전 전류 과다: 작은 배터리에 1C 넘는 전류를 흘리면 발열·수명 저하·안전 문제가 생깁니다.
  • 측정 생략: 계산만 믿고 실측을 안 하면 숨은 소비를 못 잡습니다.

12. 마치며 — 다음 글 예고

이번 5편에서는 FingerScore 링을 진짜로 켜 두는 전원 설계를 다뤘습니다. 전력 예산으로 수명을 예측하고, 배터리(코인셀 vs LiPo)를 고르고, 충전 IC와 보호회로로 안전하게 충전하고, LDO로 깨끗한 전압을 만들고, 디커플링과 저전력 기법으로 효율을 높이고, 발열·ESD·안전까지 챙겼습니다.

이제 우리는 똑똑하게 통신하고(4편) 오래 켜지는(5편) 전자 회로를 손에 쥐었습니다. 하지만 이 모든 부품을 어떻게 반지 크기의 작은 기판 위에 올리고, 배선하고, 곡면에 맞추고, 안테나가 잘 동작하게 할까요?

다음 6편 PCB 설계와 소형화에서는 스키매틱에서 PCB로 가는 흐름, 부품 배치와 라우팅, 반지 폼팩터 제약, 안테나 레이아웃, 제조 적합성(DFM)과 거버 출력, 어셈블리, 그리고 양산과 인증(FCC/KC)까지 — 회로를 진짜 만질 수 있는 물건으로 만드는 마지막 단계를 다룹니다.


참고 자료