Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ищу конвертор из MDIO в I2C
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Fast Ethernet/Gigabit Ethernet/FibreChannel
vitan
Искал повсюду, не нашел ничего подобного.

Нужно подключать к MAC модули SFP.
Проблема в том, что у MAC интерфейс MDIO, а у SFP - I2C.
Конвертор можно сделать, по-идее, где-нибудь в ПЛИС или на микроконтроллере, но не хочется тратить время, хочется взять готовое.

Есть ли такое?
Victor®
Цитата(vitan @ Feb 14 2011, 18:23) *
Искал повсюду, не нашел ничего подобного.

Нужно подключать к MAC модули SFP.
Проблема в том, что у MAC интерфейс MDIO, а у SFP - I2C.
Конвертор можно сделать, по-идее, где-нибудь в ПЛИС или на микроконтроллере, но не хочется тратить время, хочется взять готовое.

Есть ли такое?


Это как вы сразу к MAC собрались SFP подключать-то?
SFP согласно спецификации это SERDES (который является 1000BASE-X) и который никак MAC интерфейсом не является.
Т.е. для подключения MAC к SFP между ними нужен PHY, который сделает из GMII/RGMII/SGMII на выходе 1000BASE-X (88E1111, например)

Смутно догадываюсь, что Ваш SFP - "несовсем стандартный". Скорее всего 10\100\1000BASE-T c SGMII, и MAC c SGMII.
vitan
Цитата(Victor® @ Feb 14 2011, 19:05) *
Смутно догадываюсь, что Ваш SFP - "несовсем стандартный". Скорее всего 10\100\1000BASE-T c SGMII, и MAC c SGMII.

Так точно. sm.gif
Очень хочется сэкономить время на разработку путем применения этих SFP и не рисовать кучу PHY и не разводить под них плату. Только, как всегда, есть ложка дегтя.
Что-то чувствую, не найти. Экономия времени, таким образом, может вылиться в написание и отладку своего конвертора на ПЛИС. crying.gif
Victor®
Цитата(vitan @ Feb 14 2011, 20:24) *
Так точно. sm.gif
Очень хочется сэкономить время на разработку путем применения этих SFP и не рисовать кучу PHY и не разводить под них плату. Только, как всегда, есть ложка дегтя.
Что-то чувствую, не найти. Экономия времени, таким образом, может вылиться в написание и отладку своего конвертора на ПЛИС. crying.gif


А вот зачем MDIO используется?
Правильно - для автонегоциации (скорость, дуплекс)
Но у SGMII есть автонегоциация уже "внутри". Поэтому, если я не ошибаюсь
MDIO на SGMII не нужно.
Еще... а что по I2C вы хотите увидеть в модуле?
Посмотрите, что там лежит. Станет понятно - нужно это именно MAC-у - или нет.
Обычно там лежит имя производителя, тип модуля, можность передатчика, температура... емнип
и ничего такого, что надо MAC-у.
vitan
Я хочу нарисовать схему и развести плату. Это надо сделать так, чтобы потом не переделывать.
MDIO используется в общем случае не только для переговоров, но и для чтения\записи любых регистров, которые есть внутри PHY.
В случае SFP-модуля c SGMII внутри него есть не только PHY, но и EEPROM. Я пока не смотрел детально, но думаю, что EPROM имеет адрес 0, а PHY - адрес 1 на шине I2C.
По стандарту SFP в EPROM может содержаться много всего. Кроме того, как мне стало известно, большинство таких SFP делается на марвеле 1111, а сколько там регистров я хорошо представляю. sm.gif
Т.о. нужно как-то управлять SFP.
В моем случае управление имеется на том же чипе, что и MAC, и оно сделано на MDIO. Там есть автоматический поллинг по MDIO и другие вещи, которые хотелось бы использовать по назначению. Данные, которые чип получает по MDIO, он сразу складывает в свои внутренние регистры, к которым обеспечивается доступ стандартными драйверами, без переписывания софта. От этого всего не хочется отказываться.
Конечно, можно прицепить какую-то внешнюю (по отношению к MAC) I2С, но хочется решить задачу красиво и правильно.
Victor®
Цитата(vitan @ Feb 15 2011, 11:10) *
Я хочу нарисовать схему и развести плату. Это надо сделать так, чтобы потом не переделывать.
MDIO используется в общем случае не только для переговоров, но и для чтения\записи любых регистров, которые есть внутри PHY.
В случае SFP-модуля c SGMII внутри него есть не только PHY, но и EEPROM. Я пока не смотрел детально, но думаю, что EPROM имеет адрес 0, а PHY - адрес 1 на шине I2C.
По стандарту SFP в EPROM может содержаться много всего. Кроме того, как мне стало известно, большинство таких SFP делается на марвеле 1111, а сколько там регистров я хорошо представляю. sm.gif
Т.о. нужно как-то управлять SFP.
В моем случае управление имеется на том же чипе, что и MAC, и оно сделано на MDIO. Там есть автоматический поллинг по MDIO и другие вещи, которые хотелось бы использовать по назначению. Данные, которые чип получает по MDIO, он сразу складывает в свои внутренние регистры, к которым обеспечивается доступ стандартными драйверами, без переписывания софта. От этого всего не хочется отказываться.
Конечно, можно прицепить какую-то внешнюю (по отношению к MAC) I2С, но хочется решить задачу красиво и правильно.


Ну тогда обратитесь с саппорт производителя MAC и опишите ситуацию.
vitan
Цитата(Victor® @ Feb 15 2011, 11:42) *
Ну тогда обратитесь с саппорт производителя MAC и опишите ситуацию.

Сомневаюсь, что мне что-то скажут внятное, хотя попробовать можно, конечно...

Посмотрел, что внутри SFP (для примера взял Finisar 825x). Оказывается, EPROM там имеет адрес вовсе не 0, как того требует стандарт. Странно, но ладно, раз уж отклонились от стандарта в протоколе передачи, то и здесь, видимо, можно.

Конвертилку сделать, очевидно, будет весьма непросто, учитывая то, что надо в реальном времени переставлять биты в последовательных потоках. Возможно, это вообще недостижимо.
Поэтому решил забить и сделать все-таки управление SFP от внешнего I2C.
Victor®
Цитата(vitan @ Feb 15 2011, 14:32) *
Сомневаюсь, что мне что-то скажут внятное, хотя попробовать можно, конечно...

Посмотрел, что внутри SFP (для примера взял Finisar 825x). Оказывается, EPROM там имеет адрес вовсе не 0, как того требует стандарт. Странно, но ладно, раз уж отклонились от стандарта в протоколе передачи, то и здесь, видимо, можно.

Конвертилку сделать, очевидно, будет весьма непросто, учитывая то, что надо в реальном времени переставлять биты в последовательных потоках. Возможно, это вообще недостижимо.
Поэтому решил забить и сделать все-таки управление SFP от внешнего I2C.


А зачем в реальном времени?
Делаете в FPGA 2-х портовку, на нее навешивеете с одной стороны MDIO, с другой I2С.
Ну и подумать как это разруливаться будет.
Думаю и на каком-то простом MCU это делается очень просто.
vitan
Цитата(Victor® @ Feb 15 2011, 16:43) *
очень просто.

Это была первая мысль. Вторая мысль была, что после окончания фазы адреса мастер на MDIO сразу (почти) генерит новый фронт на MDC и ждет, что к нему придут данные. Это меня напрягло. Делать какие-то отложенные обмены на другой стороне не хочется, а еще больше не хочется выяснять, что будет на системном (программном) уровне из-за этих превращений с задержками. В моих условиях это не выход, мне хотелось бы применить что-то готовое.
_pv
Цитата(vitan @ Feb 15 2011, 20:27) *
Это была первая мысль. Вторая мысль была, что после окончания фазы адреса мастер на MDIO сразу (почти) генерит новый фронт на MDC и ждет, что к нему придут данные. Это меня напрягло. Делать какие-то отложенные обмены на другой стороне не хочется, а еще больше не хочется выяснять, что будет на системном (программном) уровне из-за этих превращений с задержками. В моих условиях это не выход, мне хотелось бы применить что-то готовое.

так там же просто вроде один клок отводится на переключение направления MDIO.
можно переходник в spi взять, MISO напрямую, а MOSI через резистор подключить чтобы MDIO у phy его перетянуть мог при чтении.
http://ics.nxp.com/products/bridges/i2c.sl...pi.master.gpio/
vitan
Нет, у меня мастер - это MDIO, а в этом примере мастер - I2C.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.