Перейти к содержанию
    

Marvell 88E6097 совместная работа с CPU

Всем трудящимся добрый день. Есть у кого опыт работы с Marvell 88E6097 совместно с STM32F4... или с другим МК по MII?

Элементарно не могу пропинговать STM'ку. Вроде бы минимум настроил по SMI для работы с CPU, но чего то не работает.

Настройки SW_MODE=11, Регистры: Порт 0x1A регистр 0x01: данные 0x0E01, регистр 0x04: данные 0x017F, Глобальные 0x1B: регистр 0x1C: данные 0x3000, остальные порты имеют дефолтные настройки.

Что я проверил:

1. Пробовал по разному конфигурировать коммутатор.

2. Тактирование на MII, присутствует 25 Мгц.

3. Просто как свитч 88E6097 работает.

4. Успешно пишу и читаю регистры по SMI.

5. Пробовал подключить другой PHY (DP83848) к МК, все успешно работает.

Сейчас хотелось бы элементарно получить пинг от STM.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

33 minutes ago, gosha-z said:

А MDIO подключен? Стандартные регистры читаются?

Да, подключен. Читаю, пишу регистры коммутатора. Линии MDIO и MDC это интерфейс SMI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, gosha-z said:

Контрольные вопросы:

1. PHY addr какой?

2. Покажите содержимое первых пяти регистров.

1. Адресс 0 установлен.

2. По этому вопросу какие именно регистры и с какого порта? У 88E6097 есть регистры PHY и регистры коммутатора каждого порта.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, gosha-z said:

2. При подключении 88E6097 что для STMа является PHY?

STM подключен к 10му порту коммутатора, прямого PHY на 10 порту нет, но есть на других 8ми портах, с которых поток как я понимаю перенаправляется на 10й порт, т.е. с любого порта можно постучаться к STM.

1.png

Прочитал регистры коммутатора с порта 10:

Регистр 0x00 данные 0x14A

Регистр 0x01 данные 0x2C01

Регистр 0x02 данные 0x9F00

Регистр 0x03 данные 0x992

Регистр 0x04 данные 0x7F

Регистров PHY у 10го порта нет.

Прочитал регистры PHY куда подключен ПК по UTP:

Регистр 0x00 данные 0x3000

Регистр 0x01 данные 0x78C9

Регистр 0x02 данные 0x141

Регистр 0x03 данные 0xC89

Регистр 0x04 данные 0x1E1

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну если там не стандартый PHY, а что-то свое - то это неправильно. Надо STMу объяснить, что у него нет PHY, или сделать "пионерскую" затычку (которая будет говорить MAC-уровню "всегда готов"), а этот SMI переключить на обычный I2C. Или написать свой драйвер PHY. Для конкретики надо документацию на этот 88E6097 читать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, StGhost said:

1. Адресс 0 установлен.

- Адрес должен соответствовать номеру порта. Если подключаетесь к P10, то и адрес 0xA.

- Подключаемый к процессору порт MII должен использоваться в режиме "MII PHY Mode".

- Ну и иногда без марвеловского софта не обойтись, хотя для этого свитчика не д.б. критично.

Да и как бы всё.

 

Проходил у нас когда-то проект с 88E6096 (чуть урезанный 97-й), MII к процессору запустился без скрипов.

Но какой-то марвеловский софт для него точно использовался. Что именно, сейчас навскидку не вспомню.

2 hours ago, gosha-z said:

Ну если там не стандартый PHY, а что-то свое - то это неправильно

Вообще-то, должен откликаться как стандартный PHY. Если режим соответствующий,ессно. А оный задаётся конфигурационными пинами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 hours ago, prig said:

- Адрес должен соответствовать номеру порта. Если подключаетесь к P10, то и адрес 0xA.

- Подключаемый к процессору порт MII должен использоваться в режиме "MII PHY Mode".

- Ну и иногда без марвеловского софта не обойтись, хотя для этого свитчика не д.б. критично.

Да и как бы всё.

 

Проходил у нас когда-то проект с 88E6096 (чуть урезанный 97-й), MII к процессору запустился без скрипов.

Но какой-то марвеловский софт для него точно использовался. Что именно, сейчас навскидку не вспомню.

Вообще-то, должен откликаться как стандартный PHY. Если режим соответствующий,ессно. А оный задаётся конфигурационными пинами.

Спасибо за наводку, чуть позже попробую. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 11/11/2019 at 7:33 PM, prig said:

- Адрес должен соответствовать номеру порта. Если подключаетесь к P10, то и адрес 0xA.

- Подключаемый к процессору порт MII должен использоваться в режиме "MII PHY Mode".

- Ну и иногда без марвеловского софта не обойтись, хотя для этого свитчика не д.б. критично.

Да и как бы всё.

 

Проходил у нас когда-то проект с 88E6096 (чуть урезанный 97-й), MII к процессору запустился без скрипов.

Но какой-то марвеловский софт для него точно использовался. Что именно, сейчас навскидку не вспомню.

Вообще-то, должен откликаться как стандартный PHY. Если режим соответствующий,ессно. А оный задаётся конфигурационными пинами.

Добрый день.  Что то вообще не выходит, помогут любые напутствия.

Что я сейчас имею.

Физически 88E6097 сконфигурирован, пины:

P10_TXD[0]/P10_MODE[0], P10_TXD[1]/P10_MODE[1], P10_TXD[2]/P10_MODE[2] - 010 (MII with P10_GTXCLK = 25 MHz (100BASE PHY Mode));

P10_TXD[3]/ADDR[0], P10_TXD[4]/ADDR[1], P10_TXD[5]/ADDR[2], P10_TXD[6]/ADDR[3], P10_TXD[7]/ADDR[4] - 0x0000,  данный адрес я так понимаю влияет только при использовании нескольких 88E6097, т.е. сейчас настроен на одно устройство;

P10_TXEN/P10_HALFDPX - 0 (Sets Port 10 in full-duplex operation);

SW_MODE[1], SW_MODE[2] - 11 (EEPROM attached mode − EEPROM defined port states). Пробовал и 00 (CPU attached mode − ports come up disabled).

 

STM32f407 конфигурирую в STM32CubeMX, PHY адресс 0x0A, настройки на скриншоте (регистры соответсвуют даташиту на 88E6097, возможно чего то не хватает). MAC и IP заданы. 

В программе просто кручусь в цикле с функциями ethernetif_input(&gnetif); sys_check_timeouts(); По идеи STM'ка должна пинговаться (с другим внешним PHY пингуется).

 

На интерфейс SMI (MDIO) написаны свои функции через которые я пишу и читаю регистры 88E6097.  

Осцилографом вижу что в момент запуска CPU по MII (на пинах TX и RX обмен данными идет).

Еще не могу понять настройка пинов P10_MODE соответсвует MII with P10_GTXCLK = 25 MHz, на CLK дожно быть 25МГц, но по факту имею 2,5МГц.

При чтении регистра Port Status Register (0x00) порта 10 имею ответ 0x4A.

2.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо всем кто не прошел мимо. Разобрался, проблема из-за невнимательности.

Проверил осциллографом все пины MII интерфейса, оказалось нет сигнала на TXD3, проблема оказалась в конфигурировании МК, не переназначил порт.

Cube MX изначально конфигурирует TXD3 на порт PE2, а у меня физически разводка на порт PB8. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...