[MCU]/adStar2012. 12. 25. 21:00

[adStar EVM] W5200을 이용한 TCP-Seerver 전송 속도 테스트

 [adStar EVM] W5200을 이용한 TCP-Seerver 전송 속도 테스트

 

 

 

[adStar-EX EVM] 보드에는 H/WTCPIP W5200모듈을 연결할수 있어 이더넷 테스트가 가능하다. W5200을 이용하여 TCP Server모드에서 전송 속도를 테스트 해 보았다.

 

[W5200 EVM] 모듈 연결 핀맵

 

 

[adStar-EX EVM] W5200  드라이버 코드

#define _SPI1_ENABLE     1

//-----------------------------------------------------------------------------
// W5100 HAL
#define W5100_CS_PORT     GPIO1
#define W5100_CS_BIT     BIT3
#define W5100_RST_BIT     BIT5


#define W5100_IO_INIT()     Sbi(*R_PAF4, GP_CFG(3));Sbi(*R_GP1ODIR, W5100_CS_BIT);\
          Sbi(*R_PAF2, GP_CFG(5));Sbi(*R_GP1ODIR, W5100_RST_BIT)


#define IINCHIP_CSoff()     cbi(W5100_CS_PORT, W5100_CS_BIT)
#define IINCHIP_CSon()     sbi(W5100_CS_PORT, W5100_CS_BIT)


#define IINCHIP_SPI_INIT()    SPI1_Init()
#define IINCHIP_SpiSendData    SPI1_WriteReadByte
#define IINCHIP_SpiRecvData    SPI1_WriteReadByte


#define IINCHIP_RSToff()    cbi(W5100_RST_PORT, W5100_RST_BIT)
#define IINCHIP_RSTon()     sbi(W5100_RST_PORT, W5100_RST_BIT)

//-----------------------------------------------------------------------------

 

 

 

테스트 결과 3Mbps정도로 측정된다. SPI방식으로 이정도면 나쁘지 않은것 같다.

 

 

Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM32F103-SM2012. 1. 28. 20:45

[STM32-SM2 EVM] W5200 이더넷 테스트 - NET-EVM 보드

[STM32-SM2 EVM] W5200 이더넷 테스트 -  NET-EVM 보드



STM32를 이용하여 [NET-EVM] 보드에서 W5200 모듈을 테스트 했다.





[NET-EVM] W5100/W5200용 커넥터




STM32-SM2는 핀맵이 약간 수정되었는데.. W5200의 /RST(INT0) 핀이 3.3V로 연결되기 때문에 3.3V끊고 PA15와 0옴으로 연결해 주어야 한다.




W5200 드라이버 코드
//-----------------------------------------------------------------------------
// W5100 HAL
#define _SPI1_ENABLE     1

#define W5100_CS_PORT     GPIOB
#define W5100_CS_BIT     BIT12
#define IINCHIP_RSToff()    cbi(W5100_RST_PORT, W5100_RST_BIT) 
#define IINCHIP_RSTon()     sbi(W5100_RST_PORT, W5100_RST_BIT)

#define W5100_IO_INIT()     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);\
          GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;\
          GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;\
          GPIO_InitStructure.GPIO_Pin=BIT12;\
          GPIO_Init(GPIOB, &GPIO_InitStructure);\
          GPIO_InitStructure.GPIO_Pin=BIT15;\
          GPIO_Init(GPIOA, &GPIO_InitStructure);


#define W5100_RST_PORT     GPIOA
#define W5100_RST_BIT     BIT15

#define IINCHIP_CSoff()     cbi(W5100_CS_PORT, W5100_CS_BIT) 
#define IINCHIP_CSon()     sbi(W5100_CS_PORT, W5100_CS_BIT)

#define IINCHIP_SPI_INIT()    SPI1_Init()
#define IINCHIP_SpiSendData    SPI1_WriteReadByte
#define IINCHIP_SpiRecvData     SPI1_WriteReadByte




STM32 TCP/IP 전송 속도 테스트
최대 SPI클럭 18Mhz 인 STM32에서 전송 속도는 2Mbps정도 출력된다.

코드 옵티마이즈 후 2.5Mbps 까지 가능하다.





Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM32F42011. 12. 6. 23:30

[STM32F4] W5100/W5200 TPC/IP Loopback 전송 속도 테스트

[STM32F4] W5100/W5200 TPC/IP Loopback 전송 속도 테스트



SPI 최대 클럭 21Mhz에서 3.5Mbps 정도 나온다.
빠르긴 한데.. 아쉬운 점은 168Mhz MCU인데 속도가 기대한 만큼은 나오지 않는것 같다.
(PIC32 CP/IP 전송 속도 테스트 결과 와 비교하면 80Mhz PIC32가 더 빠르게 나온다)

SPI클럭 설정을 좀더 자유롭게 할 수 있으면 좋을것 같은데....
SPI FIFO가 없어 그런것 같은데... DMA를 이용하면 좀더 빨라지지 않을까?

------------------------------------------------------------
[7] iInChip Send: 3.5567 Mbps(5278574 bytes, 11.3230 sec)
iInChip Recv: 3.5074 Mbps(5278574 bytes, 11.4822 sec)
------------------------------------------------------------
[8] iInChip Send: 3.5647 Mbps(5278574 bytes, 11.2975 sec)
iInChip Recv: 3.3565 Mbps(5278574 bytes, 11.9982 sec)
--------------------------------------------------------






Cortex-M4 STM32F405 의 W5200 HAL Driver 코드
//-----------------------------------------------------------------------------
// W5100 HAL
#define _SPI1_ENABLE     1

#define W5100_CS_PORT     GPIOB
#define W5100_CS_BIT     BIT12

#define W5100_RST_PORT     GPIOA
#define W5100_RST_BIT     BIT0

#define IINCHIP_RSToff()    cbi(W5100_RST_PORT, W5100_RST_BIT) 
#define IINCHIP_RSTon()     sbi(W5100_RST_PORT, W5100_RST_BIT)

#define W5100_IO_INIT()     RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB, ENABLE);\
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;\
          GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;\
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;\
          GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;\
          GPIO_InitStructure.GPIO_Pin=W5100_CS_BIT;\
          GPIO_Init(GPIOB, &GPIO_InitStructure);\
          GPIO_InitStructure.GPIO_Pin=W5100_RST_BIT;\
          GPIO_Init(GPIOA, &GPIO_InitStructure);


#define IINCHIP_CSoff()     cbi(W5100_CS_PORT, W5100_CS_BIT) 
#define IINCHIP_CSon()     sbi(W5100_CS_PORT, W5100_CS_BIT)

#define IINCHIP_SPI_INIT()    SPI1_Init();IINCHIP_SpiSpeed()
#define IINCHIP_SpiSendData    SPI1_WriteReadByte
#define IINCHIP_SpiRecvData    SPI1_WriteReadByte
#define IINCHIP_SpiSpeed()              SPI1_SetSpeed(SPI_SPEED_MAX)
//-----------------------------------------------------------------------------
Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP430F5x2011. 11. 26. 18:00

[MSP430F5529 EVM] W5200/W5100 TCP/IP loopback 전송 속도 테스트

[MSP430F5529 EVM] W5200/W5100 TCP/IP loopback 전송 속도 테스트



[MSP430F5529 EVM] 을 이용하여 TCP/IP loopbak 전송 속도를 테스트 해 보았다.
MSP430F5x 의 경우 클럭이 최대 32Mhz이고 SPI클럭 속도 설정을 자유롭게 설정 가능하기 때문에 SPI클럭 속도에서 유리한 점이 있다.

메인 클럭을 32Mhz로 설정하고 SPI클럭을 16Mhz로 설정하여 테스트한 결과 2.2Mbps 정도의 전송 속도가 나온다.
다른 MCU의 TCP/IP 전송 속도 테스트 결과 와비교 했을때 나쁘지 않다.

-----------------------------------------------------------
[8] iInChip Send: 2.2657 Mbps(3880723 bytes, 13.0676 sec)
iInChip Recv: 2.1496 Mbps(3880723 bytes, 13.7736 sec)
------------------------------------------------------------
[9] iInChip Send: 2.1323 Mbps(3880723 bytes, 13.8855 sec)
iInChip Recv: 2.2160 Mbps(3880723 bytes, 13.3608 sec)
-------------------------------------------------------




Posted by nexp

댓글을 달아 주세요

[DSP]/DSP283352011. 11. 12. 18:30

[DSP28335 EVM] W5200 TCP Server 전송 속도 테스트 (SPI속도 테스트)

[DSP28335 EVM]  W5200 TCP Server 전송 속도 테스트 (SPI속도 테스트)


TM320F28335와 같이 OS없는 MCU에서 이더넷 처리를 하려며 하드웨어 TCP/P 모듈을 이용하는 것이 가장 간단한 벙법이다. TCP/IP처리를 위한 복잡한 스텍이 필요 없이 간단히 이더넷을 연결 할 수 있다.
드라이버 코드만 수정하면  아주 간단하게 포팅 가능도록 코드를 작성해 두었기 때문에  W5200 모듈을 이용하여 테스트 해볼 예정이다.


TMS320F28335 의 클럭은 150Mhz로 동작한다. 하지만 SPI 동작속도는 최대 10Mhz이다. 참고로 TMS320F2808는 6Mhz, PICCOLO시리즈 TMS320F28069는 4.5Mhz로 이들과 비교 하면 두배 정도 빠른 속도 이다.
요즘 SPI가 대부분인데 최대속도가 다소 느려서 많이 아쉽다.




[LCD_EXP_EVM] 보드에 연결하면 W5100, W5200 TCP/IP 모듈을 쉽게 테스트 가능한다. SPI CS는 TMS320F28335의 GPIO14에 연결되어 있고 Reset(INT)는 GPIO15에 연결되어 있다.






 TMS32F28335에서 SPI방식의 W5200을 이용하여 TCP Server 전송 속도 테스트 결과 SPI Clock 10MHz에서 대략 2.3Mbps정도 출력된다.





W5100/W5200 제어 드라이버 코드
드라이버 코드만 수정하면 모든 MCU에서 쉽게 포팅 가능하도록 코드를 작성해 두고 있다.

//-----------------------------------------------------------------------------
// W5100 HAL
#define W5100_CS_PORT     GPIOA
#define W5100_CS_BIT     BIT14

#define W5100_RST_PORT     GPIOA
#define W5100_RST_BIT     BIT15

#define IINCHIP_RSToff()    cbi(W5100_RST_PORT, W5100_RST_BIT) 
#define IINCHIP_RSTon()     sbi(W5100_RST_PORT, W5100_RST_BIT)


#define W5100_IO_INIT()     EALLOW;\
          GpioCtrlRegs.GPAMUX1.bit.GPIO15 = 0;\
          GpioCtrlRegs.GPADIR.bit.GPIO15 = 1;\
          GpioCtrlRegs.GPAMUX1.bit.GPIO14 = 0;\
          GpioCtrlRegs.GPADIR.bit.GPIO14 = 1;\
          EDIS;\


#define IINCHIP_CSoff()     cbi(W5100_CS_PORT, W5100_CS_BIT)
#define IINCHIP_CSon()     sbi(W5100_CS_PORT, W5100_CS_BIT)

#define IINCHIP_SPI_INIT()    SPI0_Init()
#define IINCHIP_SpiSendData    SPI0_WriteReadByte
#define IINCHIP_SpiRecvData    SPI0_WriteReadByte
#define IINCHIP_SPI_SPEED()    SPI0_SetSpeed(SPI_SPEED_MAX)
//-----------------------------------------------------------------------------



 

Posted by nexp

댓글을 달아 주세요

  1. 비밀댓글입니다

    2014.08.06 13:01 [ ADDR : EDIT/ DEL : REPLY ]