본문 바로가기

ESPRESSIF/ESP32-C3

[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 USE_THIS_SS_PIN                     7

#include <SPI.h>

#include <Ethernet2.h>
byte mac[] = {
  0x00, 0x08, 0xDC, 0x00, 0x00, 0x00
};

EthernetServer server(5001);

void setup() {

	Serial.begin(115200);
  	Ethernet.w5500_cspin = USE_THIS_SS_PIN;
  
  //Ethernet.begin(mac, ip, dns_server, gateway, subnet);
  Ethernet.begin(mac);

  server.begin();
   Serial.print("Iperf server address : ");
  Serial.println(Ethernet.localIP());
}

void loop() {
  byte buf[2048];
  unsigned int len = 0;
  // wait for a new client:
  EthernetClient client = server.available();

    if (client) {
    Serial.println("Here is new client for check arduino performance");

  while (client.connected())
    {
      len = client.available();
      if (len)
      {
       client.read(buf, 2048);
      }
   }
    // close the connection:
    client.stop();
    Serial.println("client disonnected");
  }
}

 

 

라이브러리 수정후 ESP32-C3에서 W5500 으로 iperf 테스트해보면 TCP 전송률이 13Mbps정도로 측정된다.

 

 

Ax 프로그램으로 테스트 해보면 TCP 수신 전송률이 12Mbps 정도로 측정이 된다.

반응형