ESPRESSIF (77) 썸네일형 리스트형 ESP32-S2 ESP-IDF SDK에서 GPIO 성능 테스트, Arduino IDE 코드와 비교 Arduino에서 제공하는 GPIO 제어 함수로 GPIO 토글 속도를 측정해 보자 #define LED_PIN1 18 void setup() { pinMode(LED_PIN1, OUTPUT); } void loop() { digitalWrite(LED_PIN1, 1); digitalWrite(LED_PIN1, 0); } GPIO On/Off 주기는 337ns로 측정이되며 메인루프 수행 시간은 1.8us로 상당히 느리다. (ns 단위여야 하는데..) ESP32-S2의 레지스터 직접 제어 방식으로 GPIO 토글 속도를 측정해 보자. #define LED_PIN1 18 void setup() { pinMode(LED_PIN1, OUTPUT); } void loop() { //digitalWrite(LED_PI.. ESP32S2 Dhrystone, Whetstone, IIR Benchmark 성능 테스트 MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다. 각각의 특징은 아래와 같다. Dhrystone - 정수(ALU)연산성능 측정, MIPS 수치로 표기 Whetstone - 부동소수점(FPU)연산성능 측정, MFLOPS 수치로 표기 테스트 코드는 STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다. 벤치마크 테스트결과 ESP32 벤치마크 테스트 와 비슷한 수준이지만 부동소수점 연산이 많이 좋지 않은것 같다. 코어 성능이 LX6에서 LX7 으로 더 좋아 졌다고 했는데 왜그렇지? 이부분은 좀더 확인이 필요 할것 같다. mode = ESP32 Dhrystone Benchmark,.. ESP32S2 SM - 개발환경 설정 (Arduino 만들기) ESP32-S3 개발환경은 여러가지가 있지만 간단하고 많이 쓰이는 ArduinoIDE에서 세팅을 해 보자 우선 최신 ESP32 Aduino Boards Meanager URL 을 설정한다. https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json Board Manager 에서 "ESP32S2 Dev Module"을 선택한다. 기본 예제로 ESP32-S2 SM 보드에 실장되어 있는 LED를 제어 해 보자. #define LED_PIN1 18 void setup() { Serial.begin(115200); pinMode(LED_PIN1, OUTPUT); } void loop() { digita.. ESP32S2-SM EVM 보드 제작 ESP32 시리즈 중 USB 기능이 있는 ESP32S2 가 출시 되었다. ESP32S2의 Native USB 기능을 테스트 해 볼수 있도록 표준 핀맵인 SM-Type 핀맵으로 만들었다. ESP32에 비교해서 성능은 낮아 졌지만 저렴한 가격에 USB가 포함되어 USB 기능이 필요한 어플리케이션에 적용해 보면 좋을것 같다. 소모 전류도 개선되어 USB 디바이스 제작에 적용하기 좋을것 같다. ESP32-C3 ESP-IDF에서 TCP, UDP Iperf로 WiFi Throughput 측정 테스트 ESP32-C3 를 Aruino 개발환경에서 WiFi 전송률 테스트 했을때 속도가 느려서 ESP-IDF 에서 제공하는 iperf 테스트 예제로 성능을 측정해 보자 ESP32 ESP-IDF WiFi 성능 측정에 사용했던 iperf 테스트 코드를이용 해서 ESP32-C3에서 동작하도록 했다. ESP32-C3 TCP Client Throughput 테스트 PC 에서는 iperf 를 서버로 설정하고 동작하고 ESP32를 클라이언트로 설정하여 iperf 테스트를 해 보면 32Mbps 정도 측정된다. ESP32 TCP Server Throughput 테스트 PC 에서는 iperf 를 클라이언트로 설정하고 동작하고 ESP32를 서버로로 설정하여 iperf 테스트를 해 보면 31Mbps 정도 측정된다. ESP32-C3.. ESP32-C3 ESP-IDF SDK에서 GPIO 성능 테스트, Arduino IDE 코드와 비교 ESP-IDF SDK 개발 환경에서 ESP32-C3 성능을 테스트해 보자. ESP32 Arduino IDE 개발환경에서 성능 테스트 결과 와 비교해 보면 좋을것 같다. 우선 SDK에서 제공하는 GPIO제어 예제로 테스트 해보자 #define BLINK_GPIO 0 void app_main(void) { gpio_reset_pin(BLINK_GPIO); /* Set the GPIO as a push/pull output */ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); while(1) { gpio_set_level(BLINK_GPIO, 1); gpio_set_level(BLINK_GPIO, 0); } } ESP32-C3 GPIO 토글 주기가 280ns(1.7Mh.. ESP32-C3 Arduino IDE - Iperf로 WiFi TCP Throughput 측정 테스트 ESP32-C3 Arduino 개발 환경에서 WiFi 성능을 테스트 해 보자 Arduino WiFi TCP 코드를 수정해 iperf 서버 코드를 만들었다. #include #ifdef ESP32 #include "esp_task_wdt.h" #define WDT_TIMEOUT 9 #endif const char* ssid = STASSID; const char* password = STAPSK; int port = 5001; WiFiServer server(port); void setup() { esp_task_wdt_init(WDT_TIMEOUT, 0); Serial.begin(115200); Serial.println("ESP32 Simple web Start"); Serial.println(ssid.. [ESP32-C3 SSM] Arduino IDE에서 W5500 iperf tcp 전송률 테스트 W5500 Arduino 라이브러리 Ethernet2 를 이용하여 W5500을 테스트 하면 속도가 느리다. ESP32-C에서도 역시 W5500의 TCP 전송율이 5Mbp정도로 느리게 측정된다. 라이브러리를 수정해서 ESP32용으로 만들어 테스트 해 보았다. \Arduino\libraries\Ethernet2\src\utility\w5500.cpp #if _USE_RP2040_SPI_DMA #include "w5500_rp2040_dma.hpp" #elif _USE_STM32_SPI_DMA #include "w5500_stm32_dma.hpp" #elif _USE_ESP32_SPI #include "w5500_esp32.hpp" #else #include "w5500.hpp" #endif #define U.. 이전 1 2 3 4 5 6 ··· 10 다음