Jump to content

    
Sign in to follow this  
ksv198

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

Recommended Posts

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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 как-то неправильно, особенно после внимательного прочтения.

Share this post


Link to post
Share on other sites
В 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 как-то неправильно, особенно после внимательного прочтения.

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

Share this post


Link to post
Share on other sites
On 3/19/2020 at 3:51 PM, Varavkin said:

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

Добрый день!

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

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

Share this post


Link to post
Share on other sites
В 26.03.2020 в 18:03, ksv198 сказал:

Добрый день!

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

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

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

Share this post


Link to post
Share on other sites
22 hours ago, Varavkin said:

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

Добрый день!

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

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

Удачи!

KSZ9897_MMD.zip

Share this post


Link to post
Share on other sites
1 час назад, ksv198 сказал:

Добрый день!

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

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

Удачи!

KSZ9897_MMD.zip

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this