요약
ESP32 사용 가능한 핀 설정 보기
사용해도 되지만 주의해야 될 핀 살펴보기
절대 사용하면 안 되는 핀 보기
ESP32 공식 PIN OUT 정보
먼저 ESPRESSIF 회사 자체에서 제공하는 Datasheets 문서를 살펴보면 사용 가능한 핀맵에 대한 정보를 자세하게 알 수 있다. 칩 자체의 PIN MAP이며 개발보드에서 제시하는 핀맵의 정보와 99.99% 일치한다. (특수한 용도로 핀 맵을 변경한 경우도 있으나 극히 드물어서 제외함)
위의 내용을 보면 ESP32에서 사용할 수 있는 기능에 대한 정보도 모두 포함되어 있다.
사용할 수 있는 기능
- 16 PWM output
- 2 Digital to analog Converters (DAC)
- 18 Analog to digital Converters (ADC)
- 3 SPI interfaces
- 3 UART interfaces
- 2 I2C interfaces
- 2 I2S interfaces
- 10 Touch sensing GPIOs
- 1 Hall Effect Sensor (홀센서 : 자석 센싱)
UART, SPI, I2C 등 통신 핀은 다른 GPIO핀을 직접 지정해서 사용할 수도 있다. 반드시 할당된 핀을 사용하지 않아도 된다.
예를 들면 UART2 핀이 16, 17로 U2RXD, U2TXD 할당되어 있지만 아두이노에서 사용할 때 25, 26을 UART2로 지정해서 사용해도 정상적으로 동작한다. (I2C, SPI도 마찬가지로 동작함)
좀 더 쉼게 ESP32 PIN MAP 표현
ESP32 공식 핀맵에서 핵심 역할에 관한 부분만 떼어내서 보기 쉽게 요약한 표다.
GPIO34 ~ 39 핀을 사용할 때 2가지를 주의해야 된다.
- 입력만 사용가능하므로 output 설정을 해도 동작하지 않는다
- 내부 풀업이 없기 때문에 아두이노에서 PINMODE 설정할 때 INPUT_PULLUP / PULLDOWN 동작하지 않는다
(※ 외부에 직접 풀업 저항을 달아서 해야 함 ← 이 부분이 약간 귀찮음)
MTMS, MTDI, MTCK, MTDO는 JTAG 관련된 핀이므로 되도록이면 사용하지 않는 걸 추천한다.
하지만 사용해야 된다면 되도록 OUTPUT 역할로 사용하는 것을 추천한다.
이유는 INPUT으로 설정하면 처음 부팅할 때 MTDI → LOW, MTDO → HIGH 등 부팅 설정을 지켜줘야만 시스템이 켜지기 때문에 해당 사항을 지키면서 설계하는 게 까다롭다.
BOOTING MODE는 처음 부팅될 때 설정된 값이 있으므로 규칙을 맞추지 않으면 시스템이 켜지지 않는다.
마찬가지로 해당 핀을 OUTPUT 역할로 사용하는 것을 추천한다.
USB BOOTING은 개발보드를 사용할 경우 USB로 펌웨어를 업로드하는데 그때 컴퓨터와 통신하는 핀이므로 되도록이면 사용하지 않는 게 정신건강에 좋다.
하지만 핀 수가 부족하여 사용하게 된다면 UART 통신으로 설정하면 USB로 디버깅할 때도 크게 무리 없이 사용 가능하다.
FLASH/PSRAM PIN 부분은 그냥 사용하지 않는게 좋다.
물론 직접 PCB를 아트웍하고 개발하여 FLASH 메모리를 16MB, 32MB 등으로 교체한다면 사용해도 되지만 개발보드를 사용할 우리는 그냥 없는 핀이라고 생각하자.
요즘은 개발보드 종류도 무수히 많기 때문에 양산 제품을 위해 단가 싸움이 아니라면, 핀 수에 맞는 개발보드를 사용하자.
개발할 때는 최대한 편안한 마음으로 진행해야 잘 안풀리는 순간에도 화가 덜난다..
'ESP32 > 장치설정' 카테고리의 다른 글
[아두이노] ESP32 Multi Thread 구현하는 방법 (easy RTOS) (2) | 2024.03.06 |
---|---|
[아두이노] ESP32 MAC, CHIP ID, 고유 식별 값 읽는 방법 (3) | 2024.03.05 |
[아두이노] ESP32 웹에서 간단히 시뮬레이션 테스트 wokwi (2) | 2024.02.18 |
[아두이노] ESP32 아두이노 2 설치 (1) | 2024.02.15 |
[아두이노] ESP32란? (2) | 2024.02.13 |