Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32 + Ethernet PHY (MII/RMII)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
k000858
Всем привет.
Есть ли разница в общении (в программном смысле) с разными микросхемами физического уровня?

Объясню: есть отладочная плата с стм32 и дорогой физикой. Прошивка представляет из себя инициализацию eth mac в стм32, lwip + web (взято из примеров ST), есть задача сделать аналогичную макетку, но с другой микросхемой физического уровня ethernet. В исходниках программы надо будет что то править под другую микросхему или достаточно настроить MII/RMII интерфейс и вперед?
andrewlekar
Да, разница есть.
Как правило чуть-чуть различаются регистры PHY, иногда выставлен другой адрес, часть настроек может задаваться программно или аппаратно подтягивающими резисторами - у разных PHY могут быть назначены разные настройки несмотря на одинаковое аппаратное подключение.
iosifk
Цитата(andrewlekar @ Aug 15 2013, 15:46) *
Да, разница есть.
Как правило чуть-чуть различаются регистры PHY, иногда выставлен другой адрес, часть настроек может задаваться программно или аппаратно подтягивающими резисторами - у разных PHY могут быть назначены разные настройки несмотря на одинаковое аппаратное подключение.

Добавлю. Могут быть отличия в скорости работы служебного канала и в разрешенных там адресах... Но на самом деле количество PHY не так и велико. А потому исходники настройки могут быть доступны в сети...
k000858
Конкретно интересует отличие 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 */
Golikov A.
от физики надо фактически контрольный регистр выбрать скорость работы
рессетнуть ее чтобы она в сети нашлась если стоит автонегатинация
и статусный регистр чтобы узнать на какую скорость настроилась физика

адрес физики можно определить перебором, обычно так и делают.

Стандарта на регистры и их значения нет (так гласит мануал) но в большинстве своем они лежат все очень близко. Какой то регистр был закреплен стандартом, то ли восьмой - идентификатор физики, то ли первые 8 регистров.

После настройки физики то какая она уже не на что не влияет со стороны СТМ, на то у него и медиа индепендет интерфейс.
k000858
ну вроде понятно все. в общем дождусь как появится на руках чип KSZ8863RLL и буду пробовать. может еще вопросы появтся.
DmitryM
Цитата(k000858 @ Aug 16 2013, 10:29) *
ну вроде понятно все. в общем дождусь как появится на руках чип KSZ8863RLL и буду пробовать. может еще вопросы появтся.

Извиняюсь, а как Вы сравниваете по цене обычный PHY DP83848 и 3-port switch KSZ8863RL?? почему не например KSZ8041TL?
k000858
Цитата(DmitryM @ Aug 16 2013, 11:37) *
Извиняюсь, а как Вы сравниваете по цене обычный PHY DP83848 и 3-port switch KSZ8863RL?? почему не например KSZ8041TL?

мне вместо 1 портового DP83848 необходимо поставить 2х портовый
iosifk
Цитата(k000858 @ Aug 16 2013, 10:29) *
ну вроде понятно все. в общем дождусь как появится на руках чип KSZ8863RLL и буду пробовать. может еще вопросы появтся.

Так для начала скачайте всю доку с их сайта. Они выкладывают все начиная от исходников и кончая герберами...
k000858
Цитата(iosifk @ Aug 16 2013, 13:36) *
Так для начала скачайте всю доку с их сайта. Они выкладывают все начиная от исходников и кончая герберами...

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

на сколько я успел понять при беглом осмотре драйвера, все эти параметры там указаны в дифайнах, т.е. на первом этапе можно тупо значения в дифайнах поменять на датащитовские и уже должно кое как запуститься, так?
ну а глобальный перепил уж пойдет на этапе активного развития устройства.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.