안녕하세요.
mBed Nucleo L152RE 보드에 W5500을 이용한 ethernet shield를 꽂아 TCP/IP 통신을 하려고 합니다.
Nucleo L152RE - developer.mbed.org/platforms/ST-Nucleo-L152RE/
W5500 Ethernet Shield - seeedstudio.com/depot/W5500- … -2433.html
테스트를 위해 예제 프로그램(developer.mbed.org/teams/WIZnet … elloWorld/)을 올려보려고 했는데,
DHCP를 통해 IP를 얻어오지 못하는 문제가 발생했습니다. (retry 3번 후 timeout)
예제 소스 및 WIZnet_Library를 디버깅해보니 WIZnetInterface::init(MAC_Addr) 함수의 내부에서
MAC_Addr을 this->mac에 저장하고,
WIZnet_Chip::reset()함수 내에서 reg_wr_mac()을 통해 this->mac의 값을 SHAR에 저장하는 것으로 알고 있는데요.
WIZnet_Chip::reset() 후 SHAR를 다시 읽어보면 FF:FF:FF:FF:FF:FF를 반환하고 있습니다.
L152RE를 연동하기 위해서
#elif defined(TARGET_NUCLEO_L152RE)
SPI spi(PA_7, PA_6, PA_5);
WIZnetInterface ethernet(&spi, PB_6, PC_7);
#endif
이렇게 SPI와 WIZnetInterface object를 생성했는데, 여기가 잘못된 것일까요?
WIZnetInterface의 3번째 argument인 reset pin은 L152RE에서 찾지 못해서 임의의 핀을 넣었는데,
library 소스를 보니 무조건 1로 설정하는 것 같아서 별 상관없다 생각했는데, 이게 문제일까요?
MAC address 설정 및 DHCP 연동을 못하니 다른 이후의 작업들을 아무 것도 할 수가 없네요.
조언 부탁드립니다.
감사합니다.