[W5500] 소켓 생성 문의
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Share projects and connect with makers.
Joined before the site update? first.
New to WIZnet Makers?
We sent a verification link to your address. Open it to activate your account, then log in.
Accounts from this email provider are reviewed by an administrator after verification. Approval usually takes one business day.
Already have an account?
Enter your email address. If it belongs to an account, we'll send a link to set a new password. Members who joined before the site update use this to set their password.
If an account uses that address, we sent a link to set a new password. The link works once and expires in 30 minutes.
Know your password?
Need an account?
RE: [W5500] 소켓 생성 문의
by becky ·
필요한 다른 절차는 없습니다.
우선 ioLibrary를 업데이트하여 한번더 테스트 해보시길 바랍니다.
이전에 이와 비슷한 증상이 있었던 고객은 자삽 불량으로 확인되었습니다.
해당 고객도 PING은 전송되었지만 SOCKET 상태가 CLOSED에서 변하지 않았습니다.
한번 더 확인해보시길 바랍니다.
RE: RE: [W5500] 소켓 생성 문의
by Member 1113 ·
"자삽 불량"이 뭔가요?
getSn_SR(0) 실행 후 4 BYTE 수신됨
현재 - [0] 0x01, [1] 0x00, [2] 0x06, [3] 0x00
예상 - [0] 0x01, [1] 0x02, [2] 0x03, [3] 0x13(SOCK_INIT)
getSn_SR 만 실행하면 왜 수신되는 더미 값이 [1][2][3][xx] 아니고 [1][0][6][xx] 인가요?
이전에도 이런 문의가 있었나요?
다른 모든 get 함수 실행 후 수신되는 더미값은 [1][2][3][xx] 형태입니다.
RE: [W5500] 소켓 생성 문의
by becky ·
자삽은 PCB 생산과정에서 기계를이용하여 부품을 삽입하는것을 말합니다.
PCB불량으로 추측됩니다.
비슷한 증상을 겪으신 고객 문의글입니다.
RE: [W5500] 소켓 생성 문의
by Member 1113 ·
getSn_SR 만 실행하면 왜 수신되는 값이 [1][2][3][xx] 아니고 [1][0][6][xx] 인가요?
다른 모든 get 함수 실행 후 수신되는 값은 [1][2][3][xx] 형태입니다.
RE: RE: [W5500] 소켓 생성 문의
by Member 1113 ·
DGND 연결이 잘못되어 발생한 문제입니다.
RE: [W5500] 소켓 생성 문의
by becky ·
네 해결하셨다니 다행입니다.
감사합니다
RE: [W5500] 소켓 생성 문의
by kkumuk1 ·
혹시 어느 DGND를 어떻게 잘못 연결하셨는지 알 수 있을까요?
w5300이긴한데, 같은 증상으로 고생하고 있습니다.
회로도상으로 GND연결에 특별히 문제가 보이지 않아서요.
RE: [W5500] 소켓 생성 문의
by kkumuk1 ·
저의 경우에는 결국 두가지 문제였습니다.
뭔가 common register와 socket register의 타이밍이 약간다른지도 모르겠습니다. 아니면 뭔가 모르는 아슬아슬한 경계에 있었던가요.
(모든 register들을 확인한 것은 아니었지만) 주로 확인할만한 register들 write/read에 문제가 없었습니다.
하지만 write timing을 바꾼뒤 socket 상태가 변경되었습니다.
write timing을 좀 더 여유있게 바꿨습니다.
제가 바꾼 설정은 아래와 같습니다.
Emif1Regs.ASYNC_CS4_CR.bit.R_SETUP = 4;
Emif1Regs.ASYNC_CS4_CR.bit.R_STROBE = 36;
Emif1Regs.ASYNC_CS4_CR.bit.R_HOLD = 0;
Emif1Regs.ASYNC_CS4_CR.bit.TA = 0;
Emif1Regs.ASYNC_CS4_CR.bit.W_SETUP = 0;
Emif1Regs.ASYNC_CS4_CR.bit.W_STROBE = 10;
Emif1Regs.ASYNC_CS4_CR.bit.W_HOLD = 0;
Emif1Regs.ASYNC_CS4_CR.bit.R_SETUP = 0;
Emif1Regs.ASYNC_CS4_CR.bit.R_STROBE = 63;
Emif1Regs.ASYNC_CS4_CR.bit.R_HOLD = 0;
Emif1Regs.ASYNC_CS4_CR.bit.TA = 0;
Emif1Regs.ASYNC_CS4_CR.bit.W_SETUP = 100;
Emif1Regs.ASYNC_CS4_CR.bit.W_STROBE = 100;
Emif1Regs.ASYNC_CS4_CR.bit.W_HOLD = 0;
16bit설정을 32bit로 바꿨습니다.
기본적으로 EMIF 는 memory interface라 w5300같은 외부장치에는 딱 맞는게 아닌 것 같습니다.
16bit로 설정하면 DSP는 외부메모리에서 읽을 때 EMIF가 address도 알아서 바꿔가며 두번!을 읽고 내부적으로 32bit만들어 값을 전달해줍니다.
일반 16bit메모리면 딱 좋은데 w5300 에서는 좀 안맞는 부분이 있습니다. (FIFOR같은 걸 읽는다든가)
32bit로 설정하니 잘 되더군요.
저는 16bit도 써야해서(다른 장치도 물려있어서) w5300 사용할 만 32bit로 바꿔서 처리했습니다.
읽을 때 아래처럼 읽었습니다.
Xinf_set_ASYNC_CS4_CR_ASIZE(0x02); // for w5300, EMIF 32bit
enableAddrDecoder();
ui32val = (*(volatile uint32_t *)(shell_addr));
disableAddrDecoder();
Xinf_set_ASYNC_CS4_CR_ASIZE(0x01); // for w5300, EMIF 16bit
오랜시간 도움주신 wiznet 기술지원에도 감사드립니다.