|
|
  |
STM32 + Ethernet PHY (MII/RMII) |
|
|
|
Aug 16 2013, 02:36
|

Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978

|
Конкретно интересует отличие DP83848CVV (стоит на плате STM3240G-EVAL) и KSZ8863RLL. В прошивке (примере ST), касаемо железа нашел только следующие настройки: Код #define DP83848_PHY_ADDRESS 0x01 /* Relative to STM324xG-EVAL Board */
#define PHY_MICR 0x11 /* MII Interrupt Control Register */ #define PHY_MICR_INT_EN ((uint16_t)0x0002) /* PHY Enable interrupts */ #define PHY_MICR_INT_OE ((uint16_t)0x0001) /* PHY Enable output interrupt events */ #define PHY_MISR 0x12 /* MII Interrupt Status and Misc. Control Register */ #define PHY_MISR_LINK_INT_EN ((uint16_t)0x0020) /* Enable Interrupt on change of link status */ #define PHY_LINK_STATUS ((uint16_t)0x2000) /* PHY link status interrupt mask */ Код /* PHY configuration section **************************************************/ /* PHY Reset delay */ #define PHY_RESET_DELAY ((uint32_t)0x000FFFFF) /* PHY Configuration delay */ #define PHY_CONFIG_DELAY ((uint32_t)0x00FFFFFF)
/* The PHY status register value change from a PHY to another, so the user have to update this value depending on the used external PHY */ #define PHY_SR ((uint16_t)16) /* Value for DP83848 PHY */
/* The Speed and Duplex mask values change from a PHY to another, so the user have to update this value depending on the used external PHY */ #define PHY_SPEED_STATUS ((uint16_t)0x0002) /* Value for DP83848 PHY */ #define PHY_DUPLEX_STATUS ((uint16_t)0x0004) /* Value for DP83848 PHY */
|
|
|
|
|
Sep 12 2013, 03:07
|

Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978

|
Цитата(theBMV @ Sep 11 2013, 17:30)  Драйвер PHY из примеров носит обычно ознакомительный характер. Инициализация связи только на стадии инициализации. Дальнейший разрыв соединения и, например, изменение скорости/дуплекса никак не будут обработаны, связь будет нарушена. По опыту переписывания драйвера из KS8721BL под DP83848I изменения коснутся адресов некоторых базовых регистров, а так же значений битов состояний. Так, если у KS8721BL бит скорости означает: 0 - 10Мбод, 1 - 100 Мбод; то у DP83848I оказалось наоборот: 0 - 100 Мбод, 1 - 10 Мбод. Что изрядно потрепало нервишки в свое время. на сколько я успел понять при беглом осмотре драйвера, все эти параметры там указаны в дифайнах, т.е. на первом этапе можно тупо значения в дифайнах поменять на датащитовские и уже должно кое как запуститься, так? ну а глобальный перепил уж пойдет на этапе активного развития устройства.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|