본문 바로가기
Embedded System/마이크로컨트롤러

ESP32-DevkitV4 GPIO 기능 정리

by MachineJW 2023. 4. 12.

ESP32-WROOM-32시리즈 회로도

1. ESP32-DevkitV4 개발보드에 포함되어 있는 기능 핀

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

(2) SPI 인터페이스

(3) UART 인터페이스

(4) I2C 인터페이스

(5) PWM 출력 채널

(6) 디지털-아날로그 컨버터(DAC)

(7) I2S 인터페이스

(8) 정전 용량 감지 GPIO

 

ADC(아날로그-디지털 변환기) 및 DAC(디지털-아날로그 변환기) 기능은 특정 고정 핀에 할당됩니다. 그러나 UART, I2C, SPI, PWM 등의 핀을 결정할 수 있습니다. 코드에서 할당하기만 하면 됩니다. 이것은 ESP32 칩의 다중화 기능으로 인해 가능합니다.

2. ESP32-DevkitV4 입출력

- 녹색 : 적합

- 노란색 : 부팅 시 예기치 않은 동작 가능

- 삘간색 : 입출력으로 사용하지 않는 것이 좋음

GPIO 34~39는 입력 전용 핀인 GPIO입니다. 이 핀에는 내부 풀 업 또는 풀다운 저항이 없습니다. 출력으로 사용할 수 없으므로 다음 핀을 입력으로만 사용하십시오. ( GPIO 34, GPIO 35, GPIO 36, GPIO 39 )

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

ESP32에는 18 x 12비트 ADC 입력 채널이 있습니다( ESP8266에는 1x 10비트 ADC만 있음). ADC 및 각 채널로 사용할 수 있는 GPIO는 다음과 같습니다.

 

ESP32로 아날로그 값을 읽으면 0V와 3.3V 사이의 다양한 전압 레벨을 측정할 수 있습니다. 그런 다음 측정된 전압은 0에서 4095 사이의 값에 할당됩니다. 여기서 0V는 0에 해당하고 3.3V는 4095에 해당합니다. 0V와 3.3V 사이의 모든 전압에는 그 사이의 해당 값이 지정됩니다.

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

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

다음은 DAC 채널입니다.

DAC1 (GPIO25)

DAC2 (GPIO26)

5. RTC GPIO

ESP32에는 RTC GPIO가 지원됩니다. RTC 저전력 하위 시스템으로 라우팅된 GPIO는 ESP32가 최대 절전 모드일 때 사용할 수 있습니다. 이러한 RTC GPIO는 ULP(초저전력) 보조 프로세서가 실행 중일 때 ESP32를 깊은 절전 모드에서 깨우는 데 사용할 수 있습니다. 다음 GPIO를 외부 웨이크업 소스로 사용할 수 있습니다.

  • 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)

6. PWM

ESP32 LED PWM 컨트롤러에는 16개의 독립적인 채널이 있어 다양한 속성을 가진 PWM 신호를 생성하도록 구성할 수 있습니다. 출력으로 작동할 수 있는 모든 핀은 PWM 핀으로 사용할 수 있습니다(GPIO 34~39는 PWM을 생성할 수 없음). PWM 신호를 설정하려면 코드에서 다음 매개변수를 정의해야 합니다.

신호의 주파수; 듀티 사이클; PWM 채널; 신호를 출력하려는 GPIO입니다.

7. I2C

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

  • GPIO 21(SDA)
  • GPIO 22(SCL)
/*Arduino*/
Wire.begin(SDA,SCL); // I2C라이브러리를 사용하여 다른 핀을 사용

8. SPI

SPI MOSI MISO CLK CS
VSPI 지피오 23 지피오 19 지피오 18 지피오 5
HSPI 지피오 13 지피오 12 지피오 14 지피오 15

9. 정전식 터치 GPIO

ESP32에는 10개의 내부 정전식 터치 센서가 있습니다. 이들은 인간의 피부와 같이 전하를 유지하는 모든 것의 변화를 감지할 수 있습니다. 따라서 손가락으로 GPIO를 터치할 때 발생하는 변화를 감지할 수 있습니다. 이 핀은 정전식 패드에 쉽게 통합할 수 있으며 기계식 버튼을 대체할 수 있습니다. 정전식 터치 핀은 ESP32를 깊은 절전 상태에서 깨우는 데에도 사용할 수 있습니다 .

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