본문 바로가기

ESPRESSIF/ESP32-C3

(22)
ESP32-C3 Dhrystone, Whetstone, IIR Benchmark 성능 테스트 MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다. 각각의 특징은 아래와 같다. Dhrystone - 정수(ALU)연산성능 측정, MIPS 수치로 표기 Whetstone - 부동소수점(FPU)연산성능 측정, MFLOPS 수치로 표기 테스트 코드는 STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다. 벤치마크 테스트 결과 부동소수점 연산이 많이 좋지 않은것 같다. ESP32-C3 는 RISC-V 코어를 사용해서 그런것인가? 좀더 확인이 필요 하지만 저렴한 가격에 이정도 성능이면 나쁘지 않은것 같다. .mode = ESP32 Dhrystone Benchmark, Version ..
ESP32-C3 소비 전력 측정 - Deep Sleep Mode ESP32-C 가 간단하고 저렴한 무선 솔루션인데 상용의 제품에 많이 사용하지 않고 있다고 한다. 스펙상으로 ESP32 보다 슬립모드에서 소모 전류가 10uA에에서 5uA로 더 작다고 하는데 테스트 해보자 무선 솔루션의 실제 응용에서는 저전력이 중요한데 스펙상 전류소모가 높은것 같다. 실제로 BLE 구동후 전류를 측정해 보면 84mA로 측정이 된다. 다른 RF솔루션들의 전류 측정 결과와 비교해 보면 상당히 많은 전류가 소모되는것 같다. 슬립모드만 사용한다면 스펙상으로 5uA가 소모된다고 하는데... 슬립 모드를 테스트 해보자. 기본 동작 후 슬립모드로 빠져 있다 일정시간 마다 깨어나서 메모리 값을 증가시키는 예제를 작성해 보았다. #include //us 단위로 타이머 설정 #define uS_TO_S_..
[ESP32-C3 SSM] BLE HID Keyboard 테스트 라이브러리는 https://github.com/T-vK/ESP32-BLE-Keyboard 를 사용 하였다. BleKeyboard 예제를 조금 수정하여 동작 시켜보자 ESP32-C3 SSM EVM에서 실행 후 장치를 검색하면 검색은 되지만 연결이 되지 않는다. 디버깅 메시지는 장치를 찾을 수 없다고 출력이 된다. Starting BLE work! E (23994) BT_BTM: btm_proc_smp_cback received for unknown device E (53994) BT_BTM: btm_proc_smp_cback received for unknown device E (57024) BT_BTM: Device not found BLE 5.0이라 그런가? ESP-IDF로 테스트 해봐야 할 것 같다...
ESP32-C3 - BLE5 UART 테스트 ESP32-C3를 이용하여 BLE UART를 테스트 해보자 기본 펌웨어 다운로드 하고 장치 검색하면 설정한 장치로 인식이 된다 // Create the BLE Device BLEDevice::init("ECPC3 UART"); BLE UART 초기화 #define SERVICE_UUID "6E400001-B5A3-F393-E0A9-E50E24DCCA9E" // UART service UUID #define CHARACTERISTIC_UUID_RX "6E400002-B5A3-F393-E0A9-E50E24DCCA9E" #define CHARACTERISTIC_UUID_TX "6E400003-B5A3-F393-E0A9-E50E24DCCA9E" //1)BLE Device를 생성하고 BLEDevice::init(..
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..

반응형