Пытаюсь поднять Ethernet по статье http://eugenemcu.ru/publ/13-1-0-79 (статья к сожалению недописана, и, как мне кажется, на самом важном месте)
Делаю все по статье(удаляю ненужные модули, переназначаю GPIO), PHY_ADDRES нашел в даташите на KSZ8031, он равен 0x03
Сначала программа вешалась в функции Ethernet_Configuration, в цикле while (ETH_GetSoftwareResetStatus() == SET);
Нашел в интернете, что это изза того, что включать Ethernet Clock нужно не до этого цикла, а после. исправил, программа прошла дальше.
И тут возникает несколько вопросов
1) Как понять, работает ли Ethernet или нет? витая пара подключена к компьютеру, но когда запускаю программу там так и пишет "Сетевой кабель не подключен". я так подозреваю, это говорит о том, что ethernet не работает, соотвественно, что может быть не так и куда копать в поисках ошибки?
2) Как узнать, правильный ли PHY_Address задан? в дата шите что-то говорилось про другой PHY_Address
3) Правильно ли решена проблема с зависанием в цикле while (ETH_GetSoftwareResetStatus() == SET); ?
4) в GPIO_Configuration есть такие строчки:
Код
/* ADC Channel14 config --------------------------------------------------------*/
/* Relative to STM3210D-EVAL Board */
/* Configure PC.04 (ADC Channel14) as analog input -------------------------*/
// PA3 - ADC1 CH03
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Relative to STM3210D-EVAL Board */
/* Configure PC.04 (ADC Channel14) as analog input -------------------------*/
// PA3 - ADC1 CH03
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
Что они активируют? у меня на PA3 ничего не заведено
Модифицированный мной проект: ссылка
Заранее спасибо за ответы!