본문 바로가기

ESPRESSIF/ESP32-C3

ESP32-C3 SSM EVM - 개발환경 설정 (Arduino 만들기)

ESP32-C3 도 Arduino 개발 환경에서 테스트 가능하다. 다만 ESP32 Board Manager 버전이 2.0이상이어야 한다.

 

 

Board Manager 에서 "ESP32C3 Dev Module"을 선택한다.


간단한 코드를 작성하고 다운로드 하면 정상적인 다운로드가 된다.

 

다운로드 까지는 잘 동작 하는데...
실행시 계속 리셋이 발생한다.
rst:0x8 (TG1WDT_SYS_RST),boot:0xc (SPI_FAST_FLASH_BOOT)
Saved PC:0x40380082
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd6100,len:0x484
load:0x403ce000,len:0x90c
load:0x403d0000,len:0x2398
SHA-256 comparison failed:
Calculated: 293bbd2824884ff8e9e6e9df6347ebe647177796efc2f665a6ef9cc4658c4d05
Expected: fb396d172fd068522c3ea62ba7387443250e7e77b119dfa86deae393d7661487
Attempting to boot anyway...
entry 0x403ce000
ESP-ROM:esp32c3-api1-20210207
Build:Feb  7 20

 

 
문제는 GPIO13은 플래시에 연결되어 있었는데 이 부분을 제어 하면 플레시 에러가 발생 한다. 

ESP32-C3 Boot Mode 옵션을 확인 할 필요가 있다.

 

 

이제 잘 동작한다.


ESP32-C3 Arduino 핀정의

 

pins_arduino.h

#define EXTERNAL_NUM_INTERRUPTS 22
#define NUM_DIGITAL_PINS        22
#define NUM_ANALOG_INPUTS       6

#define analogInputToDigitalPin(p)  (((p)<NUM_ANALOG_INPUTS)?(esp32_adc2gpio[(p)]):-1)
#define digitalPinToInterrupt(p)    (((p)<NUM_DIGITAL_PINS)?(p):-1)
#define digitalPinHasPWM(p)         (p < EXTERNAL_NUM_INTERRUPTS)

static const uint8_t TX = 21;
static const uint8_t RX = 20;

static const uint8_t SDA = 8;
static const uint8_t SCL = 9;

static const uint8_t SS    = 7;
static const uint8_t MOSI  = 6;
static const uint8_t MISO  = 5;
static const uint8_t SCK   = 4;

static const uint8_t A0 = 0;
static const uint8_t A1 = 1;
static const uint8_t A2 = 2;
static const uint8_t A3 = 3;
static const uint8_t A4 = 4;
static const uint8_t A5 = 5;
반응형