Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: stm32f4 + ks8721 (проблемы)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Eminem
Соединил STM32F4 c PHY KS8721 по RMII. Залил свой код. После выставления в BCR бита AutonegatiationEnable в BSR поднимается бит - AutonegatiationComplete. Но в регистре 0x1F скорость не определена - в битах отвечающих за скорость 000 - по DS означает что скорость еще не определена. Светодиоды Link и Transfer мигают при этом оба.
Куда дальше двигаться?
Eminem
Может есть у кого небольшой рабочий проект под Keil c этой физикой?
Eminem
Кто-нибудь на форуме вообще запускал эту физику в RMII?
vlad_new
Эту не запускал. Запускал много других. Написал свой супер драйвер, который работает практически с чем угодно. Вернее выбросил все из кейловского. Поскольку по дефаулту в rm2 вся физика сама как надо настраивается, то собственно ей ничего и не надо. Посмотрел я доку на вашу физику. Вообщем все то же самое. 50мгц генератор+21 нога при включении в 1 должна быть Физика сама должна настроится в rmii. Собственно ничего туда пихать и не надо. Попробуйте выбросить все связанные с ней настройки - наверняка заработает.
Eminem
Подключил ее я вроде правильно, кварц 50MHz, адрес физики 0x01 выбран при рестарте, 21 нога в "1" (RMII). Правда есть разночтение в DS насчет 46 ноги, толи подключать ее к +3V3 или к VDPLL (2,5V). На всякий случай приложил схему. Может кто работал с ней сравнит ее со своей схемой.
Попробую конечно не писать ничего в физику, только мне кажется так ничего не получится, ведь MAC и PHY должны как минимум установить у себя одинаковую скорость...
vlad_new
Ну раз физика мигает, значит работает. Где то не стыковочка есть. Вот попробуйте фалики может поможет.
iosifk
Цитата(Eminem @ Feb 10 2014, 11:26) *
Соединил STM32F4 c PHY KS8721 по RMII.

8721 - это очень, очень старая микросхема... Почему же не взяли более новую? И на сайте Микрела ведь выложены примеры...
Eminem
Ok. Завтра попробую использовать стек от Keil. Может так произойдет понимание где ошибка у меня.
Физика конечно не новая, наверно 2006 год. Но в корпусах LQFP с поддержкой RMII только эта. Есть еще DP3xxxx, то на чем сделана плата расширения для Discavery и все примеры от ST под них написаны, но она дороже в два раза этой. Почему дороже я правда не разбирался, но не думаю что там функционал лучше.


vlad_new
Недавно DP... была дорогая. Сейчас все наоборот.
Вот смотрю в www.compel.ru KS8721=4$, а DP83848 есть за 4$, за 3,3$ и 1,8$.
К стате тот драйвер ETH, что я выложил и с DP83848 работает и с LAN8720.
Правда адрес для DP83848 там надо поставить 0x01, а вот для LAN8720 щас уже не помню sm.gif


Eminem
Все же как-то не просто у TI в этом вопросе: в LQFP DP83848 коммерческий вариант 4$, в индустриальном 5$, а если QFN корпус - тогда индустриальный за 3$. Старая KS8721 соответственно - 2$ и 4$. Цены приближено конечно.
iosifk
Цитата(Eminem @ Feb 12 2014, 11:32) *
Все же как-то не просто у TI в этом вопросе: в LQFP DP83848 коммерческий вариант 4$, в индустриальном 5$, а если QFN корпус - тогда индустриальный за 3$. Старая KS8721 соответственно - 2$ и 4$. Цены приближено конечно.

А вот то, что для более новых микреловских микросхем не нужны согласующие резисторы? Да и есть понятие "срок жизни"... Да и цена раза в 2 ниже, это как?
Eminem
А к какой физике не нужны согласующие резисторы?
Eminem
Цитата(iosifk @ Feb 12 2014, 09:43) *
А вот то, что для более новых микреловских микросхем не нужны согласующие резисторы? Да и есть понятие "срок жизни"... Да и цена раза в 2 ниже, это как?


Вы правы, Иосиф. Посмотрел я что предлагает Micrel сейчас. Например KSZ8021/31 без согласующих резисторов, только RMII, 50MHz кварцем 25MHz получить можно, и цена примерно в два раза ниже - мне бы подошло. Корпус правда волной не паябельный. После прототипа платы я подумаю поставить что нибудь из них.

billidean
Тоже работал с несколькими типами PHY, правда работал с ПЛИСками (но это не важно от куда управлять), и, действительно, все настройки сводились только на настройку драйверов своих кристаллов (ПЛИС).
Eminem
Цитата(vlad_new @ Feb 11 2014, 19:26) *
Ну раз физика мигает, значит работает. Где то не стыковочка есть. Вот попробуйте фалики может поможет.
Спасибо vlad_new. Не стыковка действительно была, только в железе, точнее казус - резистор на плате который отвечает за напряжение 2,5V был не припаян с одной стороны (это один из 1% висящих на 37 ноге). В результате чего напряжение VDPLL плавало, и я почему-то решил что аккамулятор сел на мультиметре. В общем даже при моем 100% зрении паять мелочь 0603 - может привести к потере времени.
Стек от Keil я правда так и не попробывал, на тот момент я был твердо уверен, что проблемы в моем железе. Ну к тому же меня больше интересуют открытые исходники, но зато я разобрался в настройке дескрипторов ETH STM32 и перелопатил все касаемо физики.

Еще я могу выложить здесь тест проект под Keil 5.0 с HTTP сервером (uIP) - это для проверки вашего железа, что бы никто не терял время как я, если вдруг задумает использовать старую физику типа KS8721. В общем для нубов типа меня.. Просто там надо пару пояснений написать, а времени жалко - если никто не спросит, то я и не буду заморачиваться.



Цитата(billidean @ Feb 13 2014, 05:37) *
Тоже работал с несколькими типами PHY, правда работал с ПЛИСками (но это не важно от куда управлять), и, действительно, все настройки сводились только на настройку драйверов своих кристаллов (ПЛИС).


Подождите, но ведь скорость и режим (Half, Full Dupleks) MAC по любому нужно согласовывать с физикой, даже если он реализован на ПЛИС. Ведь правильно? Или нет?
billidean
Цитата(Eminem @ Feb 13 2014, 08:21) *
скорость и режим (Half, Full Dupleks) MAC по любому нужно согласовывать с физикой
- это уже идут настройки Вашего кристалла/драйвера, а не PHY.
Я, настроив свои контроллеры в ПЛИСке, просто ждал появления линка от PHY, и все, начинал работать.
Правда, для меня было совсем не важно в каком режиме, на какой скорости идут обмены, мне нужен был очень медленный обмен, поэтому я и не заморачивался.

На начальном этапе на Вашем месте я бы также забил на все эти настройки и поработал с автоматическими настройками PHY, а потом уже можно и поработать напильником для улучшения характеристик.
HardJoker
Цитата(Eminem @ Feb 11 2014, 17:59) *
Подключил ее я вроде правильно, кварц 50MHz, адрес физики 0x01 выбран при рестарте, 21 нога в "1" (RMII). Правда есть разночтение в DS насчет 46 ноги, толи подключать ее к +3V3 или к VDPLL (2,5V). На всякий случай приложил схему. Может кто работал с ней сравнит ее со своей схемой.
Попробую конечно не писать ничего в физику, только мне кажется так ничего не получится, ведь MAC и PHY должны как минимум установить у себя одинаковую скорость...


По схеме средние точки трансформатора выв.4 и 5 объединены. Не лучше ли их разорвать на всякий случай?
Eminem
Цитата(HardJoker @ Feb 13 2014, 06:51) *
R90 на схеме 4.99k. По тех.описанию Rext=R90=6.49k

Я знаю, у меня в схеме два резюка последовательно стоят 1% (1,5K + 4,99K) - в сумме 6,49K. Я в своем проекте попробывал выставить в физику скорость 10Mbit и режим и запретить AutoNegatiation, но когда линк не поднялся, понял что где то в железе накосячил.

Вопрос к Вам, как к разработчику на плис - если я на NIOS ядре (Altera) сделаю контроллер с поддержкой SDRAM и TFT и MAC, смогу ли я уменьшить потребление своего камня по сравнению с STM32F439? Просто получается что у меня не используются встроенные ADC и DAC - пока использую внешние, с развязкой.
Нужно ли мне двигаться в этом направлении? Имеет ли это смысл? Можно ли при таком подходе денег с'экономить на конечном устройстве?








Цитата(HardJoker @ Feb 13 2014, 06:55) *
По схеме средние точки трансформатора выв.4 и 5 объединены. Не лучше ли их разорвать на всякий случай?


Не думаю, в некоторых RJ45 они соединяются между собой еще в разъеме.
HardJoker
Цитата(Eminem @ Feb 13 2014, 09:21) *
Не думаю, в некоторых RJ45 они соединяются между собой еще в разъеме.


Посмотрел SDK, действительно, обе ноги уходят на +2V5. Но если так, выходные драйвера через обмотки тоже подключены к +2V5. По сути закорочены. Нужны конденсаторы "в разрыв" или по сигнальным цепям, или между средними точками обмоток и +2V5. M.б. они есть внутри разъема. Тогда нужно проверить его схему. Всегда использую 8721, но средние точки обмоток подключаю _через_ конденсаторы TC к +2V5, а RC к 0V.
Golikov A.
Цитата(Eminem @ Feb 13 2014, 09:21) *
если я на NIOS ядре (Altera) сделаю контроллер с поддержкой SDRAM и TFT и MAC, смогу ли я уменьшить потребление своего камня по сравнению с STM32F439? Просто получается что у меня не используются встроенные ADC и DAC - пока использую внешние, с развязкой.
Нужно ли мне двигаться в этом направлении? Имеет ли это смысл? Можно ли при таком подходе денег с'экономить на конечном устройстве?


когда я запихал не очень сложный микроблайз в ксалинкс, я впервые увидел что ПЛИС греется. Эти процы имеют смысл если вы хотите много чего на ПЛИС еще из обвески сделать, чего нет в проце, и иметь к этому доступ через внутренние шины проца. Плата за это глюки в софте разработки, и сложности самого проца, система все же не идеальна.... это про ксалинкс, не думаю что у альтеры сильно лучше...

В общем экономия денег и питания лучше с готовыми процами. Опять же готовый проц уже оттестирован и работает на заявленных частотах, а все эти сборки в плис, каждый раз танцы...
Eminem
Цитата(Golikov A. @ Feb 13 2014, 08:04) *
когда я запихал не очень сложный микроблайз в ксалинкс, я впервые увидел что ПЛИС греется. Эти процы имеют смысл если вы хотите много чего на ПЛИС еще из обвески сделать, чего нет в проце, и иметь к этому доступ через внутренние шины проца. Плата за это глюки в софте разработки, и сложности самого проца, система все же не идеальна.... это про ксалинкс, не думаю что у альтеры сильно лучше...

В общем экономия денег и питания лучше с готовыми процами. Опять же готовый проц уже оттестирован и работает на заявленных частотах, а все эти сборки в плис, каждый раз танцы...


О... +++ отлично, спасибо. Значит мне хватит то чего знаю CPLD + MK.

Цитата(HardJoker @ Feb 13 2014, 07:35) *
Посмотрел SDK, действительно, обе ноги уходят на +2V5. Но если так, выходные драйвера через обмотки тоже подключены к +2V5. По сути закорочены. Нужны конденсаторы "в разрыв" или по сигнальным цепям, или между средними точками обмоток и +2V5. M.б. они есть внутри разъема. Тогда нужно проверить его схему. Всегда использую 8721, но средние точки обмоток подключаю _через_ конденсаторы TC к +2V5, а RC к 0V.


Эх. Я честно говоря больше программер, чем электронщик. И для меня неуклюжим выглядит замыкание обмоток трансформатора через резисторы в 1% на VDPLL. Тем более "прозвонить" в статике проверив на разрыв дорожек такое теряет почти весь смысл.
Могу только сказать что по подключенной схеме линк 100Mbit поднимается даже без согласующих резисторов на длине 10 метров.

В общем может кто-нибудь знающий с ходу здесь ответит - для чего нужны согласующие резисторы?
billidean
При работе с ПЛИС, при софтовой разработке/настройке контроллеров интерфейсов, всегда хочется иметь Hard'овый контроллер, проверенный/протестированный/заточенный под нужнй интерфейс. А с другой стороны, работая с Железными реализациями контроллеров, иногда хочется что-то подправить/переделать под себя, но уже нельзя, т.к. в микруху не полезешь.
При больших загрузках ПЛИСок, да и при больших частотах работы процессов (100-200 МГЦ), ПЛИС начинает нормально греться, поэтому нужно обеспечивать теплоотводы.
Про сам НИОС могу сказать - при нормальных (НЕкривых) настройках вещь стабильная, каких-то непонятных сбоев не наблюдал.
Про контроллеры интерфейсов - здесь да... иногда нужен настоящий "Шаманский" бубен, чтобы ОНО заработало.
Eminem
Цитата(billidean @ Feb 13 2014, 08:28) *
При работе с ПЛИС, при софтовой разработке/настройке контроллеров интерфейсов, всегда хочется иметь Hard'овый контроллер, проверенный/протестированный/заточенный под нужнй интерфейс. А с другой стороны, работая с Железными реализациями контроллеров, иногда хочется что-то подправить/переделать под себя, но уже нельзя, т.к. в микруху не полезешь.
При больших загрузках ПЛИСок, да и при больших частотах работы процессов (100-200 МГЦ), ПЛИС начинает нормально греться, поэтому нужно обеспечивать теплоотводы.
Про сам НИОС могу сказать - при нормальных (НЕкривых) настройках вещь стабильная, каких-то непонятных сбоев не наблюдал.
Про контроллеры интерфейсов - здесь да... иногда нужен настоящий "Шаманский" бубен, чтобы ОНО заработало.


Ясно, большое спасибо за инфу - кроме интерфейсов, мне нужна по идее виртуальная машина, и я подумал, было бы не плохо реализовать некоторые ее команды в железе, пока отодвину ознакомление с FPGA года на два.
billidean
Цитата(Eminem @ Feb 13 2014, 10:47) *
пока отодвину ознакомление с FPGA года на два.
- глобально :-)
Eminem
Цитата(billidean @ Feb 13 2014, 08:58) *
- глобально :-)


Ну, я такой. wink.gif
Kirill Rogozhin
Здравствуйте Eminem,вы писали что можете поделится проектом Keil 5.0 с HTTP сервером (uIP)? Не могу запустить KS8721 правда в режиме MII.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.