본문 바로가기
ESP32/ESP32

ESP32 PinMap

by 빈이쥬 2024. 9. 26.

ESP32 칩에는 여러 기능이 있는 48개의 핀이 있습니다. 모든 ESP32 개발 보드에서 모든 핀이 노출되어 있지 않으며 일부 핀은 사용할 수 없습니다.

 

-ESP-WROOM-32 핀아웃-

 

esp32 가이드 

https://randomnerdtutorials.com/getting-started-with-esp32/

 

Getting Started with the ESP32 Development Board | Random Nerd Tutorials

This is a getting started guide for the ESP32 Development board. The ESP32 is the ESP8266 sucessor. Loaded with new features: WiFi, Bluetooth, dual core, ...

randomnerdtutorials.com

 

ESP32 주변 장치

  • 18개의 아날로그-디지털 변환기(ADC) 채널
  • 3개의 SPI 인터페이스
  • 3개의 UART 인터페이스
  • 2개의 I2C 인터페이스
  • 16개 PWM 출력 채널
  • 2개의 디지털-아날로그 변환기(DAC)
  • 2개의 I2S 인터페이스
  • 10개의 터치 감지 GPIO

 

 

다음 표는 입력, 출력으로 사용하기에 가장 좋은 핀과 주의해야 할 핀을 보여줍니다.

녹색으로 강조 표시된 핀은 사용해도 됩니다. 노란색으로 강조 표시된 핀은 사용해도 되지만, 주로 부팅 시 예상치 못한 동작이 발생할 수 있으므로 주의해야 합니다. 빨간색으로 강조 표시된 핀은 입력이나 출력으로 사용하지 않는 것이 좋습니다.'

 

GPIO 입력 출력 비고
0 pull up OK 부팅시 PWM 신호 출력 
1 TX pin OK  
2 OK OK 플래싱모드로 들어가려면 LOW상태
3 OK RX pin 부팅시 HIGH 신호 출력
4 OK OK  
5 OK OK 부팅시 PWM 신호 출력,strapping pin
6 x x  SPI 플래시에 연결됨
7 x x  SPI 플래시에 연결됨
8 x x  SPI 플래시에 연결됨
9 x x  SPI 플래시에 연결됨
10 x x  SPI 플래시에 연결됨
11 x x  SPI 플래시에 연결됨
12 OK OK 부팅 중 HIGH 신호시 부팅 실패,strapping pin
13 OK OK  
14 OK OK 부팅시 PWM 신호 출력
15 OK OK 부팅시 PWM 신호 출력,strapping pin
16 OK OK  
17 OK OK  
18 OK OK  
19 OK OK  
21 OK OK  
22 OK OK  
23 OK OK  
25 OK OK  
26 OK OK  
27 OK OK  
32 OK OK  
33 OK OK  
34 OK   입력만 가능
35 OK   입력만 가능
36 OK   입력만 가능
39 OK   입력만 가능

 

 

입력 전용 핀

GPIO 34~39는 GPI(입력 전용 핀)입니다. 이 핀에는 내부 풀업 또는 풀다운 저항이 없습니다. 출력으로 사용할 수 없으므로 이 핀은 입력으로만 사용하세요.

 

 SPI 플래시 핀

SPI 플래시에 연결되어 있으며 다른 용도로는 권장되지 않습니다. 따라서 프로젝트에서 이러한 핀을 사용하지 마십시오.

  • GPIO 6(SCK/CLK)
  • GPIO 7(SDO/SD0)
  • GPIO 8(SDI/SD1)
  • GPIO 9(SHD/SD2)
  • GPIO 10(SWP/SD3)
  • GPIO 11(CSC/CMD)

정전식 터치 GPIO

ESP32에는 10개의 내부 정전식 터치 센서가 있습니다. 이 센서는 인간의 피부와 같이 전하를 유지하는 모든 것의 변화를 감지할 수 있습니다. 따라서 손가락으로 GPIO를 터치할 때 유도되는 변화를 감지할 수 있습니다

  • T0(GPIO 4)
  • T1(GPIO 0)
  • T2(GPIO2)
  • T3(GPIO 15)
  • T4(GPIO 13)
  • T5(GPIO 12)
  • T6(GPIO 14)
  • T7(GPIO 27)
  • T8(GPIO 33)
  • T9(GPIO 32)

아날로그-디지털 변환기(ADC)

ESP32에는 18 x 12비트 ADC 입력 채널이 있습니다. 다음은 ADC로 사용할 수 있는 GPIO와 해당 채널입니다.

  • ADC1_CH0(GPIO 36)
  • ADC1_CH1(GPIO 37)
  • ADC1_CH2(GPIO 38)
  • ADC1_CH3(GPIO 39)
  • ADC1_CH4(GPIO 32)
  • ADC1_CH5(GPIO 33)
  • ADC1_CH6(GPIO 34)
  • ADC1_CH7(GPIO 35)
  • ADC2_CH0(GPIO 4)
  • ADC2_CH1(GPIO 0)
  • ADC2_CH2(GPIO2)
  • ADC2_CH3(GPIO 15)
  • ADC2_CH4(GPIO 13)
  • ADC2_CH5(GPIO 12)
  • ADC2_CH6(GPIO 14)
  • ADC2_CH7(GPIO 27)
  • ADC2_CH8(GPIO 25)
  • ADC2_CH9(GPIO 26)

ADC 입력 채널은 12비트 분해능을 갖습니다. 즉, 0~4095 범위의 아날로그 판독값을 얻을 수 있으며, 여기서 0은 0V에 해당하고 4095~3.3V에 해당합니다. 또한 코드와 ADC 범위에서 채널의 분해능을 설정할 수 있습니다.

ESP32 ADC 핀은 선형적인 동작을 하지 않습니다. 아마도 0과 0.1V, 또는 3.2와 3.3V를 구별하지 못할 것입니다. ADC 핀을 사용할 때 이 점을 염두에 두어야 합니다. 다음 그림에 표시된 것과 유사한 동작을 얻게 됩니다.

 

디지털-아날로그 변환기(DAC)

ESP32에는 디지털 신호를 아날로그 전압 신호 출력으로 변환하기 위한 2 x 8비트 DAC 채널이 있습니다. 다음은 DAC 채널입니다.

  • DAC1(GPIO25)
  • DAC2(GPIO26)

RTC GPIO

ESP32에는 RTC GPIO 지원이 있습니다. RTC 저전력 서브시스템으로 라우팅된 GPIO는 ESP32가 딥 슬립 상태일 때 사용할 수 있습니다. 이러한 RTC GPIO는 초저전력(ULP) 코프로세서가 실행 중일 때 ESP32를 딥 슬립 상태에서 깨우는 데 사용할 수 있습니다.

  • RTC_GPIO0(GPIO36)
  • RTC_GPIO3(GPIO39)
  • RTC_GPIO4(GPIO34)
  • RTC_GPIO5(GPIO35)
  • RTC_GPIO6(GPIO25)
  • RTC_GPIO7(GPIO26)
  • RTC_GPIO8(GPIO33)
  • RTC_GPIO9(GPIO32)
  • RTC_GPIO10(GPIO4)
  • RTC_GPIO11(GPIO0)
  • RTC_GPIO12(GPIO2)
  • RTC_GPIO13(GPIO15)
  • RTC_GPIO14(GPIO13)
  • RTC_GPIO15(GPIO12)
  • RTC_GPIO16(GPIO14)
  • RTC_GPIO17(GPIO27)

PWM

ESP32 LED PWM 컨트롤러는 서로 다른 속성을 가진 PWM 신호를 생성하도록 구성할 수 있는 16개의 독립 채널을 가지고 있습니다. 출력으로 작동할 수 있는 모든 핀은 PWM 핀으로 사용할 수 있습니다(GPIO 34~39는 PWM을 생성할 수 없음).

 

I2C

ESP32에는 두 개의 I2C 채널이 있으며 모든 핀은 SDA 또는 SCL로 설정할 수 있습니다. Arduino IDE와 함께 ESP32를 사용할 때 기본 I2C 핀은 다음과 같습니다.

  • GPIO 21(SDA)
  • GPIO 22(SCL)
Wire.begin(SDA, SCL);

 

SPI

기본적으로 SPI의 핀 매핑은 다음과 같습니다.

 

인터럽트

모든 GPIO는 인터럽트로 구성될 수 있습니다.

 

스트래핑 핀

ESP32 칩에는 다음과 같은 스트래핑 핀이 있습니다.

  • GPIO 0 (부팅 모드로 들어가려면 LOW여야 함)
  • GPIO 2(부팅 중에는 플로팅 또는 LOW 상태여야 함)
  • 4번
  • GPIO 5(부팅하는 동안 HIGH여야 함)
  • GPIO 12(부팅하는 동안 LOW여야 함)
  • GPIO 15(부팅하는 동안 HIGH여야 함)

이것들은 ESP32를 부트로더 또는 플래싱 모드로 전환하는 데 사용됩니다. 내장 USB/Serial이 있는 대부분의 개발 보드에서 이러한 핀의 상태에 대해 걱정할 필요가 없습니다. 보드는 핀을 플래싱 또는 부트 모드에 적합한 상태로 전환합니다.

하지만 해당 핀에 주변 장치가 연결되어 있는 경우 새 코드를 업로드하거나 ESP32를 새 펌웨어로 플래싱하거나 보드를 재설정하는 데 문제가 있을 수 있습니다. 스트래핑 핀에 주변 장치가 연결되어 있고 코드를 업로드하거나 ESP32를 플래싱하는 데 문제가 있는 경우 해당 주변 장치로 인해 ESP32가 올바른 모드로 전환되지 않을 수 있습니다. 

 

BOOT 시 HIGH 

일부 GPIO는 부팅 또는 재설정 시 상태를 HIGH로 변경하거나 PWM 신호를 출력합니다. 즉, 이러한 GPIO에 출력을 연결한 경우 ESP32가 재설정되거나 부팅될 때 예상치 못한 결과가 발생할 수 있습니다.

  • GPIO1
  • GPIO 3
  • GPIO 5
  • GPIO 6~GPIO 11(ESP32 통합 SPI 플래시 메모리에 연결됨 - 사용 권장하지 않음).
  • GPIO 14
  • GPIO 15

활성화 (EN)

Enable(EN)은 3.3V 레귤레이터의 enable 핀입니다. 풀업되어 있으므로 접지에 연결하여 3.3V 레귤레이터를 비활성화합니다. 즉, 이 핀을 푸시버튼에 연결하여 예를 들어 ESP32를 재시작할 수 있습니다.

 

GPIO 전류 

ESP32 데이터시트에 따르면 GPIO당 인출되는 절대 최대 전류는 40mA입니다.