Wiz550io + STM32F429 연결시 문의드립니다

제목에서 처럼 Wiz550io와 STM32F429 Discovery 보드에 연결을 하려 합니다.

Wiz550io에서 J1.3 ~ 6까지는 STM32F429의 PA4~7로 연결하였고, J1.6의 SCSn은 STM32F429의 PA4(NSS)로 연결하였습니다.
그외 3.3V와 GND는 모두 연결하였고(J2 포함), J2.3(nRST)에 STM32F429의 PA3을 연결하였습니다.

Wiz550io ----------- STM32F429
J1.3 PA4
J1.4 PA5
J1.5 PA6
J1.6(SCS) PA7(NSS)

J2.3 PA3

소스는 dhcp client 예제가 있어서 참고하여 작성하였는데,

Dhcp_run() 함수안에 socket() 함수에서 멈춰있습니다.
if(getSn_SR(DHCP_SOCKET) != SOCK_UDP)
socket(DHCP_SOCKET, Sn_MR_UDP, DHCP_CLIENT_PORT, 0x00);

socket()의 내부에서 close(sn);을 하고,

/* wait to process the command… */
while( getSn_CR(sn) );

하는 부분에서 계속 멈춰있습니다.

회로 연결을 잘못한 것인지… 소스를 잘못 포팅한 것인지요?
(ethenet과 internet library는 모두 최신으로 받아서 적용하였습니다. - coIDE 사용)

그리고 Wiz550io 모듈이 정상적으로 동작하는 것인지 간단히 알 수 있는 방법은 없을까요?

안녕하세요.

먼저 VERSIONR register(0x0039)를 읽어서 0x04가 읽히는지 확인해보시고

그리고 Ping test로 네트워크 구성이 잘 되있는지 확인 해보세요.
Ping 테스트가 잘 된다면 loop test 예제소스로 loopback 테스트를 해보시기 바랍니다.

감사합니다.

안녕하세요.

#define getVERSIONR()
WIZCHIP_READ(VERSIONR)

라는 매크로가 있어서 체크해 본 결과, 0x01로 찍히고 있습니다.

ping test는 IPRAW 예제 프로그램을 포팅하여 테스트 한 결과 Fail이 발생하고 있습니다.

getSn_SR(0)의 ret값이 1로 찍히는데 무슨 값인지를 모르겠습니다…

확인 부탁드립니다.

감사합니다.

안녕하세요

우선 VERSION register가 제대로 읽히지 않는 것은 SPI 통신이 정상적으로 되고 있지 않거나

Register access가 정상적으로 되고 있지 않다는 것입니다.

먼저 오실로스코프를 이용하여 SPI 통신이 정상적으로 되고 있는지 확인 부탁드리며,
정상적으로 동작하고 있다면 register read write 소스가 문제가 있는 것입니다.

오실로스코프 화면과 소스코드를 올려주시면 확인 해보도록 하겠습니다.

감사합니다.

안녕하세요.

오실로스코프는 장비가 없어서 SPI가 정상적으로 동작하는지는 확인하지 못하였습니다.

소스는 첨부하였습니다.

확인 부탁드립니다.

감사합니다.
STM32F429ZIT6_Wiz550io_140825.zip (534 KB)

드라이버는 이상이 없는 것 같습니다.

SPI통신 부분만 정확히 확인해 보면 될 것 같습니다.