본문 바로가기

ESPRESSIF/ESP32-S2

(11)
ESP32-S2 USB 테스트 - TinyUSB 를 이용한 USB RAM Disk 테스트 ESP32에서 기본으로 제공하는 USB관련 예제는 다양하지 않아서 기존에 사용하던 TinyUSB 라이브러리를 사용해 USB를 테스트 해 보았다. 기존의TinyUSB 라이브러리는 Arduino에서 지원하지 않는다고 한다. 그래서 찾아보니 ESP32TinyUSB(https://github.com/chegewara/EspTinyUSB) 라이브러리가 있다. #include "ramdisk.h" //#define AUTO_ALLOCATE_DISK #define BLOCK_COUNT 2 * 100 #define BLOCK_SIZE 512 #if CFG_TUD_MSC USBramdisk dev; void setup() { Serial.begin(115200); #ifndef AUTO_ALLOCATE_DISK uint..
ESP32-S2 USB 테스트 - USB Native CDC 테스트 ESP32-S2의 가장 큰 장점으로 USB 기능이 있다. 간단히 구동 해 볼수 있는 USB CDC를 테스트 해보자 #include "usb.h" USBCDC USBSerial; void setup() { Serial.begin(115200); //USB 장치 사용 USB.begin(); //USB CDC 초기화 USBSerial.begin(115200); } void loop() { USBSerial.println("USB Native CDC"); Serial.println("UART Data"); delay(1000); } USB.begin() 으로 Native USB 초기화 하고 USBCDC 를 이용하여 Serial을 생성하면 사용할 수 있다.
ESP32-S2 ESP-IDF에서 TCP, UDP Iperf로 WiFi Throughput 측정 테스트 ESP32-S2를 Aruino 개발환경에서 WiFi 전송률 테스트 했을때 속도가 느리다. ESP-IDF 에서 제공하는 iperf 테스트 예제로 성능을 측정해 보자 ESP32 ESP-IDF WiFi 성능 측정에 사용했던 iperf 테스트 코드를이용 해서 ESP32-S2에서 동작하도록 했다. ESP32-S2 TCP Client Throughput 테스트 PC 에서는 iperf 를 서버로 설정하고 동작하고 ESP32-S2를 클라이언트로 설정하여 iperf 테스트를 해 보면 23Mbps 정도 측정된다. ESP32-S2 TCP Server Throughput 테스트 PC 에서는 iperf 를 클라이언트로 설정하고 동작하고 ESP32-S2를 서버로로 설정하여 iperf 테스트를 해 보면 26Mbps 정도 측정된다...
ESP32-S2 Ajax 테스트 - SPIFFS 다운로드 문제 해결 ESP32-S2 Ajax 테스트 예제를이용하여 좀더 복잡한 웹페이지를 구현 하려면 HTML 데이터를 SPIFFS 에 저장해서 테스트 하면 쉽고 빠르게 웹페이지 및 자바 스크립트를 수정 할 수 있다. 그래서 ESP32-S2에서 SPIFFS를 사용하려고 했는데 에러가 발생한다. ESP32-S2에서는 SPIFFS 를 지원하지 않난다고 한다. SPIFFS 파일 시스템 파일 생성은 되지만 ESP32-S2는 다운로드를 지원하지 않는다고 한다. 왜 이렇게 만들었지? 너무 최신 칩인가? 최신 버전 Arduino IDE도 지원하지 않는다고 한다. SPIFFS를 사용하지 않으면 상당히 불편한데... ESP DOWNLOAD TOOL(https://www.espressif.com/en/support/download/other..
ESP32-S2 웹서버 테스트 - Ajax 를 이용한 실시간 데이터 수신 웹브라우즈에서 데이터 수신 하기 위한 가장 간단한 방법은 페이지 요청시에 변경된 데이터를 전송하면 된다. #include #include // SSID & Password const char* ssid = "SSSID"; const char* password = "PASS"; WebServer server(80); // Object of WebServer(HTTP port, 80 is defult) void handle_root(); // HTML 페이지 #if 1 const char index_html[] PROGMEM = R"rawliteral( ADC Value $VAL )rawliteral"; #endif //페이지 요청이 들어 오면 처리 하는 함수 void handle_root() { Strin..
ESP32S2 SM - Arduino IDE에서 W5500 iperf tcp 전송률 테스트 ESP32-S2 에서 W5500을 이용한 Ethernet 전송율 테스트를 해 보자 NET-EXP 확장 테스트 보드는 SM-Type EVM 보드를 테스트 해 볼수 있고 SSM-Type 확장 모듈인 W5500을 연결할 수 있다. W5500의 CS 핀은 GPIO34에 할당되어 있다. W5500 iperf 테스트 코드 #include #include #define USE_THIS_SS_PIN 34 byte mac[] = { 0x00, 0x08, 0xDC, 0x00, 0x00, 0x00 }; EthernetServer server(5001); void setup() { Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Nee..
ESP32-S2 SM - SPI테스트 Arduino IDE에서 ESP32-S2의 SPI 는 디폴트로 GPIO35 ~ 36에 할당되어 있다. static const uint8_t SS = 34; static const uint8_t MOSI = 35; static const uint8_t MISO = 37; static const uint8_t SCK = 36; ESP32-S2의 SPI 테스트를 위해 아래 코드로 테스트 해보았다. #include #define LED_PIN1 18 void setup() { pinMode(LED_PIN1, OUTPUT); Serial.begin(115200); SPI.begin(); SPI.beginTransaction(SPISettings(80000000, MSBFIRST, SPI_MODE0)); } uns..
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..