W5100의 Destination IP설정
Destinatin IP, PORT는 Active 모드에서 설정가능한데 커멘드 레지스터에 Sn_CR_CONNECT를 전송해야 Active모드로 되고 Destination IP값이 변경되지 않는다.
IINCHIP_WRITE(Sn_DIPR0(0), dip[0]);
printf("set dip -> %d\r\n", dip[0]);
//Sn_CR레지스터에 Sn_CR_CONNECT명령을 전송해야 active mode가 되어 반영이 된다.
IINCHIP_WRITE(Sn_CR(0), Sn_CR_CONNECT);
printf("dip read = %d\r\n", IINCHIP_READ(Sn_DIPR0(0)));
// wait for completion
while (IINCHIP_READ(Sn_CR(0)))
{
}
printf("write ok => %d\r\n", IINCHIP_READ(Sn_DIPR0(0)));
테스트 결과
W5100 Simple TCP Server Test Program.
================================================
Net Config Information
================================================
MAC ADDRESS : 00:08:DC:00:00:00:
SUBNET MASK : 255.255.255.0.
G/W IP ADDRESS : 192.168.1.94.
LOCAL IP ADDRESS : 192.168.1.92.
================================================
set dip -> 192
dip read = 0
write ok => 0
->IINCHIP_WRITE(Sn_CR(0), Sn_CR_CONNECT); 추가후 정상 read됨
set dip -> 192
dip read = 192
write ok => 192