본문 바로가기

ESPRESSIF

(77)
ESP32-C3 - BLE CUSTOM SERVICE 테스트 ESP32-C3의 가장 큰 장점으로 BLE 5.0이 있다. 저렴한 가격에 소형의 BLE 칩으로 사용하면 좋을것 같다. BLE 예제를 테스트 해보자 가장 간단한 CUSTOM SERVICE 코드로 테스트 했다. 라이브러리가 잘되어 있어 아주 간단하게 BLE 구현이 가능하다. #include #include #include // See the following for generating UUIDs: // https://www.uuidgenerator.net/ #define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b" #define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8" class MyCallbac..
ESP32-C3 3채널 UART 사용하기 ESP32-C3는 2개의 하드웨어 UART가 있고 USB CDC를 사용하면 3채널의 UART를 사용 할 수 있다. PC에서 UART로 제어 하면서 외부 UART 2채널을 사용할 수 있는 것이다. ESP NOW를 이욯하면 무선 UART 전송장치를 만들기에 딱 좋은 솔루션이 될 수 있다. UART0는 주로 디버깅용 및 다운로드용으로 많이 사용한다. Arduino 의 디폴트 핀정의는 아래와 같다. static const uint8_t TX = 21; static const uint8_t RX = 20; 디버깅 메시지는 부팅시 GPIO8의 설정 상태에 따라 선택 할 수 있다. UART1는 ESP32의 Any IO 타입으로 PIN MUX에 의해 원하는 핀에 할당해서 사용 할 수 있다. Arduino Code는 아..
ESP32-C3 SSM EVM - USB (USB CDC) ESP32-C3의 또다른 특징중 하나로 USB지원 한다. 처음에는 USB 풀스펙을 지원하는줄 알았는데 자세히 보면 USB Serial/JTAG 만 지원 한다고 한다. 약간 아쉬움이 있긴 한데 아무튼 ESP32-C3의 USB Seral(USB CDC) 테스트를 해 보자. ESP32-C3 메뉴에서 USB CDC On Boot 를 Enabled로 설정해야 한다. 이후 Serial 은 USB CDC로 출력 하게 된다. Arduino main 코드를 보면 USB 옵션에 따라 USB CDC가 Serial 으로 설정이 되는것을 확인 할 수 있다. extern "C" void app_main() { #if ARDUINO_USB_CDC_ON_BOOT Serial.begin(); #endif #if ARDUINO_USB_..
ESP32-C3 SSM EVM - 성능 측정 ESP32-C3는 기존 ESP32 시리즈(240Mhz)와 달리 160Mhz 32-bit RISC-V core 를 탑제하고 있다. 성능보다는 가격과 소비전력에 장점을 두고 있지 않을까.. 아무튼 기존 ESP32 Arduino 코드의 성능과 비교해서 ESP32-C3 의 성능 테스트를 해 두면 좋을것 같다. 우선 CPU Frequency를 160Mhz 로 설정해서 GPIO 코글 테스트를 해 보자 Arduino에서 제공하는 GPIO 제어 함수로 테스트 해 보면 #define LED_PIN1 3 void setup() { pinMode(LED_PIN1, OUTPUT); } void loop() { digitalWrite(3, 0); digitalWrite(3, 1); } 2.3us로 상당히 느리다. ESP32-C..
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 compar..
ESP32-C3 SSM EVM 보드 제작 ESP32 시리즈중 WiFi + BLE Soc ESP32-C3 칩셋이 저렴하게 판매 되고 있어 표준 핀맵의 SSM Type 으로 제작 해 보았다. 특히 ESP32-C3FH4는 4MB 플래시 메모리 까지 포함되어 있어 저렴한 MCU로 사용해도 좋을것 같다. Core는 ESP32와 달리 RISC-V 단일 코어라 성능은 조금 문제가 될수 있지만 WiFi, BLE 5.0, USB가 내장 되어 있어 가격대비 성능으로 보면 정말 좋은 칩인것 같다. (여기서 USB는 Serial,JTAG 기능만 한다고 하니 다른용도로 쓰기는 어려울것 같다.)
ESP32 ESP-IDF에서 Iperf로 WiFi TCP, UDP Throughput 측정 테스트 ESP32에서 WiFi TCP, UDP Throughput 측정을 위해 Arduino 환경에서 테스트 해보면 속도가 너무 느리게 측정된다. ESP-IDF 환경에서 제공되는 iperf 테스트 예제로 WiFi 성능을 측정해 보자. WiFi iperf 테스트 에제를 빌드 하기 위해 ESP-IDF 개발환경 설정을 참고해서 에서 Show Examples Project를 선택 한다. iperf Example을 선택해서 프로젝트를 생성한다. 빌드후 다운드 하면 VS Code의 터미널 창에서 시리얼 포트를 열수 있다. sta 커멘드로 WiFi에 접속 할 수 있다. sta [] WiFi is station mode, join specified soft-AP SSID of AP password of AP ESP32 UDP..
ESP-IDF 개발 환경 설정 (Windows VSCode) ESP32용 개발환경으로 여러 형태가 있지만 이번에는 ESP-IDF를 이용해서 개발 하는 방법을 테스트 해 보았다. ESP-IDF를 사용하게 되는 가장큰 이유는 속도 일것 같다. Arduino 나 Python의 경우 다양한 MCU를 지원하려다 보니 속도가 느려지는것이 당연하지 않을까... Arduino IDE - Iperf로 WiFi TCP Throughput 측정 테스트 에서 WiFi 전송율을 테스트 하다보니 너무 속도가 느리게 측정된다. ESP-DIF 환경에서 제공하는 예제중 iperf 예제를 구동해 보면 좋을것 같다. VS Code에서 ESP-IDF extension 모듈을 설치하면 쉽게 환경 설정이 가능하다. ESP-IDF 환경설정을 위해 View->Command Palette (F1) ESP-I..

반응형