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

KSZ9897S доступ к MMD регистрам через SPI

Доброго всем дня!

Есть устройство, в составе которого микрочиповский свитч KSZ9897S. К свитчу по SPI подключен микроконтроллер, для начальной конфигурации (ибо errata впечатляет).

Глобальные регистры, регистры портов читаются/пишутся без проблем. Сам свитч работает. Однако при попытке прочитать что-либо (писать пока не пробовал) посредством

MDIO Manageable Device (MMD) Registers (Indirect), по методу из даташита (раздел 5.4 стр. 168) читаю из регистра PHY MMD Data Register то, что только что в него записал (а именно Register Address).

Кто-нибудь сталкивался с подобной проблемой?

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


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

А для чего читать через MDIO при наличии связи по SPI? По SPI у него, вроде как, даже больше регистров доступно чем через MDIO. Я так MDIO даже и не развожу когда использую этот свич.

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


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

1 hour ago, vladec said:

А для чего читать через MDIO при наличии связи по SPI? По SPI у него, вроде как, даже больше регистров доступно чем через MDIO. Я так MDIO даже и не развожу когда использую этот свич.

Речь идёт не об интерфейсе MDIO, а о доступе к MDIO Manageable Device (MMD) Registers (Indirect). Для этого можно (согласно даташита) использовать любой интерфейс. Я использую SPI.

Есть два 16 битных регистра: PHY MMD Setup Register (доступен по адресам 0xN11A - 0xN11B где N номер порта меди) и PHY MMD Data Register (доступен по адресам 0xN11C - 0xN11D).

С их помощью можно получить доступ к 65535 регистрам устройства (из них только 2 описаны в даташите).

Дело в том, что errata для свича чуть более чем на 90% состоит из рекомендаций вида: Write to the following MMD registers for each PHY port [1-5]    и далее список значений, например:

[MMD] [register] [data]
0x01 0x6F 0xDD0B
0x01 0x8F 0x6032
0x01 0x9D 0x248C
0x01 0x75 0x0060
0x01 0xD3 0x7777
0x1C 0x06 0x3008
0x1C 0x08 0x2001

Игнорировать errata как-то неправильно, особенно после внимательного прочтения.

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


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

В 20.06.2019 в 11:41, ksv198 сказал:

Речь идёт не об интерфейсе MDIO, а о доступе к MDIO Manageable Device (MMD) Registers (Indirect). Для этого можно (согласно даташита) использовать любой интерфейс. Я использую SPI.

Есть два 16 битных регистра: PHY MMD Setup Register (доступен по адресам 0xN11A - 0xN11B где N номер порта меди) и PHY MMD Data Register (доступен по адресам 0xN11C - 0xN11D).

С их помощью можно получить доступ к 65535 регистрам устройства (из них только 2 описаны в даташите).

Дело в том, что errata для свича чуть более чем на 90% состоит из рекомендаций вида: Write to the following MMD registers for each PHY port [1-5]    и далее список значений, например:

[MMD] [register] [data]
0x01 0x6F 0xDD0B
0x01 0x8F 0x6032
0x01 0x9D 0x248C
0x01 0x75 0x0060
0x01 0xD3 0x7777
0x1C 0x06 0x3008
0x1C 0x08 0x2001

Игнорировать errata как-то неправильно, особенно после внимательного прочтения.

Добрый день. я столкнулся с такой же проблемой. Интересно как вы это побороли?

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


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

On 3/19/2020 at 3:51 PM, Varavkin said:

Добрый день. я столкнулся с такой же проблемой. Интересно как вы это побороли?

Добрый день!

Прошу прощения, не сразу отвечаю, может быть неактуально уже?

Для Indirect регистров написал свои подпрограмки, если нужно выложу. Там довольно не очевидные вещи, плохо (или совсем никак) описанные в даташите.

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


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

В 26.03.2020 в 18:03, ksv198 сказал:

Добрый день!

Прошу прощения, не сразу отвечаю, может быть неактуально уже?

Для Indirect регистров написал свои подпрограмки, если нужно выложу. Там довольно не очевидные вещи, плохо (или совсем никак) описанные в даташите.

Добрый день! Очень актуально все еще. Если не сложно поделитесь своим опытом. Заранее благодарен

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


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

22 hours ago, Varavkin said:

Добрый день! Очень актуально все еще. Если не сложно поделитесь своим опытом. Заранее благодарен

Добрый день!

В аттаче файлы с функциями доступа к регистрам по SPI.

У меня управляющий контроллер STM32F051, инициализация модуля SPI для него, при тактовой частоте 25 МГц.

Удачи!

KSZ9897_MMD.zip

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


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

1 час назад, ksv198 сказал:

Добрый день!

В аттаче файлы с функциями доступа к регистрам по SPI.

У меня управляющий контроллер STM32F051, инициализация модуля SPI для него, при тактовой частоте 25 МГц.

Удачи!

KSZ9897_MMD.zip

Огромное Вам спасибо!

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


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

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

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

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

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

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

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

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

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

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