ESP는 생태계교란종인가, 타노스인가?
IoT나 코딩에 대한 분위기가 이렇게 좋지 않았던 몇 년 전까지만 하더라도 3.3V를 사용하는 회로는 시장에서 조금은 마이너한 분위기였습니다. 그도 그럴것이, 이 시작에 대변혁을 일으켰다고도 볼 수 있는 Arduino UNO가 5V를 기준으로 동작했기 때문입니다. 당시 3.3V에서 동작했던 Arduino Pro Mini는 영 인기가 없는 편이었습니다. 그러다 이 시장에 3.3V 관련 제품과 이야기가 오가기 시작하는 큰 변화의 물결이 일어납니다. Espressif의 ESP 시리즈가 등장한겁니다. ESP-**모듈은 아두이노보다 훨씬 저렴한 가격에 훨씬 나은 성능과 넉넉한 SRAM을 제공합니다. 거기다 WiFi도 사용할 수 있게 되면서 활용도가 말도 안되게 무궁무진해졌습니다. 여기에 조금의 비용을 더 주면 블루투스도 사용이 가능합니다...! 심지어 판매량이 높은 모델은 FCC/JCC/KC인증까지 받아져 있어 메이커가 제품화할 때 추가 인증 비용에 대한 부담 또한 덜어낼 수 있습니다.
The ESP32 is a ridiculously(...) capable microcontroller
무표정으로 이런저런 정보들을 찾아다니다 이 표현을 보고 잠시 빵 터졌었습니다. 그런데 정말로, 진지하게 ESP32는 Ridiculous합니다. 모든 부분에서 어느 하나 아쉬울 게 없습니다. 현재 단계에서 ESP32는 여러 파생모델로 분화되어 현재는 보안에 특화된 S시리즈와 RISC-V 기반의 C 시리즈, 일반 ESP32 시리즈 등 목적에 맞도록 제품들이 분화되어 판매되고 있습니다.
ESP32를 배터리 환경에서 사용한다면?
PC가 아무리 좋아졌다고 그걸 들고다니는건 무리입니다. 다만 사람들은 PC가 좋아지니 그걸 들고 다닐 생각을 하기 시작했고, 그 시장의 목소리가 스마트폰을 탄생시켜 현재는 되돌아갈 수 없는 삶의 모습을 만들었습니다. 조금은 망상이지만 ESP32도 비슷한 길을 걷지 않을까 싶습니다. 지금은 DevKit을 구입해 USB 전원을 인가한 후 둠을 돌리고, 리눅스도 돌리고 있습니다(!). 그런데 시간이 흐르며 충분히 요건만 된다면 ESP32가 삶에 적극적으로 녹아드는 건 시간문제같습니다.
서론이 길고 길었는데, 결과적으로 이 문서를 작성하는 이유는 단 한 가지입니다. 제품화를 할 때 겪는 전원 공급 문제를 해결하는 접근 과정을 서술해보고자 합니다. ESP32는 3.0V ~3.3V@Typ: 50mA, Max: 500mA 로 동작합니다. 이 때 전원공급용으로 많이들 사용하는 Lithum-Polymer(lipo) 배터리는 4.2V-2.8V의 전압 범위를 가지고 있어 ESP32에 바로 배터리를 연결하면 배터리의 잔량에 따라 고장이 날 수 있습니다. 그럼 어째서 내가 쓰고 있는 ESP-32는 일반 5V USB 커넥터를 이용해 전원을 공급해도 멀쩡한가? 그건 보드에 레귤레이터가 포함되어서 그렇습니다.
(0V~00V) → 3.3V로 만들어 주는 마법의 Regulator
레귤레이터는 말 그대로 전압을 Regulate 해줍니다. 높은 전압의 전원을 작은 모듈에서도 사용할 수 있도록 합니다. 이번에 사용할 레귤레이터는 넓은 범위(0V~00V)의 입력을 받아 3.3V로 출력해주는 레귤레이터를 사용합니다. 레귤레이터는 크게 Boost-Buck Converter(DC-DC), Low Dropout(LDO) 두 가지가 있습니다.
Boost-Buck Converter(DC-DC) | SMPS처럼 전압을 스위칭해주는 IC와 인덕터, 캐패시터를 사용해 전압 강하, 혹은 승압을 합니다. 대부분의 경우에서 90%이상의 훌륭한 전력 효율을 보여주지만, 말 그대로 SMPS이기 때문에 회로가 복잡해지고, 또 회로 내부에서 주파수를 일으키는 문제가 있습니다.
Low Dropout(LDO) | 저항과 비슷한 개념입니다. 인가 전압과 출력 전압과의 전위차를 그냥 열로 변환시켜 안정적인 전압을 만들어냅니다. 인가전압과 출력 전압의 크기 차이가 크지 않을수록 효율이 좋습니다. 그 반대의 경우는 효율이 매우 안좋습니다. 예를 들어, 7V 전원을 인가받아 3.3V 출력을 낸다 했을 때, 3.7V에 해당하는 에너지를 모두 열로 써버리니, 실제 회로에서 소모하는 에너지보다 전압 강하에 더 많은 에너지를 사용하는 악효과가 나기도 합니다. 그러나 회로 구성이 거의 저항 연결하는것 만큼이나 간단해서, 많은 아두이노와 ESP 개발 보드에 사용되고 있습니다.
이렇게만 보면 DC-DC 레귤레이터가 더 좋은 것 같지만...
단순 설명만으로는 LDO를 사용하는 이유가 전혀 없어보입니다. 회로야 눈 한 번 질끈 감고 복잡하게 만들면 될텐데, 왜 그럼에도 LDO를 사용할까요? 아무리 생각해도 배터리를 사용하는 제품들은 아무리 생각해도 DC-DC 레귤레이터가 더 좋아보입니다. 저도 처음에는 그렇게 생각했지만, DC-DC 레귤레이터의 사용 용도가 한정적일 수 밖에 없는 몇 가지 이유를 알게 되었습니다.
1. 회로를 구성하는 스위칭 IC가 상대적으로 비싸다. 이 부분은 충분히 찾아보지 않아 확실하지는 않습니다. 쓸만한 성능의 DC-DC 레귤레이터를 사용하기 위해 제품들을 찾아보면 거의 US$1이 넘어갑니다. US$2하는 경우도 있습니다. 참고로 ESP32가 US$5정도 합니다. ESP32가 말도 안되게 저렴해서 상대적으로 비싸보이는 게 있긴 한데, 한정된 예산 안에서 전원부에만 US$1.5 가량을 투자하는 게 합리적인가 의구심이 듭니다.
2. 90%의 높은 효율, 언제나 좋아보이지만 그렇지 않다. 10mA 소모하는 회로가 있다고 가정해보겠습니다. Buck-Boost Converter는 효율이 90%니 1mA를 소모합니다. 같은 회로에서 LDO는 50uA를 소모하는 경우가 있습니다.
LDO의 특성에 따라 다르지만 Vin이 3.0~4.2이고 Vout이 3.3인 경우 대략 이정도 효율이 나옵니다. (정확하지는 않습니다.) LDO 제품에 따른 편차를 감안해도 소비전력 차이는 최대 10~15%정도 납니다. ESP32가 평균적으로 50mA를 소모한다 가정하면, 전원 회로에서 소비하는 전류는 DC-DC 레귤레이터(효율 95%)를 사용했을 때 2.5mA, LDO 레귤레이터(효율 80%)를 사용했을 때 7.5mA정도 소모하게 됩니다. 물론 이 계산 역시 DC-DC 레귤레이터가 좋은 거고, LDO가 나쁜 거라 가정했을 때 얘기입니다. DC-DC 레귤레이터의 효율을 90%로 낮추고, 배터리 전압이 3.7V 전후에서 머무르는 기간까지 고려하면 두 레귤레이터의 소모전류에는 큰 차이가 없습니다.
이제 배터리를 사용하는 ESP32 프로젝트에 맘놓고 LDO를 사용해보자!
사용하기도 간편하고, 효율도 괜찮고, 가격도 적당한 LDO는 정말 귀염둥이입니다. 그런데 이 친구들, 종류와 특성이 너무 다양해서 어떤 친구가 괜찮은지 찾기가 어렵습니다. 웹을 돌아다니다보니 Mouser Korea에서 좋은 LDO를 찾을 수 있었습니다. 일단 ESP32에 사용할 수 있도록 Vout = 3.3V에 허용전류 500mA 이상인 친구들로 추려서 리스트를 뽑아봤습니다.
처음에는 대기전류가 150nA라는데 혹해서 NCP606을 사용해볼까 했었습니다. 그런데 데이터시트를 보니 대기전류가 150nA가 아니라 150uA인 것을 보고 깔끔하게 마음을 접고, 여러 면에서 괜찮은 XC6220B331MR-G LDO 레귤레이터를 사용하기로 했습니다. 표에는 가격이 1174원으로 나옵니다. 그러나 JLCPCB에서는 US$0.6정도로 합리적인 가격입니다.
마치며
부품을 선정하는데 있어 데이터시트를 계속 참고하고 Fact에 기반한 사실을 전달드려야 하는데, 그럴 시간이 없다 보니 이번 포스팅은 조금 전문성이 떨어집니다. 이 점 양해해 주시고 LDO가 너무 나쁜 친구는 아니구나~ 정도로만 이 글을 받아들이셨으면 합니다.
긴 글 읽어주셔서 감사합니다. 글이 도움이 되셨다면 ❤️와 광고클릭 부탁드립니다.