[ESP32] ESP32-WROOM-32 DevKitC V4 개발 보드의 GPIO 활용성 살펴보기

* ESP32 개발 보드를 사용하며 기록 용도로 작성하는 포스팅입니다.

RB-Hexapod를 계획하면서 ESP32-Wroom-32 DevKitC V4 개발 보드를 이용해서 다이나믹셀 AX-12+/AX-12A을 컨트롤할 수 있는 회로를 쉴드의 형태로 구성하고 있습니다.

ESP32-Wroom-32 DevKitC V4 개발 보드를 구매하게 된 이유가 Bluetooth Classic을 지원하고 있어서 PS4 용 듀얼쇼크의 연동이 가능했기 때문이었고, 마지막까지 진행을 해봐야겠지만 Hexapod의 동작 컨트롤은 상당히 많은 조작이 필요할 수 있기 때문에 많은 제작자들이 PS4 듀얼쇼크를 Hexapod의 컨트롤러로 사용하기도 합니다.

이러한 이유로 ESP32-Wroom-32 DevKitC V4 개발 보드의 GPIO를 확인하고 사용계획을 잡기 위해서 GPIO의 활용성 관점에서 살펴보도록 합니다.

ESP32-Wroom-32 DevKitC V4 개발 보드의 GPIO

ESP32의 제조사에서 제공하는 정보를 아래 링크에서 확인이 가능합니다.

https://docs.espressif.com/projects/esp-idf/en/stable/esp32/hw-reference/esp32/get-started-devkitc.html

ESP-IDF Programming Guide Get Started Introduction What You Need Hardware ESP32-DevKitC ESP-WROVER-KIT ESP32-PICO-KIT ESP32-Ethernet-Kit ESP32-DevKit-S(-R) ESP32-PICO-KIT-1 ESP32-PICO-DevKitM-2 ESP32-DevKitM-1 Software Installation Build Your First Project Uninstall ESP-IDF API Reference Hardware Re...

docs.espressif.com

위 링크에서 보이는 개발 보드의 외형이 제가 가지고 있는 개발 보드와는 외형이 달라 아래와 같이 다른 링크에서 그림을 가져왔습니다.

https://grobotronics.com/esp32-development-board-devkit-v1.html?sl=en

ESPRESSIF에서 제공하는 ESP32-Wroom-32의 데이터 시트를 기준으로 ESP32-Wroom-32 DevKitC V4 개발 보드의 GPIO 활용성을 살펴보면 아래와 같습니다.

일부 예약된 기능이 있으나 본인의 프로젝트에서 사용하지 않을 경우 범용으로 사용할 수 있는 GPIO도 있고, 예약된 기능이 없는 경우도 있으니 잘 확인 후 프로젝트의 요구에 맞도록 GPIO를 할당하여 사용하면 좋을 것 같습니다.

※가장 편하게 활용할 수 있는 GPIO는 초록색 계열로 정리했고, 일부 확인 후 활용하기 좋은 GPIO는 노란색 계열로 정리했으니 참고하세요.

핀 번호

기본 기능

추가 기능/특징

예약 여부

1

3.3V 전원 출력

예약됨

2

Enable

칩 활성화 및 리셋

예약됨

3

GPIO36 (Input only)

ADC1_CH0, 입력 전용

안전 (입력 전용)

4

GPIO39 (Input only)

ADC1_CH3, 입력 전용

안전 (입력 전용)

5

GPIO34 (Input only)

ADC1_CH6, 입력 전용

안전 (입력 전용)

6

GPIO35 (Input only)

ADC1_CH7, 입력 전용

안전 (입력 전용)

7

GPIO32

ADC1_CH4, PWM

안전

8

GPIO33

ADC1_CH5, PWM

안전

9

GPIO25

ADC2_CH8, PWM, DAC_1

안전

10

GPIO26

ADC2_CH9, PWM, DAC_2

안전

11

GPIO27

ADC2_CH7, PWM

안전

12

GPIO14

ADC2_CH6, PWM, HSPI_CLK

안전 (HSPI 사용 여부에 따라)

13

GPIO12

ADC2_CH5, PWM, HSPI_MISO

안전 (HSPI 사용 여부에 따라)

14

Ground

예약됨

15

GPIO13

ADC2_CH4, PWM, HSPI_MOSI

안전 (HSPI 사용 여부에 따라)

16

GPIO9

Internal FLASH

예약됨

17

GPIO10

Internal FLASH

예약됨

18

GPIO11

Internal FLASH

예약됨

19

5V 전원 출력

예약됨

20

GPIO6

Internal FLASH

예약됨

21

GPIO7

Internal FLASH

예약됨

22

GPIO8

Internal FLASH

예약됨

23

GPIO15

ADC2_CH3, PWM, HSPI_CS / SS

안전 (HSPI 사용 여부에 따라)

24

GPIO2

Must be at 0V during the FLASH

주의

25

GPIO0

Must be at 0V during the FLASH

주의

26

GPIO4

ADC2_CH0, PWM

안전

27

GPIO16

UART2 RX

안전 (GPIO 변경 가능)

28

GPIO17

UART2 TX

안전 (GPIO 변경 가능)

29

GPIO5

PWM, VSPI_CS

안전 (VSPI 사용 여부에 따라)

30

GPIO18

PWM, VSPI_CLK / SCK

안전 (VSPI 사용 여부에 따라)

31

GPIO19

PWM, VSPI_MISO

안전 (VSPI 사용 여부에 따라)

32

Ground

예약됨

33

GPIO21

PWM, I2C SDA

안전 (I2C 사용 여부에 따라)

34

GPIO3 / RX0

UART0 RX

예약됨 (디버깅)

35

GPIO1 / TX0

UART0 TX

예약됨 (디버깅)

36

GPIO22

PWM, I2C SCL

안전 (I2C 사용 여부에 따라)

37

GPIO23

PWM, VSPI_MOSI

안전 (VSPI 사용 여부에 따라)

38

Ground

예약됨

위의 정리 내용을 참고하여 ESP32-Wroom-32 DevKitC V4 개발 보드를 사용하여 RB-Hexapod의 제어용 회로를 구성할 때 요구되는 기능에 맞추어 GPIO 사용 계획을 잘 세워야겠습니다. :)