본문 바로가기

[ST_MICRO]/STM32F7

[STM32-64 Ardu] STM32F732 W5500 iperf 네트웍 전송율 테스트

STM32F732 Arduino SPI 속도 테스트에서 설정한  최대 SPI 클럭값으로 W5500의 네트웍 전송율을 테스트 해 보자.

 

[STM32-64 Ardu] 보드에서 W5500 EVM 모듈을 연결 할 수 있는 SSM 커넥터의 CS 핀는 PB0에 할당되어 있다.

 

 

 

우선 W5500 Arduino 라이브러리 파일에서 클럭 속도를 최대치로 설정 한다.

\Arduino\libraries\Ethernet2\src\utility\w5500.cpp
//SPISettings wiznet_SPI_settings(8000000, MSBFIRST, SPI_MODE0);
SPISettings wiznet_SPI_settings(54000000, MSBFIRST, SPI_MODE0);

 

소스코드는 [STM32-64 Ardu] STM32F405 W5500 iperf 네트웍 전송율 테스트 에서 사용한 코드를 이용한다.

 

STM32F7 에서 Arduino코드로 W5500의 TCP 전송 속도는 6.7Mbps 정도로 측정된다.

iperf -c 192.168.1.48 -w 300k -t 100 -i 10

 

STM32F767 W5500 TCP/IP 전송 속도 테스트에서 전송율 13Mbps 과 비교하면 많이 차이가 발생한다.

특히 그때는 송수신 테스트 였는데 수신만하는 iperf 테스트 결과가 너무 안좋은것 같다.

STM32F405 W5500 iperf 네트웍 전송율 테스트와 같이 STM32F7용 SPI 라이브러리도 수정해 보자

 

STM32F7 의 Aruino에서 W5500 iperf 테스트 결과 9Mbps로 측정이 된다.

 

STM32F7 Arduino에서는  DMA 지원도 어렵고 캐시도 지원이 되지 않는것 같다.

void setup() {
    SCB_EnableICache();
    SCB_EnableDCache();

    Serial.begin(115200);

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

	Serial.println("...");

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

 

STM32 F4 W5500 iperf 전송율 테스트 속도 보다 더 느린것은 좀 문제가 있는것 같다. 좀더 분석이 필요하다.

반응형