본문 바로가기

[MCU]/CANTUS

[CANTUS EX EVM] W5100 외부 메모리로 제어하기 - W5100 Direct Mode TCP전송 속도

[CANTUS EX EVM]  W5100 외부 메모리로 제어하기 - W5100 Direct Mode TCP전송 속도



[CANTUS-EX EVM] 보드의 W5200 CS는 nCS2(6008_0000h)에 할당되어 있다.




일단 간단히 W5100 제어 레지스터에 값을 읽고 쓰는 테스를 해 보자
 #define COMMON_BASE                              0x60080000
#define SHAR0                                                 (COMMON_BASE + 0x0009)


while(1)
{
        //W5100 MAC 레지스터에 값 쓰기
        *((vuint8*)(COMMON_BASE+SHAR0 )) = data;
        Delay(500);

        //MAC 레즈스터값 읽기
        temp =  *((vuint8*)(COMMON_BASE+SHAR0 ));
        DebugPrint("read=%x\r\n", tenp);
       Delay(500);
}



정상 동작한다.

W5100 TCP Server 루프백 테스트 예제를 포팅하여 테스트 해 보았다.

의외로 속도가 그리 빠르지 않다.
옵티마이즈나? 메모리 타이밍 설정이 필요 할것 같다.
[7] iInChip Send: 4.8839 Mbps(1193338 bytes, 1.8642 sec)
iInChip Recv: 4.0566 Mbps(1193338 bytes, 2.2443 sec)
------------------------------------------------------------
[8] iInChip Send: 4.3536 Mbps(1193338 bytes, 2.0913 sec)
iInChip Recv: 4.0821 Mbps(1193338 bytes, 2.2303 sec)
--------------------------------------------------------




한가지 문제가 발생했다.
데이터 전송을 잘 되는데... 수신이 문제가 있는것 같다.(송신이 이상한가?)
루프백 테스트시 read에서 invaild가 발생한다.

물론 한번에 100000Byte 이상 보내는것은 문제가 없이 송수신된다.

PC 소프트웨어 문제이가?
하드웨어적 이상인가?

패킷 캡쳐해본 결과 데이터 자체는 문제가 없는것 같다. 송수신 데이터는 같은데...
소프트웨어 문제 인가?

10kbye정도의 작은 데이터 전소 성공후 또 잘 된다.
메모리 엑세스 타이밍 조절으로 최대 6.2Mbps까지 출력은 되는데...
기대하던 속도는 아니다.(이정도면 SPI 방식보다 그리 빠르지 않은데... 뭔가 좀 이상하다.)




옵티마이즈와 메모리 엑세스 타이밍을 적절히 조절 후 최종 7MBps이상 나온다.
한가지 의심스러운것은 direct모드와 indirect 모드에서 속도차이가 별로 나지 않는다는 것인데... 그렇다면 어쩌면 속도는 더 나올지도 모르겠다.

[1] iInChip Send: 7.4276 Mbps(11983617 bytes, 12.3092 sec)
iInChip Recv: 7.4303 Mbps(11983617 bytes, 12.3048 sec)
------------------------------------------------------------

반응형