Jump to content

    

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.

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
33 minutes ago, gosha-z said:

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

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

Share this post


Link to post
Share on other sites

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

1. PHY addr какой?

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

Share this post


Link to post
Share on other sites
5 minutes ago, gosha-z said:

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

1. PHY addr какой?

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

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

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

 

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites
1 minute ago, gosha-z said:

Т.е. вы пины MDIO STMа завели на SMI марвела?

Да.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
5 hours ago, StGhost said:

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

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

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

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

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

 

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

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

2 hours ago, gosha-z said:

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

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

Share this post


Link to post
Share on other sites
17 hours ago, prig said:

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

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

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

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

 

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

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

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

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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this