본문 바로가기

[TI]/LM3S5xxx

[LM3S5732 EVM] W5200 테스트

[LM3S5732 EVM] W5200 테스트










type.h의 bool 타입이 기존 프로젝트와 겹쳐서 컴파일 에러가 발생한다.
이런 부분은 컴파일마다 차이가 발생할 수 있으므로 unsigned char로 대체 했다.
//typedef enum { false, true } bool;


socket.c, socket.h 파일에서 bool 사용하는것을 수정 했다.
extern uint16 send(SOCKET s, const uint8 * buf, uint16 len, bool retry); // Send data (TCP)


다른 MCU와 다르게 INT/RST 를 묶어 두었을때 포트가 정상 동작하지 않는다.(다른 MCU에서는 INT/RST핀을 동시에 사용하도록 했었다.)
아무래도 GPIO특성상 4mA밖에 흘리지 못해서 그런것 같다.
INT/RST 핀을 따로 분리 하니 잘 동작한다.




또 한가지 문제가 발생 했다.

SPI클럭 설정 부분에서 12Mhz이상 되면 정상 동작하지 않는다.
스펙상으로 25Mhz까지 동작한다고 하는데...
12Mhz이상 설정하면 무조건 25Mhz클럭이 출력되도 정상 동작하지는 않는다.

 SSIConfigSetExpClk(SSI0_BASE, SysCtlClockGet(),
        SSI_FRF_MOTO_MODE_0, //SPI MODE 설정
        SSI_MODE_MASTER,  //Maser/Slave
        12000000,    //SPI 클럭 주파수
        gSpIDataWidth);     //데이터크기


SSIClk = FSysClk / (CPSDVSR * (1 + SCR))

레지스터를 직접 설정해 보았지만 아무리 조합 해 봐도 12Mhz이상 나오지 않는다. 계산상으로도 그렇고..(CPSR 은 2의 배수이기 때문이다.)
HWREG(SSI0_BASE + SSI_O_CPSR) = 3;
HWREG(SSI0_BASE + SSI_O_CR0) &= ~(0xFF00);

결론은 Luminary의 최대 클럭은 12Mhz이다.


12Mhz일 때 TCP 전송 속도는 1.79Mbps정도 된다. 
[1] iInChip Send: 1.7998 Mbps(3966014 bytes, 16.8116 sec)
iInChip Recv: 1.7996 Mbps(3966014 bytes, 16.8136 sec)
------------------------------------------------------------
반응형