Цитата(Integro @ Oct 22 2014, 14:16)

Первое, проверьте есть ли связь по MDIO, есть функции чтения и записи не знаю как cube их обозвал, найти их можно при конфигурировани Eth. там и увидите функции чтения и записи MDIO, попробуйте вычитать 0-0xf регистры, среди которых есть phy_idс его помощью можно установить валидность данных.
Если связь есть, посмотрите меняется ли статус линка. Линка нет, проблема в конфигурации PHY, проверьте пины CONFIGx, кварц, выходную частоту на проц.
Из поста не ясно что там у вас платой, если монтаж PHY на проводах, длина должна быть минимальна.
CONFIG0 и CONFIG1 висят в воздухе, CONFIG2/ETH_CRS, он заведен на МК.
Регистры считываю:
HAL_ETH_ReadPHYRegister(&EthHandle, 0x00, ®value);
regvalue = 0x00001000
HAL_ETH_ReadPHYRegister(&EthHandle, 0x02, ®value);
regvalue =0x00000022
HAL_ETH_ReadPHYRegister(&EthHandle, 0x03, ®value);
regvalue =0x00001556
Вот фото платы.
Цитата(Integro @ Oct 22 2014, 14:16)

Если связь есть, посмотрите меняется ли статус линка. Линка нет, проблема в конфигурации PHY, проверьте пины CONFIGx, кварц, выходную частоту на проц.
Связь по MDIO есть.
Чтение из регистра Basic Status = 0x01, HAL_ETH_ReadPHYRegister(&EthHandle, 0x01, ®value);
regvalue = 0x0000786D
То есть второй бит Link Status = 1( Link is up)
четвертый бит Remote Fault = 0( No remote fault)
P.S.
Вот тут всегда не попадает в цикл
if(((heth->RxDesc->Status & ETH_DMARXDESC_OWN) == (uint32_t)RESET))
{
.....
Этот цикл в процедуле
if (HAL_ETH_GetReceivedFrame(&EthHandle) != HAL_OK)
return NULL;
То есть ничего не приходит
Сообщение отредактировал vovanxp - Oct 22 2014, 14:51
Эскизы прикрепленных изображений