ESP32

**ESP32**는 와이파이 및 블루투스 기능을 모두 통합한 저비용, 에너지 효율적인 마이크로컨트롤러 제품군이다. 이 칩들은 듀얼 코어 및 싱글 코어 변형으로 제공되는 텐실리카 Xtensa LX6 마이크로프로세서, Xtensa LX7 듀얼 코어 프로세서 또는 단일 코어 RISC-V 마이크로프로세서를 포함한 다양한 처리 옵션을 특징으로 한다. 또한 ESP32는 내장 안테나 스위치, RF 발룬, 전력 증폭기, 저잡음 수신기, 필터 및 전력 관리 모듈과 같은 무선 데이터 통신에 필수적인 구성 요소를 통합한다.

일반적으로 ESP32는 특정 장치용 인쇄 회로 기판에 내장되거나 다양한 GPIO 핀 및 커넥터를 포함하는 개발 키트의 일부로 제공되며, 구성은 모델 및 제조업체에 따라 달라진다. ESP32는 에스프레시프 시스템즈에서 설계했으며 TSMC의 40&nbsp;nm 공정을 사용하여 제조한다. 이는 ESP8266 마이크로컨트롤러의 후속 제품이다.

## 특징
섬네일|upright=1.5|ESP32 기능 블록 다이어그램
[섬네일|ESP32 [다이 샷. 칩 영역 대부분은 상단 금속층의 전력 분배 네트워크로 덮여 있다.]]
ESP32의 특징은 다음과 같다.
* 프로세서:
** 중앙 처리 장치: 160 또는 240&nbsp;MHz에서 작동하며 최대 600&nbsp;DMIPS 성능을 내는 Xtensa 듀얼 코어 (또는 싱글 코어) 32비트 LX6 마이크로프로세서
** 초저전력 (ULP) 코프로세서
* 메모리: 520&nbsp;KiB RAM, 448&nbsp;KiB ROM
* 무선 연결:
** 와이파이: 802.11 b/g/n
** 블루투스: v4.2 BR/EDR 및 BLE (와이파이와 라디오 공유)
* 주변 장치 인터페이스:
** 34개 프로그래밍 가능 GPIO
** 10 × 정전식 감응 센서 (정전식 감응 GPIO)
** 2 × 12비트 SAR ADC, 최대 18개 채널, 4단계 감쇠
** 2 × 8비트 디지털-아날로그 변환회로 (ESP32-C3 및 ESP32-S3 제외)
** 델타-시그마 변조 이진 출력 (최대 8채널)
** 모터 펄스 폭 변조
** LED 펄스 폭 변조 (최대 16채널)
** 적외선 원격 컨트롤러 (TX/RX, 최대 8채널)
** 펄스 카운터 (완전 직교 인코더 디코딩 가능)
** 표준 통신 인터페이스:
*** 4 × 직렬 주변기기 인터페이스 버스
*** 2 × I²S 인터페이스
*** 2 × I²C 인터페이스
*** 3 × UART
*** SD/SDIO/CE-ATA/MMC/eMMC 호스트 컨트롤러
*** SDIO/SPI 슬레이브 컨트롤러
*** 전용 DMA 및 계획된 IEEE 1588 정밀 시각 프로토콜 지원을 포함한 이더넷 MAC 인터페이스
*** CAN 버스 2.0
* 보안:
** WPA, WPA2, WPA3 (버전에 따라 다름) 및 WLAN Authentication and Privacy Infrastructure (WAPI)를 포함한 모든 IEEE 802.11 표준 보안 기능 지원
** 보안 부팅
** 플래시 암호화
** 1024비트 OTP, 고객용은 최대 768비트
** 암호화 하드웨어 가속: 고급 암호화 표준, SHA-2, RSA, 타원 곡선 암호, 난수 발생기
* 전력 관리
** 내부 저전압 강하 레귤레이터
** RTC를 위한 개별 전력 도메인
** 5&nbsp;μA 딥 슬립 전류
** GPIO 인터럽트, 타이머, ADC 측정, 정전식 터치 센서 인터럽트로부터 깨어나기

## ESP32-xx 제품군
오리지널 ESP32가 출시된 이래로 여러 변형이 소개되고 발표되었다. 이들은 ESP32 마이크로컨트롤러 제품군을 구성한다. 이 칩들은 다른 중앙 처리 장치와 기능을 가지고 있지만, 모두 동일한 SDK를 공유하고 있으며 대부분 코드 호환성이 있다. 또한 오리지널 ESP32는 수정되었다 (예: ESP32 ECO V3 참조).

### ESP32
* Xtensa 싱글/듀얼 코어 32비트 LX6 마이크로프로세서
* 단정밀도 부동소수점 장치 (FPU) 지원
* 와이파이: 802.11 b/g/n
* 블루투스: v4.2 BR/EDR 및 BLE (와이파이와 라디오 공유)
* 34 GPIO
* 2 × 12비트 SAR ADC, 최대 18채널
* 2 × 8비트 DAC

### ESP32-S2
* 싱글 코어 Xtensa LX7 CPU, 최대 240&nbsp;MHz (20&nbsp;MHz에서 실행되는 ULP 코프로세서 포함)
* 부동소수점 장치 없음 (FPU 없음)
* 320&nbsp;KiB SRAM, 128&nbsp;KiB ROM, 및 16&nbsp;KiB RTC SRAM
* 와이파이 2.4&nbsp;GHz (IEEE 802.11b/g/n)
* 블루투스 없음
* 43 GPIO
* 2 × 13비트 SAR ADC, 최대 20채널
* 2 × 8비트 DAC
* USB 온더고

### ESP32-S3
섬네일|ESP32-S3-Wroom-1 보드
* 듀얼 코어 Xtensa LX7 CPU, 최대 240&nbsp;MHz, 및 단정밀도 부동소수점 장치 지원
** 머신러닝 애플리케이션 가속을 위한 추가 명령어
* 512&nbsp;KiB SRAM, 384&nbsp;KiB ROM, 및 16&nbsp;KiB RTC SRAM
* 쿼드 SPI 또는 옥탈 SPI를 통해 외부 PSRAM 및 플래시에 연결 가능하며, 동일한 32 MiB 주소 공간 공유
* 약 17.5&nbsp;MHz 클럭 속도로 작동하는 초저전력 RISC-V (RV32IMC) 코프로세서
* 이전 ESP32 및 ESP32-S2와 유사한 초저전력 유한 상태 기계 (FSM) 코프로세서
* 와이파이 2.4&nbsp;GHz (IEEE 802.11 b/g/n)
* 블루투스 5 (LE)
* 45 GPIO
* 통합 이더넷 MAC 없음
* 2 × 12비트 SAR ADC, 최대 20채널
* USB 온더고

### ESP32-C2
* 최대 120&nbsp;MHz로 작동하는 32비트 RISC-V 싱글 코어 프로세서, RV32IMC ISA 구현
* 온칩 576&nbsp;KB ROM, 272&nbsp;KB SRAM (16 KB 캐시용)
* 와이파이 2.4 GHz (IEEE 802.11b/g/n)
* 블루투스 5 (LE)
* 14 GPIO (QFN24)
* SPI, UART, I2C, LED PWM 컨트롤러, General DMA 컨트롤러 (GDMA), SAR ADC, 온도 센서
* USB 미지원

### ESP32-C3
[섬네일|ESP32-C3-32S가 장착된 [NodeMCU 보드]]
* 싱글 코어 32비트 RISC-V CPU, 최대 160&nbsp;MHz
* 400&nbsp;KiB SRAM, 384&nbsp;KiB ROM, 및 8 KiB RTC SRAM
* 와이파이 2.4&nbsp;GHz (IEEE 802.11b/g/n)
* 블루투스 5 (LE)
* 22 (QFN32) 또는 16 (QFN32) 또는 15 (ESP8685 QFN28) GPIO
* 2 × 12비트 SAR ADC
* ESP8266과 핀 호환
* USB 장치

### ESP32-C6
* 고성능 32비트 RISC-V CPU, 최대 160&nbsp;MHz, RV32IMAC 구현
* 저전력 32비트 RISC-V CPU, 최대 20&nbsp;MHz, RV32IMAC 구현
* 512&nbsp;KiB SRAM 및 320&nbsp;KiB ROM
* IEEE 802.11ax (Wi-Fi 6) 2.4&nbsp;GHz에서, 11ax 모드에서 20&nbsp;MHz 대역폭, 11b/g/n 모드에서 20 또는 40&nbsp;MHz 대역폭 지원
* IEEE 802.15.4 (스레드 + 직비)
* 블루투스 5.3 (LE)
* 30 (QFN40) 또는 22 (QFN32) GPIO
* USB 장치

### ESP32-H2
* 싱글 코어 32비트 RISC-V CPU, 최대 96&nbsp;MHz
* 256&nbsp;KB SRAM
* IEEE 802.15.4 (스레드 + 직비)
* 블루투스 5.3 (LE)
* 와이파이 미지원
* 19 GPIO
* USB 장치

## 발표됨
### ESP32-C5
* 싱글 코어 32비트 RISC-V CPU, 최대 240&nbsp;MHz
* 저전력 32비트 RISC-V CPU, 최대 40 MHz.
* 384&nbsp;KB SRAM 및 320&nbsp;KB ROM
* IEEE 802.11ax (Wi-Fi 6) 2.4 및 5&nbsp;GHz에서, 11ax 모드에서 20&nbsp;MHz 대역폭, 11b/g/n 모드에서 20 또는 40&nbsp;MHz 대역폭 지원
* IEEE 802.15.4 (스레드 + 직비)
* 블루투스 5 (LE)
* 20개 이상 GPIO

### ESP32-P4
* 고성능 듀얼 코어 32비트 RISC-V CPU, 최대 400&nbsp;MHz
** RV32IMAFC_Zicsr_Zifencei 및 사용자 지정 AI/벡터 명령어 구현
** 단정밀도 부동소수점 장치 (FPU) 지원
* 저성능 싱글 코어 32비트 RISC-V CPU, 최대 40&nbsp;MHz
** RV32IMAC_Zicsr_Zifencei ISA 확장 구현
* 고성능 코어 시스템에 768 KiB SRAM
* 고성능 코어 시스템에 8 KiB TCM
* 저전력 서브시스템에 32 KiB SRAM
* PSRAM 지원
* H.264를 포함한 다양한 미디어 인코딩 프로토콜을 위한 통합 하드웨어 가속기
* 와이파이 또는 블루투스 없음
* 50개 이상 GPIO

## QFN 패키지 칩 및 모듈
ESP32는 49개의 패드를 가진 다양한 크기의 QFN 패키지에 담겨 있다. 구체적으로는 측면에 48개의 연결 패드와 하단에 하나의 큰 열 패드 (접지 연결)가 있다.

### 칩
ESP32 시스템 온 칩 집적회로는 6&nbsp;mm × 6&nbsp;mm 및 5&nbsp;mm × 5&nbsp;mm 크기의 QFN 패키지에 담겨 있다.

2020년, ESP32-D0WDQ6 및 ESP32-D0WD 칩은 V3 버전 (ESP32 ECO V3)이 출시되어 일부 버그를 수정하고 이전 버전보다 개선되었다.

### 모듈

ESP32 PICO system in package 모듈은 ESP32 실리콘 칩, 크리스탈 발진기, 플래시 메모리 칩, 필터 커패시터 및 RF 매칭 링크를 단일 7&nbsp;mm × 7&nbsp;mm 크기의 QFN 패키지에 결합한다.

처음 출시된 PICO는 ESP32-PICO-D4로, 240MHz의 듀얼 CPU, 4MiB 내장 플래시, 40MHz 발진기 및 34개의 GPIO를 갖추고 있다.

이후 2020년에 ESP32 ECO V3 웨이퍼를 기반으로 하는 ESP32-PICO-V3 및 ESP32-PICO-V3-02 모듈이 출시되었다.

2022년에는 USB OTG 및 내부 PSRAM이 포함된 ESP32-S3-PICO-1 모듈이 출시되었다.

## 인쇄 회로 기판
### 표면 실장 모듈 보드
ESP32 기반 표면 실장 인쇄 회로 기판 모듈은 ESP32 SoC를 직접 포함하며 다른 회로 기판에 쉽게 통합할 수 있도록 설계되었다. 아래 나열된 모듈의 PCB 트레이스 안테나에는 구불구불한 역F형 안테나 디자인이 사용된다. 플래시 메모리 외에도 일부 모듈에는 슈도정적 RAM (pSRAM)이 포함된다.

### 개발 및 기타 보드
섬네일|SparkFun Thing PlusESP32 WROOM
섬네일|ESP32 개발 보드, SH1106 OLED 디스플레이, 브레드보드에 USB 전력 측정기 연결
개발 및 브레이크아웃 보드는 배선을 확장하고 기능을 추가할 수 있으며, 종종 ESP32 모듈 보드를 기반으로 하여 개발 목적으로, 특히 브레드보드와 함께 사용하기 쉽도록 만들어진다.

† ESP32 SoC가 개발 보드에 직접 통합됨; 모듈 보드는 사용되지 않음.

## 프로그래밍
ESP32 프로그래밍에 사용되는 프로그래밍 언어, 프레임워크, 플랫폼 및 환경:

* ESP-IDF – ESP32, ESP32-S, ESP32-C 및 ESP32-H 시리즈 SoC를 위한 에스프레시프의 공식 IoT 개발 프레임워크.
* 아두이노-ESP32 – ESP32, ESP32-S2, ESP32-S3 및 ESP32-C3를 위한 아두이노 코어.
* ESP32forth – ESP32를 위한 FORTH 구현
* 에스프루이노 – Node.js를 밀접하게 에뮬레이트하는 JavaScript SDK 및 펌웨어
* 마이크로파이썬 (및 CircuitPython) – 마이크로컨트롤러를 위한 파이썬 3의 간결한 구현
* Mongoose OS – 마이크로컨트롤러의 연결된 제품을 위한 운영체제; JavaScript 또는 C로 프로그래밍 가능. 에스프레시프 시스템즈, AWS IoT, Google Cloud IoT에서 권장하는 플랫폼.
* ESP32를 위한 mruby
* ESP32를 위한 님
* NodeMCU – Lua 기반 펌웨어
* 러스트
* 스위프트
* 공식적으로 지원되는 Espressif 통합 개발 프레임워크 (ESP-IDF) 확장 프로그램을 포함한 비주얼 스튜디오 코드
* Zerynth – ESP32를 포함한 사물인터넷 및 마이크로컨트롤러를 위한 파이썬
* Matlab 시뮬링크

## 수용 및 사용
ESP32의 상업적, 산업적, 학문적 사용:

### 상업용 장치에서의 사용
* 알리바바 그룹의 IoT LED 손목 밴드, 2017년 그룹 연례 모임 참가자들이 사용. 각 손목 밴드는 "픽셀"로 작동하며, 조율된 LED 조명 제어 명령을 수신하여 "라이브 무선" 화면을 형성할 수 있도록 한다.
* 딩톡의 M1, 생체 인식 출퇴근 기록 시스템.
* Pium, 가정용 향수 및 아로마테라피 장치.
* 하드커널의 오드로이드 고, 오드로이드 10주년을 기념하여 제작된 ESP32 기반 휴대용 게임 장치 키트.
* 플레이데이트, 패닉 Inc.와 틴에이지 엔지니어링이 공동 개발한 휴대용 비디오 게임 콘솔.
* Octopus Energy Mini, ESP32-C6 기반 실시간 에너지 모니터.
* Mysa 스마트 온도 조절기, ESP32-WROOM 기반.

### 산업 장치에서의 사용
* TECHBASE의 Moduino X 시리즈 X1 및 X2 모듈은 산업 자동화 및 모니터링을 위한 ESP32-WROVER / ESP32-WROVER-B 기반 컴퓨터로, 디지털 입출력, 아날로그 입력 및 다양한 컴퓨터 네트워킹 인터페이스를 지원한다.
* NORVI IIOT 산업 장치는 산업 자동화 및 모니터링을 위한 ESP32-WROVER / ESP32-WROVER-B SOC를 갖추고 있으며, 디지털 입력, 아날로그 입력, 릴레이 출력 및 여러 통신 인터페이스를 제공한다. 확장 모듈로 LoRa 및 Nb-IoT를 지원한다.

### 학문적 사용
* ESP32 장치는 교육 환경 및 학술 연구 프로젝트에 활용된다. 예를 들어, 이 장치들은 다른 전기 가전제품의 현재 소비량과 계약된 전력 용량을 고려하여 전기차 충전을 모니터링하고 제어하도록 설계된 스마트 홈 시스템을 개발하는 데 사용되었다. 또한 ESP32는 저렴한 드론 제작과 같은 DIY 프로젝트에도 사용된다.

## ESP32의 문서화되지 않은 HCI 명령어

2025년 3월, Tarlogic Security의 연구원들은 ESP32 블루투스 펌웨어에서 문서화되지 않은 HCI(Host Controller Interface) 명령어를 발견했으며, 이는 그 기능과 잠재적 영향에 대한 논의를 촉발했다. 이 발견은 2025년 3월 6일 RootedCON 컨퍼런스에서 Tarlogic Security 팀에 의해 발표되었다.

식별된 명령어(예: Write Memory (0xFC02))는 주로 디버깅 및 테스트 목적으로 사용되는 공급업체별 HCI 명령어이다. 이러한 유형의 명령어는 개발 및 문제 해결에 도움을 주기 위해 블루투스 컨트롤러 구현에서 흔히 사용된다. 이들은 표준 HCI 명령어 세트의 일부가 아니며 일반적으로 통제된 환경에서 사용된다. 처음에는 "백도어"로 묘사되었지만, 추가 설명에서는 "문서화되지 않은 디버깅 기능"으로 분류되었다. 이 명령어는 표준 블루투스 연결을 통해 원격으로 접근할 수 없지만, 개체가 장치에 물리적으로 접근하거나 HCI-UART 구성으로 작동하는 경우 상호 작용할 수 있다.

에스프레시프 시스템즈는 이 명령어에 대해 명확하게 설명하며, 이들은 디버깅을 위한 것이며 정상 작동 조건에서는 보안 위험을 초래하지 않는다고 밝혔다. 회사는 이 명령어들이 원격으로 트리거될 수 없으며 표준 블루투스 작업에서 사용되지 않는다고 강조했다. 이 명령어들은 ESP32 칩에만 존재하며, ESP32-C, ESP32-S, ESP32-H 시리즈에는 포함되어 있지 않다. 보안 커뮤니티에서 제기된 우려를 해소하기 위해 에스프레시프는 향후 ESP-IDF 버전에 이 디버깅 명령어에 대한 접근을 제한하고 공급업체별 HCI 명령어에 대한 문서화를 개선하는 업데이트를 포함할 것이라고 발표했다. 이러한 조치는 투명성을 높이고 개발자들이 사용 가능한 기능에 대해 잘 알 수 있도록 하는 것을 목표로 한다.

## 같이 보기
* 사물인터넷
* 최신 ESP32 프로젝트 모음

## 각주

## 외부 링크
* 에스프레시프 ESP32 개요
* 에스프레시프 ESP32 자료
* 에스프레시프 ESP-IDF 프로그래밍 가이드
* 에스프레시프 ESP32 포럼
* https://gist.github.com/sekcompsci/2bf39e715d5fe47579fa184fa819f421

분류:마이크로컨트롤러