Сообщение от
ntechmen
все на скорую руку и из подручного. как то так...
Ваша макетка выглядит для меня, профи, устрашающе.
Я бы порекомендовал взять кусок фольгированного материала, привинтить к нему жестко обе платки на минимальном расстоянии друг от друга и от фольги ,
подключить земли к фольге в нескольких местах короткими толстыми проводами. Монтаж лучше всего делать обмоточным медным проводом 0.15-0.2мм диаметром.
все соединения делать как можно короче. На плате ULPI удалить разьем и паять напрямую короткими проводами от площадок разьема к процессору, никаких длинных проводников.
Дополнительные компоненты - поверхностный монтаж, приклеивать к плате или к фольге, через изоляционную прокладку, если надо.
Генераторы приклеить вверх ногами к фольге, поставить развязки прямо к ножкам.
Если будете следовать этим рекомендациям и здравому смыслу, все будет работать лучше чем на печатке.
Дополнительные резисторы в данных ~ 100..300ом и клоках~ 33..50ом тоже сильно помогают, быстрые параллельные шины очень капризны при макетировании.
Эти резисторы уменьшают отражения и уменьшают импульсые возвратные токи по земле при переключении шины. Нужно также обеспечить минимальную индуктивность земли.
Offтопик:
В 2004г я написал и отладил с нуля HS USB стек для ISP1583, сейчас уже почти ничего не помню, я не эмбеддер, а аналоговый/FPGA дизайнер.
Но в то время мне сказали - разбирайся, у тебя не работает железо, но оказалось, что все в порядке, не работал говнокод, который они нагенерили.
Я реализовал простейший Масс-сторидж, потому, что он поддерживается всеми платформами и не надо писать драйвера для ОС, для отладки очень удобно.
Потом, когда все заработало, они добавили свои дескрипторы и код, и все пашет до сих пор, как часы.
P.S.
Кстати, HAL может быть работает потому что, видимо у STM можно
программировать скорость выходных драиверов, как у FPGA.
Если скорость установлена низкая, то по крайней мере в одну сторону STM->ULPI может заработать и без резисторов.
Социальные закладки