w550io 모듈을 사용하고 있습니다. MCU는 STM32F722입니다.
ctlnetwork(CN_GET_NETINFO, (void*) &gWIZNETINFO); 를 사용하여 네트워크 정보를 읽어 온 후에,
터미널로 출력을 하면 아래와 같이 표시가 됩니다.
MAC address: 03-FF-FF-FE-00-00
IP address : 192.168.1.2
Subnet Mask: 255.255.255.0
Gate way : 192.168.1.1
DNS Server : 0.0.0.0
IP Address는 공장 초기값으로 정상적으로 불러들였는데 MAC address는 위와 같이 나옵니다.
제가 알기로는 MAC address도 초기화 시에 모듈에 붙어있는 MAC 어드레스가 적용되는 것으로 알고 있습니다.
혹시 정보를 불러들일 때 다른 방법이 있는지요?
아래의 코드는 모듈 초기화 부분입니다.
int W5500_Init(void)
{
u08 sockBuff[2][8] = {{2,2,2,2,2,2,2,2,},{2,2,2,2,2,2,2,2}};
u32 tickStart;
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); // Reset On
HAL_Delay(10);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); // Reset Off
HAL_Delay(150);
// Ready Signal On
tickStart = HAL_GetTick();
while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) == 0)
{
HAL_Delay(1);
if((HAL_GetTick() - tickStart) > 3000)
{
LoggerString("W550io Module Not Detected !!!");
return -1;
}
}
HAL_Delay(10);
// spi function register
reg_wizchip_spi_cbfunc(W5500ReadByte, W5500WriteByte);
// CS function register
reg_wizchip_cs_cbfunc(W5500Select, W5500DeSelect);
// Critical section
//reg_wizchip_cris_cbfunc(spiMutexEnter,spiMutexExit);
//W5500Select();
if(ctlwizchip(CW_INIT_WIZCHIP,(void*)sockBuff) == -1)
{
LoggerString("W5500 initialized fail.");
return -1;
}
/*Set network information by default*/
tickStart = HAL_GetTick();
do{//check phy status.
if((HAL_GetTick() - tickStart) > 3000 )
{
LoggerString("Ethernet Link timeout.");
return -1;
}
}while(!isLinked());
wizchip_getnetinfo(&g_sWIZNETINFO);
// Buffer Initinal
memset(g_ucTcpBuff, 0x00, sizeof(g_ucTcpBuff));
g_uiTcpRecvSize = 0;
return 1;
}