한 달 가는 Meshtastic 노드를 위한 회로 설계 - ieum #2

목차

시작하며

지난 글에서는 ieum이 어떤 생각에서 시작됐고, 어떤 구성으로 만들어졌는지를 전체적으로 소개했습니다.

이번 글부터는 조금 더 자세하게  들어가 보려고 합니다. 

특히 완성도 높게 배터리로 오랫동안 동작하는 것을 목표로 했기 때문에, 단순히 회로가 동작하는 것보다 어떻게 하면 불필요한 전력 소모를 줄이고, 충전 과정에서 발생하는 발열과 손실을 낮출 수 있을지를 많이 고민했습니다.

이번 편에서는 ieum의 전체 회로 구조를 먼저 살펴보고, 배터리와 충전 회로, 시스템 전원, 주변장치 전원 제어를 중심으로 어떤 방식으로 설계했는지 정리해 보겠습니다.

전체 회로 구조

 

ieum의 회로는 RAK4630을 중심으로 전원, 디스플레이, GNSS, 센서가 연결되는 구조로 구성했습니다.

USB-C를 통해 들어온 전원은 BQ25628E를 거쳐 배터리를 충전하고, 배터리 전압은 SGM6036을 통해 시스템에서 사용하는 3.3V로 변환됩니다. 이 3.3V 전원을 기반으로 RAK4630과 E-ink, GNSS, 각종 센서가 동작합니다.

RAK4630은 전체 시스템의 중심에서 LoRa와 Bluetooth 통신을 담당하고, SPI와 I2C, UART를 통해 주변장치와 연결됩니다.

큰 흐름을 정리하면 다음과 같습니다.

  • USB-C / BQ25628E — 배터리 충전

  • SGM6036 — 시스템 3.3V 전원 생성

  • RAK4630 — 메인 제어 및 LoRa/Bluetooth 통신

  • E-ink — 상태 정보 표시

  • GNSS — 위치 측정

  • 센서 — 온습도, 기압, 움직임 측정

이제부터는 이 중 가장 먼저, 배터리와 충전 회로부터 살펴보겠습니다.

배터리와 충전 회로

ieum에는 DTP 894472 3200mAh 리튬 폴리머 배터리를 사용했습니다.

배터리 사용 시간을 길게 가져가는 것이 처음부터 중요한 목표였기 때문에, 휴대성을 크게 해치지 않는 선에서 비교적 큰 용량의 배터리를 선택했습니다.

충전 회로에는 TI의 BQ25628E를 사용했습니다.

BQ25628E는 1.5MHz 동기식 Buck 충전 IC로 최대 2A 충전 전류, NVDC 파워 패스, 통합 ADC, I²C 등을 지원합니다. ieum 같은 소형 배터리 기기에 적합하죠.

소형 배터리 기기에서는 구조가 단순한 선형 충전 IC를 많이 사용하지만, 충전 전류가 커질수록 입력 전압과 배터리 전압의 차이만큼 전력이 열로 소모됩니다. 그 결과 충전 중 보드가 뜨거워지는 현상이 발생하게 됩니다. ieum은 비교적 큰 배터리를 사용하기 때문에, 충전 시간을 줄이면서도 발열을 낮추기 위해 스위칭 방식의 충전 IC를 사용하는 쪽이 더 적합하다고 판단했습니다.

BQ25628E는 스위칭 방식으로 배터리를 충전하기 때문에 선형 충전 방식에 비해 전력 손실을 줄일 수 있고, 비교적 높은 충전 전류를 사용하면서도 발열을 관리하기가 수월합니다.

또한 충전 상태와 배터리 관련 정보를 I²C를 통해 MCU에서 확인할 수 있도록 구성해, 이후 E-ink 화면이나 펌웨어에서 전압과 충전 상태를 표시할 수 있도록 했습니다.

충전 전류와 주변 부품 값은 배터리 사양과 실제 PCB 레이아웃을 함께 고려해 결정했습니다. 특히 스위칭 충전 회로는 회로도뿐 아니라 인덕터와 커패시터, 고전류 경로의 배치가 중요하기 때문에 이 부분은 PCB 설계 단계에서도 다시 신경 써야 했습니다.

3.3V 전원 만들기

배터리 전압을 그대로 시스템에 사용할 수는 없기 때문에, ieum에서는 SGM6036을 이용해 3.3V 전원을 만들도록 했습니다.

SGM6036은 SGMICRO의 초저전력 Buck DC-DC 컨버터 IC로 입력 전압 1.8V ~ 5.5V, 최대 출력 전류 600mA, IOUT = 0.1mA 의 초저부하 영역에서도 최대 90% 수준의 높은 효율을 가집니다.

리튬 폴리머 배터리는 충전 상태에 따라 전압이 계속 변하기 때문에, RAK4630과 각종 주변장치가 안정적으로 동작하려면 일정한 전압을 공급해 줄 전원 회로가 필요합니다.

SGM6036은 높은 효율로 안정적인 3.3V를 만들어 줄 수 있고, 배터리 기반 장치에서 사용하기에 적합한 특성을 가지고 있어 시스템 전원용으로 선택했습니다.

ieum에서는 이 3.3V 레일을 기반으로 RAK4630과 E-ink, GNSS, 센서들이 동작하도록 구성했습니다.

그리고 혹시 모를 상황에 SGM6036 후단의 전원을 차단할 수 있게 EN 핀을 제어할 수 있는 작은 스위치도 추가했습니다. 배터리를 분리하기 번거로울 때 쓰면 좋아 보입니다.

주변장치 전원 제어

배터리 사용 시간을 늘리기 위해서는 단순히 효율 좋은 전원 IC를 사용하는 것만으로는 부족합니다.

GNSS나 E-ink 디스플레이처럼 항상 동작할 필요가 없는 장치는 사용하지 않을 때 전원을 완전히 차단할 수 있도록 구성했습니다. 사실 그냥 둬도 전력 소모량 자체는 많지 않지만 이게 누적되면 꽤 되기 때문에 최대한 줄여보고 싶었습니다. 이를 위해 ieum에서는 로드 스위치를 사용해 주변장치의 전원을 개별적으로 제어하도록 했습니다.

GNSS는 위치를 갱신할 때만 켜고, 평소에는 전원을 끄는 식으로 설계했습니다. 다만 GNSS 모듈은 예비 전원은 유지하고 메인 전원만 꺼야 내부 PSRAM이 남아 있어 다음에 위치를 빠르게 잡을 수 있습니다.

E-ink 디스플레이도 화면 갱신 시기에 맞춰 잠깐씩 동작시키고 다시 꺼진 상태로 돌릴 수 있습니다. E-ink 디스플레이 자체는 사실 갱신하지 않을 때는 전력을 거의 소모하지 않지만, E-ink의 동작을 위한 고전압 부스트 회로 같은 것들까지 끄는 데 의의가 있다고 생각했습니다. 근데 이건 실제로 유의미한 효과가 있을지는 잘 모르겠네요..

아무튼 이렇게 하면 각 부품의 대기전류가 계속 누적되는 것을 줄일 수 있고, 펌웨어에서 사용 패턴에 맞춰 전체 소비전력을 조절할 수 있습니다.

ieum이 오랫동안 켜져 있는 장치를 목표로 한 만큼, 이런 작은 전력 절감 요소들을 하나씩 쌓는 것이 중요하다고 생각했습니다.

RAK4630 주변 회로

RAK4630은 ieum의 메인 제어와 LoRa, Bluetooth 통신을 담당하는 핵심 모듈입니다.

모듈 자체에 nRF52840과 SX1262가 들어 있기 때문에 RF 회로를 처음부터 모두 구성할 필요는 없지만, 실제 보드에서 사용하려면 전원과 안테나, 디버깅 인터페이스, 그리고 주변장치를 적절히 연결해줘야 합니다.

RAK4630에는 많은 핀들이 나 있는데, 그 중 LoRa와 BLE 핀에 주의해야 합니다.
LoRa 핀은 Meshtastic을 사용하기 위한 가장 중요한 핀이기 때문에 안테나 위치를 고려해서 RAK4630을 배치했습니다. 안테나까지 가는 트레이스가 짧은 것이 아무래도 좋으니까요.
또 BLE는 휴대폰 앱과 연결하는 수단이기 때문에 신경 써야 했습니다. PCB에 선으로 2.4G 안테나를 만들면 좋겠지만 공간이 안 나와서 작은 칩 안테나를 사용했습니다.

E-ink는 SPI, GNSS는 UART, 센서들은 I²C를 통해 연결했고, 펌웨어 개발과 문제 해결을 위해 SWD와 UART 디버깅 신호도 접근할 수 있도록 구성했습니다.

결과적으로 RAK4630은 ieum 전체 회로의 중심에서 통신과 주변장치 제어를 담당하고, 나머지 회로는 이 모듈을 기준으로 연결되는 형태가 되었습니다.

E-ink 연결

E-ink 디스플레이는 RAK4630과 SPI로 연결했습니다.

화면 데이터 전송을 위한 SPI 신호 외에도 디스플레이의 상태를 확인하기 위한 BUSY, 초기화를 위한 RESET 등의 제어 신호를 함께 연결했습니다.

또 E-ink 회로는 그냥 3.3V만 넣어주면 작동하지 않는데요, 별도의 고전압 부스트 양전원 회로를 만들어 전력을 공급해야 합니다. 디스플레이 제조사의 데이터시트를 확인해 권장 회로를 따라 만들었습니다.

E-ink는 화면을 갱신할 때만 전력을 많이 사용하고, 표시된 내용을 유지하는 동안에는 거의 전력을 소비하지 않기 때문에 ieum의 저전력 설계 방향과 잘 맞았습니다.

또한 화면을 항상 빠르게 갱신할 필요가 없기 때문에, 배터리 상태나 노드 정보, 위치와 같은 비교적 천천히 변하는 정보를 표시하는 용도로 사용하도록 구성했습니다.

화면 UI는 찾아보니 이미 InkHUD라는 E-ink 디스플레이용 화면 인터페이스가 존재해서 이걸 활용했습니다.

사실 이 부분에서 한 가지 문제가 있어서 PCB 완성 후 좀 애를 먹었는데요, FPC 커넥터 쪽에서 핀 두 개를 서로 반대로 연결해 놔서.. 작동을 하지 않았습니다. 다행히 트레이스를 자르고 점프를 하는 방식으로 수정이 가능해서 고치는 데는 성공했습니다. 이 부분은 다음 편에서 다뤄볼게요.

GNSS 회로

위치 측정을 위해 ATGM336H-5NR-32 GNSS 모듈을 사용했고, RAK4630과는 UART로 연결했습니다.

GNSS는 항상 켜 둘 필요가 없는 장치이기 때문에, 필요할 때만 전원을 공급할 수 있도록 로드 스위치를 통한 별도의 전원 제어를 넣었습니다. 평소에는 꺼 두고 일정 주기마다 위치를 갱신하도록 하면 전체 소비전력을 줄이는 데 도움이 됩니다.

안테나는 수신 성능을 위해 작은 세라믹 액티브 안테나를 사용했습니다. RF 경로도 함께 고려해야 했지만, 이 부분은 회로 자체보다 PCB 배치와 레이아웃의 영향이 크기 때문에 다음 편에서 더 자세히 다룰 예정입니다.

실제 사용에서는 스마트폰 없이도 노드 자체적으로 위치를 얻을 수 있다는 점이 꽤 유용했습니다.

센서 구성

ieum에는 AHT20 온습도 센서, BMP388 기압 센서, MMA8652FC 가속도계를 넣었습니다.

세 센서는 모두 비교적 저전력으로 동작하고, Meshtastic의 Telemetry 기능이나 이후 커스텀 펌웨어에서 활용할 수 있도록 구성했습니다.

센서들은 RAK4630과 I²C로 연결해 배선을 단순화했고, 각 센서의 주소가 겹치지 않도록 구성했습니다. 필요한 경우 펌웨어에서 일정 주기마다 값을 읽고 다시 저전력 상태로 돌아가도록 운용할 수 있습니다.

특히 MMA8652는 처음부터 계획한 거는 아니었고, 출시된지 오래된 센서라 AliExpress에서 저렴하게 구할 수 있어서 나중에 활용해보면 좋을 것 같아서 추가했습니다. 3축, 12-bit, ODR은 1.5625 Hz ~ 800 Hz이고 인터럽트를 활용할 수도 있습니다. 예를 들어 노드가 장시간 움직이지 않으면 같은 장소에 계속 있는 것으로 판단하고, GNSS 측정을 하지 않는 식으로 구현해보면 좋을 것 같았어요.

예상 소비전력과 목표 배터리 시간

ieum은 처음부터 한 번 충전으로 한 달 이상 사용할 수 있는 것을 목표로 설계했습니다.

이를 위해 대부분의 시간을 저전력 상태로 보내도록 하고, GNSS나 센서처럼 소비전력이 상대적으로 큰 장치는 필요한 순간에만 동작시키는 방향으로 구성했습니다. E-ink 역시 화면을 유지하는 동안에는 전력을 거의 사용하지 않기 때문에 이런 구조에 잘 맞았습니다.

실제 평균 소비전력은 LoRa 송수신 빈도, GNSS 위치 갱신 주기, Bluetooth 연결 여부와 화면 갱신 횟수 등에 따라 크게 달라집니다. 따라서 단순히 각 부품의 최대 소비전력을 더하는 것보다는, 각각의 장치가 하루 동안 얼마나 오래 동작하는지를 함께 고려해야 합니다.

설계 단계에서 계산한 소비전력을 기준으로는 3200mAh 배터리로 한 달 이상의 사용 시간을 기대할 수 있었지만, 이는 어디까지나 이론적인 값입니다.

실제 배터리 사용 시간은 펌웨어 최적화와 사용 환경에 따라 달라질 수 있기 때문에, 완성된 프로토타입을 장기간 운용하면서 직접 측정해 볼 계획입니다.

회로를 그리면서 신경 쓴 것

ieum의 회로를 설계하면서 가장 중요하게 본 것은 저전력, 전원 안정성, 그리고 실제 제작 이후의 디버깅 가능성이었습니다. 한 가지 더 덧붙이자면 JLCPCB Parts Library에서 'Basic' 으로 표시된 파츠 위주로 고르는 것 정도네요.

배터리로 오랫동안 동작해야 하는 만큼, 효율이 좋은 전원 IC를 선택하는 것뿐 아니라 필요하지 않은 주변장치의 전원을 끌 수 있도록 구성했습니다. 충전 회로 역시 단순함보다는 발열과 손실을 줄이는 방향을 우선했습니다.

또한 처음 만드는 PCB인 만큼.. 문제가 생겼을 때 원인을 찾을 수 있어야 했기 때문에, SWD와 UART 같은 디버깅 인터페이스에도 쉽게 접근할 수 있도록 했습니다.

결국 목표는 그냥 일단 동작하는 테스트 보드가 아니라, 실제로 오래 켜 두고 사용할 수 있으면서 이후 펌웨어와 기능을 계속 확장할 수 있는 프로토타입 하드웨어를 만드는 것이었습니다.

회로 구성이 어느 정도 정리된 뒤에는 이제 이 모든 부품을 실제 PCB 위에 어떻게 배치할지가 다음 과제가 되었습니다.

마치며

이번 글에서는 ieum의 전체 회로 구조와 전원 설계, 그리고 각 주변장치를 어떻게 구성했는지를 정리해 봤습니다.

이제 회로가 완성됐으니, 다음은 이 회로를 실제 PCB 위에 옮기는 과정입니다.

다음 편에서는 부품 배치와 스위칭 전원 레이아웃, RF와 GNSS 안테나 주변 구성, 전원 패턴과 GND 설계 등 PCB를 그리면서 고민했던 부분들을 자세히 정리해 보겠습니다.

This article was updated on

Related post