Маленькая проблема переросла в большую.
За основу взял stm32f4 cubemx, сам проект \Projects\STM324xG_EVAL\Applications\LwIP\LwIP_HTTP_Server_Raw\MDK-ARM
С начало подключил dp83848, подключил таким образом как в этой статье http://blog.tkjelectronics.dk/2012/08/ethe...g-external-phy/
все заработало с первого раза. Этот рабочий проект взялся переделывать под физику ksz8051RNL. Интерфейс RMII, ksz8051RNL тактируется кварцом на 25 Мгц.
Подключил ksz8051RNL, перенастроил
1) Закоментировал #define USE_DHCP, прописал IP и маску, шлюз
2) Прописал интерфейс RMII
EthHandle.Init.MediaInterface = ETH_MEDIA_INTERFACE_RMII;
3) Поменял адрес физики и регистры
#define DP83848_PHY_ADDRESS 0x00
4)
#define PHY_SR ((uint16_t)0x00)
#define PHY_SPEED_STATUS ((uint16_t)0x2000) /*!< PHY Speed mask 13-й бит */
#define PHY_DUPLEX_STATUS ((uint16_t)0x1000) /*!< PHY Duplex mask 8-й бит */
PHY_BCR и PHY_SR это одно и тоже, просто чтоб код не переписывать, из PHY_SR нам нужно узнать только скорость и режим.
ksz8051RNL запускалась в HALFDUPLEX
После HAL_ETH_Start(&EthHandle); добавил переключение режима
HAL_ETH_WritePHYRegister(&EthHandle, PHY_SR, PHY_DUPLEX_STATUS);
Теперь с регистра что ksz8051RNL работает на FULLDUPLEX и SPEED_100M.
После запуска веб молчит, пинги тоже. Видимо еще что-то нужно поменять чтоб заработало на ksz8051RNL.
На J-45 зеленый светодиод светит постоянно, желтый мигает.
Помогите плз.