[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 사용 계획을 잘 세워야겠습니다. :)