'STM32F769'에 해당되는 글 1건

  1. 2018.05.09 [STM32F7 EVM] STM32F767 Ethernet 테스트 - TCP 전송속도 측정
[ST_MICRO]/STM32F72018. 5. 9. 04:24

[STM32F7 EVM] STM32F767 Ethernet 테스트 - TCP 전송속도 측정

[STM32F7 EVM] STM32F767 Ethernet 테스트 - TCP 전송속도 측정


STM32F7 EVM 보드에는 Ehternet을 테스트 할수 있는 Ethernet Phy 모듈 연결 커넥터가 있어 Ethernet을 연결 할 수 있다.  STM32F7의 경우 클럭속도가 216Mhz로 향상 되었기 때문에 좀더 빠른 이더넷 전송 속도가 나오지 않을까 기대 하면서 TCP 전송 속도 테스트를 해 보았다. STM32F4 Ethernet TCP 전송 속도 테스트 결과 참고




STM32F7 EVM Ethernet 하드웨어 연결 설정

STM32F7의 Ethernet 테스트는 기존에 제작 해 두었던 Ethernet Phy모듈을 이용하였다.




CubeMX 환경설정

CubeMX 를 이용하여 STM32F7 프로젝트를 생성하고 Connectivity -> ETH 탭에서  RMII 모드로 설정하면 기본 핀맵이 할당된다.





STM32F7 Ethernet 핀맵 확인




LWIP 설정

ST에서 제공하는 TCP/IP 스텍인 LWIP 를 Enable로 체크 하면 기본 설정으로 TCP/IP 통신을 할 수 있는 코드가 생성된다.






STM32F7 TCP/IP 전송 속도 테스트 코드



print_ip(char *msg, ip_addr_t *ip)

{

printf(msg);

printf("%d.%d.%d.%d\n\r", ip4_addr1(ip), ip4_addr2(ip), ip4_addr3(ip), ip4_addr4(ip));

}


print_ip_settings(ip_addr_t *ip, ip_addr_t *mask, ip_addr_t *gw)

{


print_ip("Board IP: ", ip);

print_ip("Netmask : ", mask);

print_ip("Gateway : ", gw);

}


int main(void)

{

  /* USER CODE BEGIN 1 */


  /* USER CODE END 1 */


  /* Enable D-Cache-------------------------------------------------------------*/

  SCB_EnableDCache();

  //SCB_EnableICache();

  /* MCU Configuration----------------------------------------------------------*/


  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */

  HAL_Init();


  /* USER CODE BEGIN Init */


  /* USER CODE END Init */


  /* Configure the system clock */

  SystemClock_Config();


  /* USER CODE BEGIN SysInit */


  /* USER CODE END SysInit */


  /* Initialize all configured peripherals */

  MX_GPIO_Init();

  MX_USART1_UART_Init();


  /* USER CODE BEGIN 2 */

  sprintf(buf, "STM32 ETHERNET TEST: Clk=%d\r\n", HAL_RCC_GetHCLKFreq()/1000);

  HAL_UART_Transmit(&huart1, buf, strlen(buf), 10);

  /* USER CODE END 2 */

  MX_LWIP_Init();

  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  while((gnetif.ip_addr.addr) == 0)

  {

  MX_LWIP_Process();

  }


  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);



  /* USER CODE BEGIN 2 */

  print_ip_settings(&gnetif.ip_addr.addr, &gnetif.netmask.addr, &gnetif.gw.addr);

  /* Infinite loop */

  /* USER CODE BEGIN WHILE */


  tcp_echoserver_init();


  while (1)

  {

    ethernetif_input(&gnetif);

    sys_check_timeouts();

  }

}





STM32F7 Ethernet 전송 속도 테스트 결과

STM32F7으로 TCP 루프백 테스트 결과 35Mbps 정도로 출력된다. Hardware 스텍을 가진 W5300 테스트 결과와 같은 전송 속도 이다. 소프트웨어 스텍으로도 저렴한 가격에 Ethernet 통신을 구현 할수 있어 좋은것 같다. STM32F439 + W5300 이더넷 전송 속도 테스트결과와 비교



Posted by nexp

댓글을 달아 주세요