K20 EVM - Kinetis Cortex-M4 W5200을 이용한 TCP/IP 루프백 전송속도 테스트
W5200은 HW TCP/IP 스택을 내장하고 있는 칪으로 저렴한 MCU에서 SPI통신으로 쉽게 Ethernet 통신이 가능하도록 해준다.
K20에서 W5200을 이용하여 TCP/IP 전송 속도 테스를 진행해 보았다.
K20의 SPI최대 속도는 25Mhz이고 TCP/IP 루프백 속도 테스트 결과 2.5Mbps 정도로 측정된다.
[34] iInChip Send: 2.6033 Mbps(348160 bytes, 1.0203 sec)
iInChip Recv: 2.2290 Mbps(348160 bytes, 1.1917 sec)
------------------------------------------------------------
[35] iInChip Send: 2.6008 Mbps(348160 bytes, 1.0213 sec)
iInChip Recv: 2.2092 Mbps(348160 bytes, 1.2023 sec)
-------------------------------------------------------
K20 Hadward TCP/IP Network Module W5200 드라이버 코스코드
TCP/IP 전송속도 테스트를 위하여 [Net_EV-SM EVM] 확장 테스트 보드를 이용하였다.
SPI는 SPI0에 연결되어 있고 /CS는 PB3, /RESET는 PB2에 각각 연결되어 있다.
//-----------------------------------------------------------------------------
// W5200 HAL
#define W5100_CS_PORT GPIOB
#define W5100_CS_BIT BIT3
#define W5100_RST_PORT GPIOB
#define W5100_RST_BIT BIT2
#define W5100_IO_INIT() SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK;\
PORTB_PCR2 = PORT_PCR_MUX(1);\
PORTB_PCR3 = PORT_PCR_MUX(1);\
Sbi(GPIOB_PDDR, W5100_CS_BIT);Sbi(GPIOB_PDDR, W5100_RST_BIT);\
IINCHIP_CSon();
#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();IINCHIP_SPI_SPEED();
#define IINCHIP_SpiSendData SPI0_WriteReadByte
#define IINCHIP_SpiRecvData SPI0_WriteReadByte
#define IINCHIP_SPI_SPEED() SPI0_SetSpeed(SPI_SPEED_MAX)
#define IINCHIP_RSToff() cbi(W5100_RST_PORT, W5100_RST_BIT)
#define IINCHIP_RSTon() sbi(W5100_RST_PORT, W5100_RST_BIT)
//-----------------------------------------------------------------------------