본문 바로가기
ESP32

ESP32-C3 AT Command 시리얼 포트 변경하기

by 소나무기운 2024. 1. 15.
반응형

[2024/01/15] First Start.

소나무 기운 ,  전자제품 개발/생산

ESP32-C3 AT Command 시리얼 포트 변경하기

AT Command를 사용하여 esp32의 기능을 사용할 수 있도록 제공되고 있습니다.

필요에 따라서 esp32-c3의 시리얼 포트를 변경하거나 통신 속도를 변경하는 간단한 작업이 필요한 경우가 있습니다.

몇가지 방법이 있습니다. 알아보도록 하겠습니다.

ESP32의 ESP-AT User Guide를 참고하였습니다.

 

 

 

요점 정리

ESP32-C3용 펌웨어를 다운받아 업로드하면 AT Command를 사용할 수 있습니다.

기본 설정은 ESP32-C3-MINI-1 Series에서 

GPIO7 : TX

GPIO6 : RX

GPIO5 : CTS

GPIO4 : RTS

Baudrate : 115200

로 설정되어 있습니다.

 

at.py Tool을 이용하여 통신 포트, 보레이트를 변경할 수 있습니다.

 

와이파이 설정 변경 명령 예시 : 

python at.py modify_bin --tx_power 72 --country_code "US" --start_channel 1 --channel_number 11 --input factory_XXX.bin

 

인증서 및 키 구성 수정 명령 예시 : 

python at.py modify_bin --mqtt_ca mqtt/mqtt_ca.crt --mqtt_cert mqtt/mqtt.crt --mqtt_key mqtt/mqtt.key --input factory_XXX.bin

 

UART 설정 명령 예시 : 

python at.py modify_bin --baud 921600 --tx_pin 17 --rx_pin 16 --cts_pin -1 --rts_pin -1 --input factory_XXX.bin

 

GATTS 설정 명령 예시 :

python at.py modify_bin --gatts_cfg0 "0,16,0x2800,0x011,2,2,A002" --input factory_XXX.bin

 

자세한 사항은 아래를 참고하세요.

 

 

 

ESP-AT 소개

ESP-AT은 Espressif Systems에서 제공하는 AT 커맨드 세트를 기반으로 하는 소프트웨어 라이브러리입니다. 이 라이브러리는 ESP8266 및 ESP32 시리즈와 같은 Espressif의 Wi-Fi 모듈 및 SoC(System on Chip)에 사용됩니다. AT 커맨드는 모듈 또는 SoC를 컨트롤하고 설정하기 위해 텍스트 기반의 명령어를 사용하는 방식입니다.

ESP-AT 라이브러리는 다음과 같은 주요 특징을 제공합니다:

1. **AT 커맨드 지원:** ESP-AT는 AT 커맨드 명세에 따라 다양한 기능을 수행할 수 있는 명령어를 제공합니다. 이러한 명령어를 통해 Wi-Fi 연결, 네트워크 설정, TCP/IP 통신 설정 등 다양한 작업을 수행할 수 있습니다.

2. **간편한 통신:** AT 커맨드는 텍스트 기반으로 되어 있어서, 간단한 터미널 프로그램이나 다른 장치를 통해 손쉽게 통신할 수 있습니다.

3. **모듈 및 SoC 제어:** ESP-AT를 사용하면 Wi-Fi 모듈 또는 ESP32 기반의 SoC를 AT 명령어를 통해 제어할 수 있습니다. 이는 외부 장치에서 ESP8266 또는 ESP32를 사용하는 데 유용합니다.

4. **사용자 지정 가능:** ESP-AT는 다양한 환경에 적응할 수 있도록 사용자가 필요에 따라 설정을 조정하고 확장할 수 있는 유연성을 제공합니다.

5. **사용 사례:** ESP-AT는 주로 Wi-Fi 모듈이나 SoC를 사용하는 응용 프로그램에서 다양하게 활용됩니다. 예를 들어, IoT 기기, 센서 노드, 원격 제어 장치 등에서 ESP-AT를 이용하여 무선 통신을 구현할 수 있습니다.

ESP-AT는 Espressif의 ESP8266 및 ESP32 시리즈와 함께 제공되며, Espressif의 공식 문서 및 예제 코드를 통해 더 자세한 정보와 사용법을 확인할 수 있습니다.

 

 

 

 

 

하드웨어 연결 방법

ESP32-C3-MINI의 기본적인 하드웨어 연결은 다음과 같습니다.

1. 전원 연결 (+-전원):

- 전원 공급: ESP32-C3-MINI는 3.3V 전원을 필요로 합니다. 모듈의 3.3V 핀에 3.3V 전원을 연결합니다.
  
- GND (지상): 모듈의 GND 핀은 지상에 연결합니다. 지상은 전원 공급의 기준이 됩니다.

2. USB 연결 (펌웨어 업데이트용 USB 연결):

- USB 연결: ESP32-C3-MINI는 USB 포트를 통해 펌웨어 업데이트 및 시리얼 통신을 지원합니다. USB 케이블을 ESP32-C3-MINI의 USB 포트에 연결하고, 다른 쪽을 컴퓨터 또는 호스트 장치에 연결합니다.

3. UART 연결 (AT-Command용 UART 연결):

- UART 통신: AT 커맨드를 사용하기 위해 UART 통신을 설정해야 합니다. UART 통신을 위한 핀 할당은 ESP32-C3-MINI의 데이터 시트나 개발 보드의 핀맵을 참고해야 합니다.

    - TX (송신): ESP32-C3-MINI의 TX 핀을 다른 장치의 RX 핀에 연결합니다.
    
    - RX (수신): ESP32-C3-MINI의 RX 핀을 다른 장치의 TX 핀에 연결합니다.

    - 통신 속도 설정: UART 통신 속도는 일치해야 합니다. 일반적으로 115200 bps를 사용합니다.

    - 부가적인 제어 핀: ESP32-C3-MINI는 추가적인 제어 핀들이 필요하지 않을 수 있지만, 데이터 시트를 확인하여 부가적인 설정이 필요한 경우 해당 핀을 확인합니다.

이러한 연결은 ESP32-C3-MINI를 사용하는 데 필요한 가장 기본적인 하드웨어 연결입니다. 하지만 모듈의 특정 기능 및 핀 할당은 ESP32-C3-MINI의 데이터 시트 및 개발 보드의 참고 자료를 확인하여 조정해야 합니다.

 

ESP32-C3 Series

Function fo Connection ESP32-C3 Board or Module Pins Other Device Pins
Download/Log Output UART0
* GPIO20 (RX)
* GPIO21 (TX)
PC
* TX
* RX
AT command/response UART1
*GPIO6 (RX)
*GPIO7 (TX)
*GPIO5 (CTS)
*GPIO4 (RTS)
USB to serial converter
* TX
* RX
* RTS
* CTS

ESP32-C3-MINI Dev Kit의 경우  USB단자로는 펌웨어를 다운로드하고

GPIO6,7을 이요하여 AT-Command를 사용한다.

 

 

 

Download AT Firmware

별도의 포스트에서 자세하게 설명 예정

https://docs.espressif.com/projects/esp-at/en/latest/esp32c3/Get_Started/Downloading_guide.html

 

Downloading Guide - ESP32-C3 - — ESP-AT User Guide latest documentation

© Copyright 2016 - 2024, Espressif Systems (Shanghai) Co., Ltd..

docs.espressif.com

공식 문서 참고 하세요.

 

 

 

펌웨어의 종류


1. 공식 릴리즈 펌웨어 (권장):
   - 제조사 또는 공식 개발팀에서 공식적으로 제공하고 권장하는 펌웨어 버전입니다. 철저한 테스트를 거쳐 안정적이며, 주로 일반적인 용도로 안정적으로 사용할 수 있습니다. 사용자들은 이 펌웨어를 정기적인 응용프로그램에 사용하도록 권장됩니다.

2. GitHub 임시 펌웨어:
   - GitHub에 호스팅된 임시 펌웨어는 실험적이거나 개발 중이거나 모든 시나리오에 대해 완전히 테스트되지 않았을 수 있습니다. 공식 릴리즈에 포함되지 않은 새로운 기능, 버그 수정 또는 향상된 기능이 포함될 수 있습니다. 최신 변경 사항을 테스트하거나 개발에 참여하려는 사용자들이 사용할 수 있는 펌웨어입니다.

3. 매개변수 업데이트가 포함된 펌웨어:
   - 이는 업데이트된 구성 매개변수 또는 설정을 포함한 펌웨어 버전을 나타낼 수 있습니다. 이는 특정한 사용 사례, 사용자 정의 하드웨어 구성 또는 실험적인 기능에 맞게 조정된 펌웨어일 수 있습니다. 특정 설정이나 다양한 설정을 탐험하려는 사용자들이 사용할 수 있는 펌웨어입니다.

4. 자체 컴파일된 펌웨어:
   - 자체 컴파일된 펌웨어는 사용자가 소스 코드에서 직접 컴파일한 펌웨어를 의미합니다. 이를 통해 사용자는 펌웨어를 자체적으로 수정하여 특정 요구 사항에 맞게 만들 수 있습니다. 이 옵션은 일반 사용자나 개발자가 펌웨어 소스 코드와 컴파일 프로세스를 잘 이해하고 있는 경우 선택됩니다.

"공식 릴리즈 펌웨어"는 일반적으로 안정성과 신뢰성을 위해 권장되지만, 다른 펌웨어 옵션은 특정 사용 사례나 최신 개발 사항을 실험하려는 분들에게 더 적합할 수 있습니다. 펌웨어를 선택하고 설치하기 전에 릴리즈 노트, 문서 및 커뮤니티 피드백을 주의 깊게 읽어야 하며 자신의 요구 사항을 충족시키는지 확인해야 합니다.

 

 

 

 

통신 포트 변경을 위한 매개변수 변경 하기

매개변수를 변경하기 위한 방법이 있습니다.

at.py Tool을 이요합니다.

펌웨어를 다시 컴파일 할 필요 없고 안정적이고 신뢰할 수 있습니다.

 

아래와 같은 5단계 거쳐 진행합니다.

 

파이썬 3.7.0이상을 사용하라고 하는데 3.12.1에서 at.py가 에러가 납니다. 3.7.0을 사용하세요.

 

https://github.com/espressif/esp-at/blob/899230b2/tools/at.py

 

at.py를 다운로드 하세요.

 

4가지 정도의 파라메터 변경이 가능합니다.

이중 UART Configuration에 대해서 알아보니다.

 

예를 들어 다음 명령을 사용하여 보레이트를 921600으로 수정하고 TX 핀을 GPIO17로, RX 핀을 GPIO16으로 설정하고 AT 명령 포트의 흐름 제어를 비활성화할 수 있습니다:

python at.py modify_bin --baud 921600 --tx_pin 17 --rx_pin 16 --cts_pin -1 --rts_pin -1 --input factory_XXX.bin

 

 

 

 

 

마무리

공식 Firmware에 parameter를 변경하는 방법에 대해서 알아보았습니다.

직접 소스를 변경하여 컴파일하는 것도다 간편하고 안정적입니다. 필요시 사용하면 좋겠습니다.

 

 

참고문헌

 

 
 

 

 

틀린 부분이나 질문은 댓글 달아주세요.

즐거운 하루 보내세요. 감사합니다.

 

 

반응형

댓글