차완기 - @6/27/2023, 11:16:00 PM
그래도 애정이 있었으니까…
지난 2021년 8월 ESPRESSIF에서 IEEE802.15.4, 즉 ZigBee를 지원하는 MCU를 공개했었습니다. 그 당시 아두이노 프레임워크를 이용해 ESP32를 자주 사용하던 때여서 ZigBee를 지원하는 MCU가 출시된다는 소식에 상당한 기대감을 가지게 되었습니다.
하지만 그것도 잠시, 오랜 시간동안 기다리다 보니 잊혀지기도 하였고 그동안 HomeAssistant를 활용해 Wi-Fi 위주 IoT 환경을 꾸리다 보니 관심이 줄어들게 되었습니다.
결정적으로 최근 기습적으로(?) ZigBee를 달고 출시된 ESP32-C6로 인해 H2에 대한 기다림은 사라지게 되었죠 ㅋㅋ
그러던 중 커뮤니티를 통해 ESP32-H2가 출시되었다는 소식을 듣게 되어 “그래도 애정이 있었으니까..” 하며 개발보드를 구매하기로 하였습니다.
개발자 키트는 10달러로 판매가가 선정되어 있었습니다. 뒤에서 알아보겠지만 H2는 보조 프로세서 용도의 라인업이라 보다 저렴할 것으로 예상했는데, C6때보다 더 비싼 가격으로 선정된 것을 알 수 있었습니다. 아무래도 출시 초기라 그런게 아닐까 싶네요.
ESP32-H2-DevKitM-1 도착
구매한 제품은 정식 출시 전의 개발자 샘플으로, 정식 버전과 차이가 있을 수 있습니다.
구매한 시점 기준으로 ESP32-H2-DevKitM-1-N4 모델만이 구매가 가능하였는데요, 후술하겠지만 메인 MCU보다는 통신용 모듈이 주 목적인 MCU라 작은 크기의 ESP-32-MINI-1 모듈이 박혀있는것을 확인할 수 있습니다.
MINI 모듈은 처음 보는것 같습니다. 엄청 작네요
개발자 샘플이다 보니 아직 테스트중인 부분이 있나봅니다. 동봉된 종이의 한 면에는 펌웨어의 주의사항이, 반댓면에는 하드웨어의 주의사항이 기록되어 있었습니다.
•
펌웨어
◦
현재 ESP-IDF git 리포지토리의 master 브랜치에서 개발자 샘플인 ESP32-H2 v0.1를 미리보기로 지원하고 있음. 버그픽스가 주기적으로 이루어지니 자주 pull할 것.
◦
•
하드웨어
◦
실제 양산 제품과 다를 수 있음.
◦
ADC는 캘리브레이션이 되지 않음
◦
저전력 기능(Light-sleep, Deep-sleep)은 펌웨어 코드가 아직 구현되지 않음. 조만간 업데이트될 예정.
◦
ESP RainMaker Cloud 플렛폼에서 ESP32-H2를 지원할 예정이며, 자세한 내용은 지원에 문의.
데이터시트 살펴보기
일단 데이터시트를 먼저 살펴보기로 하였습니다. 글 작성 당시 기준 아직 정식 버전이 아닌지 “PRELIMINARY” 워터마크가 붙어있었습니다.
표지에는 굵직굵직한 내용만 있네요. BLE와 IEEE802.15.4를 지원하는 MCU라 합니다. 그런데.. 모델 구분에 In-Package Flash….? 세상에.. 이미 ESP32-H2-MINI 모듈 자체도 작기 때문에 SoC를 직접 사용할 일은 적어보이지만 굳이 설계할 일이 있다면 편리할 것 같습니다.
개요를 살펴보면 다음과 같습니다.
•
연결성
◦
Bluetooth 5(LE), Blutooth mesh
◦
Thread, ZigBee
•
일반
◦
32-bit RISC-V @ 96 MHz
◦
32 KB SRAM
◦
128 KB ROM
◦
4 KB LP memory
◦
2 MB or 4 MB SoC 내장 Flash
초-저전력이라는 문구가 있어 동일하게 ZigBee와 BLE를 지원하는 ESP32-C6과 전류 소비를 비교해보았습니다. RF 동작 시에는 2배, 절전 상태에서는 대략 3배까지 소비 전류가 낮습니다.
. | ESP32-C6 | ESP32-H2 |
CPU | RISC-V 32-bit @ 160 MHz (HP)
RISC-V 32-bit @ 20 MHz (LP) | RISC-V 32-bit @ 96 MHz |
CPU Clocks | 외장 메인 클럭 필수
내장 RC 오실레이터 20 MHz | 외장 메인 클럭 필수
내장 RC 오실레이터 17.5 MHz |
Memory | 512 KB HP SRAM
16 KB LP SRAM | 32 KB SRAM
4 KB LP SRAM |
Flash | 최대 16 MB (외장, SPI, DSPI, QSPI, QPI)
4 MB (in-package 모델 한정, QSPI) | 2, 4 MB (in-package, QSPI) |
Wi-Fi | IEEE 802.11ax (2.4 GHz, non-AP)
IEEE 802.11.b/g/n | - |
Bluetooth | Bluetooth LE 5.3 | Bluetooth LE 5.3 |
ZigBee | 지원 | 지원 |
GPIO | QFN40: 30 - 6 (외장 Flash 필수)
QFN32: 22 - (6) (Flash 내장) | 19 |
ADC | 12-bit SAR, 7 채널
내장 온도센서 | 12-bit SAR, 5 채널
내장 온도센서 |
etc | USB Serial/JTAG Controller | USB Serial/JTAG Controller |
끝으로 ZigBee를 지원하는 두 MCU를 비교해보았습니다. C6는 성능이 높고 기능이 많은 반면, H2는 성능이 낮은 대신 아마도(?) 저렴할 것으로 예상되어 IoT 디바이스 제작에는 H2쪽을 사용하게 될 것 같습니다.
C6는 디스플레이가 사용되는 디바이스에 적절할 것 같네요.
개발보드 살펴보기
이제 하드웨어를 살펴보겠습니다.
•
USB x2
C타입 USB 포트가 2개 존재합니다. 제품 구매 당시 썸네일에 Micro-B가 사용된 이미지가 올라와 있어 조금 실망했었는데, 실제 받아보니 C타입이네요. 행복합니다.
2개의 포트 중 윗쪽은 USB-UART 칩을 거쳐 MCU에 연결되는 전통적인 업로딩 포트이고 아랫쪽 포트는 CDC와 JTAG를 지원하는 USB 포트입니다. 참고로 DFU 기능은 포함되지 않았습니다.
•
버튼 x2
리셋 버튼과 부팅 모드 선택을 위한 버튼입니다. 특이하게도 H2는 기존 ESP32와 다르게 9번 GPIO가 부팅 모드 선택으로 묶여있었습니다.
•
WS2812B (a.k.a. NeoPixel)
네오픽셀이라고도 부르는 WS2812B RGB LED가 하나 붙어있습니다. 이건 이제 ESPRESSIF DevKit의 전통이 된 것 같네요.
•
전류 측정용 헤더 핀
ESP32-H2 모듈에 공급되는 3.3 V 전원 라인과 직렬로 연결된 헤더 핀입니다. ESP32-H2의 전류 측정 목적으로 사용할 수 있으며, 평상시에는 점퍼로 꽂아 사용하면 됩니다.
•
32 kHz 크리스탈
RTC를 위한 32 Khz 외장 크리스탈을 연결할 수 있는 자리가 마련되어 있습니다. 무슨 이유에서인지 자리는 나와있지만 부품은 붙어있지 않고 대신 0옴 저항으로 GPIO13, 14에 점프되어 있습니다. 필요하면 알아서 붙여라.. 인 것 같습니다.
간단한 테스트
이미 ESP32-C6에서 ZigBee는 충분하게 맛을 보았기 때문에 온보드 LED를 켜는 예제만 올려보고 마치도록 하겠습니다.
Master Branch의 최신 ESP-IDF(v5.1.0)를 다운받아야 ESP32-H2를 사용할 수 있습니다.
잘 업로드되고 잘 작동하네요.
요건 부품함 구석에 잘 모셔두었다가 프로젝트를 진행할 일이 있을 때 다시 꺼내서 사용해봐야겠습니다.