본문 바로가기

ESPRESSIF/ESP32-C6

[ESP32-C6 SSM] PIO(PlatformIO) 개발환경 설정 - Arduino Framework 설정하기

EPS32C6는 Arduino IDE환경에서는 지원이 되지만 PIO(PlatformIO) 환경에서는 espidf 만 지원하고 Arduino는 지원이 않는다. Arduino IDE는 다양한 라이브러리를 지원하지만 다양한 보드를 지원하기 위해 라이브러리가 복잡해지면 컴파일 속도가 너무 느려지는 단점이 있다.

 

PIO(PlatformIO) 환경에서 ESP32C6를 컴파일 할 수 있는 환경을 구성해 보자.

우선 VScode에서 PIO 프로젝트를 생성하고 platformio.ini 파일을 ESP32-C6에 맞도록 수정해 준다.

 

 

 

board 는 새로운 형태로 json 파일로 만들어 boards 폴더에 등록 해 주어야 한다.

 

 

이렇게 설정하고 컴파일 하면 ESP32C6로 정상적으로 컴파일 되는것을 확인 할 수 있다.



디폴트로 USB2Serial이 활성화 되어 있지 않아 USB2Serial 메시지를 받을수 없었는데..

ESP32C6의 USB2Serial을 디폴트로 설정하려면 extra_flags를 설정해 주면 된다.

"extra_flags": "-DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=1"

 

{
  "build": {
    "core": "esp32",
    "f_cpu": "160000000L",
    "f_flash": "80000000L",
    "flash_mode": "qio",
    "mcu": "esp32c6",
    "variant": "esp32c6",
	"extra_flags": "-DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=1"
  },
  "connectivity": [
    "bluetooth",
    "wifi"
  ],
  "debug": {
    "openocd_target": "esp32c6.cfg"
  },
  "frameworks": [
    "arduino",
    "espidf"
  ],
  "name": "ESP32-C6_SSM",
  "upload": {
    "flash_size": "4MB",
    "maximum_ram_size": 327680,
    "maximum_size": 4194304,
    "require_upload_port": true,
    "speed": 460800
  },

  "vendor": "Espressif"
}

 

 

ESP32-C6에서 PIO로 간단한 Arduino 코드를 테스트 해보자. ESP32C6-SSM 보드의 LED를 깜박이고 USB2Serial 포트로 메시지를 전송하는 코드를 작성했다.

#include <Arduino.h>

#define LED1_PIN       14 
#define LED2_PIN       15 

#define Led1On()       digitalWrite(LED1_PIN, 0) 
#define Led1Off()      digitalWrite(LED1_PIN, 1) 

#define Led2On()       digitalWrite(LED2_PIN, 0) 
#define Led2Off()      digitalWrite(LED2_PIN, 1) 

void setup() {
  pinMode(LED1_PIN, OUTPUT);
  pinMode(LED2_PIN, OUTPUT);

  Led1On();
  Led2Off();

  Serial.begin(115200);
  Serial1.println("Serial Test++");      

  Serial1.begin(115200);
}

void loop() {
    Led1On();
    Led2Off();
    delay(500);

    Led1Off();
    Led2On();
    delay(500);

    Serial.println("Serial");
    Serial1.println("Serial1");
}

 

 

 

 

반응형