Как стать автором
Обновить

Комментарии 35

Можно из разных. Конкретно этот из Аллегро, но это не имеет значения.
Поправьте меня, если что. Получается, производитель предоставляет референс платы, вы его копируете, выкидываете или добавляете что надо и получается новый девайс?
А если надо память подвигать или еще что-нибудь многолапое, то как быть?
Из референса копируется только трассировка оперативки. Если микросхему DDR необходимо двигать, то придется полностью, либо частично, переразводить. Но помимо этого на плате еще много микросхем, которые обычно не берутся из референса — это emmc, nand, spi, супервизор и т.д.
Какой то «китайский» подход к копированию. Разве сложно задать констрейнты и сделать как нужно, а не как получится?
Видимо, автор решил сэкономить время или побоялся «сломать» трассировку платы. В правилах трассировки задается требуемая длинна линии, если это важно. Но можно и выставить правило согласования длинны линий для определенного класса цепей. Потом воспользоваться инструментом Interactive Lenght Tuning для обычной линии или Interactive Diff Pair Lenght Tuning.
Так и делается, когда нет возможности копировать или необходимо двигать микросхемы памяти, но это точно не проще. Также не забываем про тайминги, если их не менять — это будет пальцем в небо и на отладку уйдет уйма времени. Вы и так не знаете будет ли работать плата, все ли питания правильные и все ли соединения верны, а тут еще и перебором заниматься.
Вы и так не знаете будет ли работать плата, все ли питания правильные и все ли соединения верны


Это как? Схема не рисуется? Компоненты не привязываются к схеме?
А кто сказал что Вы не сделайте ошибку в схеме? Допустим сдвинете адресную шину. Я при копировании трассировки ошибку увижу, а Вы возможно нет. Может перепутаете пад питания, Вы же с нуля будете рисовать компонент. Как раз это очень даже возможно.
Именно так,
Для объекта создаем патерн, нумеруем контакты, привязываем, 3D модель, создаем новый компонент с вновь созданным патерном с указанием всех деталей (модель, вендор), рисуем схему…

В вашем варианте любое изменение схемы становится проблемой

Как правило изобретать ничего не требуется, для новых компонентов создаются необходимые файлы, которые легко импортируются
При таком подходе не появляется компетенция, которую в дальнейшем можно было использовать для любого дизайна. Я считаю, что каждую возможность нужно использовать с пользой.
Чтобы понять сложно или нет — нужно попробовать. Я пробовал. Для Вас, возможно, этот вариант более сложный, для меня нет.
Это вариант не сложный. На мой взгляд он лишен смысла. Простой пример — когда понадобиться компоненты на плате подвинуть, тогда как быть?
Какие компоненты? Оперативку? Тогда подредактирую, не вижу проблемы. Остальное — это не важно, все равно разводить.
Так времянки расползутся… Кроме того за микросхемой памяти придется двигать и блокирующие конденсаторы и т.д.
Ничего страшного. Я так делал на Allwinner, записал длины, двинул микросхему и переразвел с теми же длинами. Если сдвигать дальше, могут появиться проблемы из-за нехватки длин, а ближе проблем нет. Блокирующие конденсаторы останутся на своих местах, то мешает их тоже двигать? Сложно если нужно переносить на другой слой или ставить друг под другом DDR (если они парами), но я же не говорю что нужно только так делать (копированием), просто в некоторых случаях лучше сэкономить время.
А насколько вообще возможно подвинуть микросхему памяти? Наверняка производитель в референсе выбирает оптимальное расположение или всё же возможно кардинально изменить, ну, например расположить с другой стороны проца?
Все верно, если двинуть DDR — это скажется на таймингах и плата работать не будет. В прошлой своей разработке мне нужно было двигать микросхемы. Пришлось трассировать заново, но я сохранил все длины проводников и стек платы.
А насколько вообще возможно подвинуть микросхему памяти?

Компоненты можно устанавливать по разному, лишь бы соответствовало тем условиям, которые задает производитель. Как правило всё описано документации.
посмотрел на это и стало страшно что такую плату вдруг придется делать))
Только первый раз страшно

Плюсую. Мне от вида дорог DDR3 уже плохо, а тут совсем мрак. Спасибо за статью, очень полезно.

если кому-то интересно, могу написать статью о том, как на данном модуле они прокладывались, какие сложности возникали

Было бы интересно почитать, пишите!

Автотрассировщик справиттся с задачей развести DDR с нуля? Ручной процесс выглядит весьма трудоёмким.
Не справится точно. Точнее не так. Я о таком не слышал. При трассировке оперативной памяти нужно учитывать и количество переходных, и слои, и дифф пары, и главное — это длины проводников. Наверное, можно создать правила трассировки все это учитывая, но не нужно еще забывать про расстановку компонентов (вокруг и под чипами) и подведение питания. А если все это не заработает нужно перепроверять автотрассировщик? Лучше потратить время и развести.
От ti, nxp, stm вроде как есть софт, который по JTAG при первом запуске в автоматическом режиме «тюнит» параметры RAM, и выдает файлик с параметрами, которые подкидывается загрузчику. Я так понял, что это очень часто может помочь нормализовать работу памяти, если, конечно, дорожки не отличаются по длине в два раза.
Да, все так, но не для всех чипов это есть (если не NXP?). В одной нашей разработке подбирали тайминги как раз через JTAG, я бы не сказал что все так просто, как Вы описали.

Очень интересно глйянуть на такую работу, аж пальцы зачесались самому iMX8 модуль развести.
Только во копировать референц получится при одном условии: если у Вас точно такой-же стек. 10 слоёв это, конечно, удобно, но не выйдет в конечном модуле дороговато? Можете озвучить примерную цену такой карточки?

Заказано только 4 платы. На таком количестве это дорого. Все всегда зависит от партии. На 100шт плата должна стоить в Китае примерно $15, но пока еще не прорабатывали партию.
Спасибо за статью! Сколько времени заняла работа?
Спасибо Вам! Статья 3 часа, плата около месяца) Но это первая итерация.
Вполне нормальный срок для такой платы.

Ещё не увидел ничего про проверки (кроме выпуска образца). Как это у вас обычно происходит?
Про какие? Делаем материнку (или пару) для тестов всех интерфейсов. Гоняем на прогонах. Делаем софтовые тесты оперативки. Тестим при пониженных и повышенных температурах. Все как обычно.
Я про проверку схемы и проверку трассировки до выпуска платы.
Приверка схемы сначала делается до трассировки, потом еще во время (часто приходится корректировать что-то). Разводка проверяется вручную. На производстве проверяется стек на волновые (могут подогнать). Из компонентов до этого что-то макетировалось (питатели некоторые и еще по мелочам).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации