본문 바로가기

W5500

(32)
[STM32-48_W5500] 초소형 이더넷 보드 제작 네트웍 처리를 위해 소형이고 저렴하면서 어느정도 성능도 보장되는 MCU로 48핀 LQFP 패키지의 ST시리즈 MCU가 좋을것 같다. 48핀에 핀맵이 호환되는 MCU들이 많이 출시되고 있으므로 소형의 보드로 만들어 두면 여러 어플리케이션에 적용할 수 있을것 같아 SSM-Type EVM 형태로 제작 했다. 윗면은 48핀 패키지 MCU를 실장 할 수 있다. W5500 TCP 전송률 테스트에서 가격대비 탁월한 성능을 보여주는 GD32F303을 실장하여 제작해 보았다. 아래면에는 WIZnet의 W5500을 실장 할 수 있도록 했다.
[GD32-48 SSM] GD32F303 - Iperf로 W5500의 TCP Throughput 측정 테스트 STM32F103 시리즈 대체용으로 추천 받은 GD32F303은 최대 클럭 120Mhz로 구동되고 SPI클럭을 30Mhz로 구동할 수 있다. STM32F103 과 비교해서 W5500의 TCP Throughtput 테스트 성능 비교를 해보면 좋을 것 같다. 네트웍 전송율 테스트를 위해 PC에서는 iperf 프로그램을 사용하고 STM32에서는 W5500 TCP loopback 테스트 코를 조금 수정해 iperf 클라이언트 코드로 작성했다. int32_t iperf_tcps(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size = 0, sentsize=0; switch(getSn_SR(sn)) { case SOCK_ESTABLISHED :..
[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..
Raspberry Pi Pico RP2040 - Arduino IDE에서 Iperf로 W5500의 TCP Throughput 측정 테스트 Raspberry Pi Pico 확장 테스트 보드를 이용하여 W5500 모듈의 TCP IP전송률 테스트를 iperf로 진행 해 보자. 확장 테스트보드의 SSM Type EVM 연결 커넥터에 W5500 CS핀이 GP12에 할당 되어 있다. Arduino 에서 iperf 를 이용하여 한 네트웍 전송율 테스트를 하기 위해 TCP Server를 구현 하면 된다. #include #include #define USE_THIS_SS_PIN 12 byte mac[] = {0x00, 0x08, 0xDC, 0x00, 0x00, 0x00}; EthernetServer server(5001); void setup() { Serial.begin(115200); while (!Serial) { ; // wait for seri..
RP2040 SSM EVM - W5500 DCHP 테스트 Raspvery Pi Pico(RP2040) 을 이용하여 이더넷 테스트를 하기위한 테스트를 좀더 진행해 보자.우선 W5500 을 이용하여 DHCP로 IP를 할당 받고 SSD1306 OLED에 IP정보를 표시 하는 예제를 작성해 보자. W5500 에서 DHCP로 할당받기 위해서는 초기화시 mac만 설정 해 주면 된다. void setup() { pinMode(25, OUTPUT); Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } Serial.println("W5500 DHCP Test"); // start the Ethernet connection and the ser..
RP2040 SSM EVM - W5500 Ethernet Ping 테스트 W5500 Ethernet 모듈을 이용하여 RaspberyPi Pico(RP2040) 에서 Ethernet 통신을 해보자. SSM-EXP21 확장 테스트 보드를 이용하였고 W5500의 CS 핀은 GPIO17 핀에 할당되어 있다. W5500 라이브러리는 Ethernet2 를 설해서 테스트 했다. #include #include #include #define Led1On() digitalWrite(25, 1) #define Led1Off() digitalWrite(25, 0) byte mac[] = { 0x00, 0x08, 0xDC, 0x00, 0x00, 0x00 }; IPAddress ip(192, 168, 1, 177); void setup() { pinMode(25, OUTPUT); Serial.beg..
[STM32F-Tx SSM] STM32F103T - Iperf로 W5500의 TCP Throughput 측정 테스트 STM32F103 시리즈를 이용하여 W5500 Ethernet 모듈의 TCP Throughput 을 측정해 보자. STM32F103의 SPI클럭 최대 주파수는 18Mhz 이다. 18Mhz SPI 클럭에서 3.5Mbps정도로 측정된다. STM32F103의 SPI DMA를 사용하면 8Mbps 정도로 측정이 된다. W5500의 버퍼를 최대한 키워보자. W5500의 FIFO 메모리를 최대로 키우고 SPI DMA를 사용하여 STM32F103에서 W5500 iperf TCP 전송율 테스트 결과 14Mbps로 측정이 된다.
[STM32G4 SM] STM32CubeIDE STM32G431 - Iperf로 W5500의 TCP Throughput 측정 테스트 STM32G431은 170Mhz로 구동이 되고 SPI는 80Mhz(최대 보장75Mhz) 까지 설정 가능하므로 SPI로 구동되는 W5500모듈의 전송율을 테스트 해 보기에 좋을것 같다. 네트웍 전송율 테스트를 위해 PC에서는 iperf 프로그램을 사용하고 STM32에서는 W5500 TCP loopback 테스트 코를 조금 수정해 iperf 클라이언트 코드로 작성했다. int32_t iperf_tcps(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size = 0, sentsize=0; switch(getSn_SR(sn)) { case SOCK_ESTABLISHED : if(getSn_IR(sn) & Sn_IR_CON) { setSn_IR..

반응형