ksv198 0 Posted June 19, 2019 · Report post Доброго всем дня! Есть устройство, в составе которого микрочиповский свитч KSZ9897S. К свитчу по SPI подключен микроконтроллер, для начальной конфигурации (ибо errata впечатляет). Глобальные регистры, регистры портов читаются/пишутся без проблем. Сам свитч работает. Однако при попытке прочитать что-либо (писать пока не пробовал) посредством MDIO Manageable Device (MMD) Registers (Indirect), по методу из даташита (раздел 5.4 стр. 168) читаю из регистра PHY MMD Data Register то, что только что в него записал (а именно Register Address). Кто-нибудь сталкивался с подобной проблемой? Quote Ответить с цитированием Share this post Link to post Share on other sites
vladec 0 Posted June 20, 2019 · Report post А для чего читать через MDIO при наличии связи по SPI? По SPI у него, вроде как, даже больше регистров доступно чем через MDIO. Я так MDIO даже и не развожу когда использую этот свич. Quote Ответить с цитированием Share this post Link to post Share on other sites
ksv198 0 Posted June 20, 2019 · Report post 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 как-то неправильно, особенно после внимательного прочтения. Quote Ответить с цитированием Share this post Link to post Share on other sites
Varavkin 0 Posted March 19, 2020 · Report post В 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 как-то неправильно, особенно после внимательного прочтения. Добрый день. я столкнулся с такой же проблемой. Интересно как вы это побороли? Quote Ответить с цитированием Share this post Link to post Share on other sites
ksv198 0 Posted March 26, 2020 · Report post On 3/19/2020 at 3:51 PM, Varavkin said: Добрый день. я столкнулся с такой же проблемой. Интересно как вы это побороли? Добрый день! Прошу прощения, не сразу отвечаю, может быть неактуально уже? Для Indirect регистров написал свои подпрограмки, если нужно выложу. Там довольно не очевидные вещи, плохо (или совсем никак) описанные в даташите. Quote Ответить с цитированием Share this post Link to post Share on other sites
Varavkin 0 Posted May 13, 2020 · Report post В 26.03.2020 в 18:03, ksv198 сказал: Добрый день! Прошу прощения, не сразу отвечаю, может быть неактуально уже? Для Indirect регистров написал свои подпрограмки, если нужно выложу. Там довольно не очевидные вещи, плохо (или совсем никак) описанные в даташите. Добрый день! Очень актуально все еще. Если не сложно поделитесь своим опытом. Заранее благодарен Quote Ответить с цитированием Share this post Link to post Share on other sites
ksv198 0 Posted May 14, 2020 · Report post 22 hours ago, Varavkin said: Добрый день! Очень актуально все еще. Если не сложно поделитесь своим опытом. Заранее благодарен Добрый день! В аттаче файлы с функциями доступа к регистрам по SPI. У меня управляющий контроллер STM32F051, инициализация модуля SPI для него, при тактовой частоте 25 МГц. Удачи! KSZ9897_MMD.zip Quote Ответить с цитированием Share this post Link to post Share on other sites
Varavkin 0 Posted May 14, 2020 · Report post 1 час назад, ksv198 сказал: Добрый день! В аттаче файлы с функциями доступа к регистрам по SPI. У меня управляющий контроллер STM32F051, инициализация модуля SPI для него, при тактовой частоте 25 МГц. Удачи! KSZ9897_MMD.zip Огромное Вам спасибо! Quote Ответить с цитированием Share this post Link to post Share on other sites