Comments 92
я буду паять его вручную, чтобы исключить ошибки монтажа на заводе
Странный тезис, но дело вкуса…
Сколько на вашей плате компонентов?
При сборке единичных экземпляров даже на «производстве» все равно применяют ручную установку — может, не пинцетом, а установщиком типа такого — www.youtube.com/watch?v=U-690R0YHdY — но это не гарантирует от ошибок вроде «по схеме должен быть резистор 100 кОм, а поставили 10 кОм» (Резонит мне такой прикол пару раз подбрасывал). Наконец, даже если вы где-то заказываете монтаж — сложно объяснить, что на первых двух платах надо поставить только подсистему питания, на третьей — добавить микроконтроллер, а на четвертой и пятой — дорогие внешние модули. Ну и если бывают ошибки вроде такой —
Обнаружилась вторая проблема. При разработке схемы я забыл рассчитать делитель одного из DC/DC и, как следствие, вместо 0V9 на его выходе оказалось 2V5. Если бы в этот момент был запаян процессор, то с большой вероятностью он бы сгорел, так как это напряжение ядра.
— то лучше запускать плату «частями», меньше деталей сгорит в процессе.
Мы заказываем сборку плат в 3-х проверенных местах, где все отлично паяют. Но, во-первых, ошибки бывают — это человеческий фактор, во-вторых, мне на макете нужна поэтапная сборка и третье — это сроки/деньги. Модуль я паял день со всеми тестами, а с производством 1-2 штук все очень грустно.
Доллжноо быть в районе 350-400, не более
Спасибо!
а) не берете готовые решения потому что «инженера тоже хотят кушать»
б) готовые решения дороже — или вы просто не нашли
в) Cortex A53 8-cores в россипи еще долго будут на рынке
г) требования по питалову/температуре/вибрациям/etc выше гражданки?
например у нас получилось что свой модуль развести быстрее, чем соглашаться со сроками, что предлагают на партии в более 100шт популярные вендоры, делающие модули на этих камнях. Ибо компоненты по отдельности закупить проще и быстрее в нужном количестве.
Но это конечно же при условии наличия опыта разработки таких систем.
Ибо компоненты по отдельности закупить проще и быстрее в нужном количестве.В России?
на партии в более 100шт популярные вендорыPhytec, Kontron, Compulab?
2) да, еще контрон и когнатек, правда эти два дико дорогие.
Это дело вкуса, конечно, но плата такого уровня паяется на заводе, целиком и сразу. Очень хорошо, что Вы можете сами паять BGA, но среди Ваших коллег таких много, кто может сделать это вообще, я уже не говорю про надежность? Я вот, например, не умею — и совершенно из-за этого не комплексую, поменять BGA чип могут в соседней мастерской по ремонту сотовых, менее чем за полчаса. А на цепи питания ставятся последовательно нулевые резисторы (или предохранители), которые впаиваются после отладки этих источников питания. Или просто припоем перемкнуть площадки.
Хотя, конечно, иногда производство такие сроки на монтаж выдает, что платы типа описанной в статье и впрямь ручками куда быстрее запаять, это да, признаю.
Крупные производители чипов обычно выпускают руководства по отладке систем на их продукции. Я, например, серверными платами занимаюсь — и знаю, что всегда есть документ типа "#558919 Purley Power on checklist", где без воды указан перечень конкретных процедур по брингапу пришедшей с завода первой платы, нужные программные тулзы, нужные даташиты, адреса того-сего… Это только в первый раз материнка кажется жутко навороченным девайсом, пройдя один раз по наработанному алгоритму понимаешь, что, в принципе, ничего там сложного нет.
К чему я это все. Есть разные подходы к брингапу. Можно — как в статье. Я лично предпочитаю вначале найти на сайте производителя документ «bringup системы на XXX», и только если не нашел, и даже FAE не смог ничего подсказать, следую общим рекомендациям, вроде этой статьи или вот этого Интеловского общедоступного документа. Проблема обобщенных руководств по отладке — в диких затратах времени на поиск нужной инфы в даташитах и юзергайдах программных отладочных тулзов. Обычно производитель SoC уже сделал это, очень качественно и с объяснением деталей, собрав все в один документ, просто надо его найти. Это уже не говоря про то, что даже программные отладочные тулзы от производителя иногда работают, мягко говоря, неправильно, и только в таких гайдах описана точно работающая ветка на конкретной версии софта.
В принципе про дело вкуса верно сказано. Паять нуль-омники в питание? Тоже спорное решение, особенно на мощные низковольтные нагрузки. Сколько на нем упадет? И как обеспечить целостность сигнала? Это будут все слои питания порезаны. Не универсальный вариант, так точно...
1. Система на MSP430. Обычный джампер на питание, однозначно.
2. Система на SoC, a-la Raspberry, про который идет речь в статье. На фото видно, что сделать разрыв в плане питания на верхнем слое вполне возможно. И необязательно нуль-омник должен быть 0402, более подходящий 2520. Или просто план на верхнем-нижнем слое разрезать с шириной разрыва 0.5мм, в разрыв — предохранитель, не сгорело — перемычка паяется вдоль всего разреза. Кому как удобнее.
3. Материнка с сотней ампер тока на процессорах и десятком разных напряжений. Там многофазные регуляторы и всобачить туда разрыв по цепям питания просто невозможно. Но оно там и не надо, ток и напряжение управляются встроенными в регуляторы микроконтроллерами, там сенсоров по току, напряжению и температуры в мощные ключи понапихано под завязку, спалить питаемое устройство трудно. Там другие проблемы — как программно-аппаратные тулзы под генерацию прошивок источников питания получить и настроить нужным образом. Нетривиальная задачка иногда, особенно если производитель начинает разговаривать, начиная с объемов в 10К чипов, тот же Infineon.
4. Западный подход. На первой итерации платы ставятся Point-of-Load, чтобы дать программистам и инженерам рабочую платформу как можно скорее, а на второй итерации переделывается на нормальные источники, уже не спеша и тщательно. Я вначале был шокирован подобным подходом у субподрядчиков из Израиля, но когда получил от них работающий роутер через неделю после прихода с завода первой итерации, крепко призадумался. Увы, этот подход только для не очень больших токов работает, из п.2
По поводу платы для программистов — этого нам не нужно, для этого есть референс от производителя, на котором программисты уже все запустили и отладили, а вот моя схемотехника отлаживается уже на моем макете и нет смысла плодить лишнюю итерацию и делать что-то промежуточное. Отсутствие референса — это скорее исключение, но и такое бывает.
То есть нужно получить макет с резисторами, запустить его и потом переразводить. Это не гуманно в данном случае. На разработку модуля и так уходит около 2х месяцев на первую итерацию.Так весь смысл в том, что переразводка источников питания уходит на вторую итерацию и не влияет на общий график. А вот сделать идеальные источники питания сразу — это как раз увеличение общей длительности.
По поводу платы для программистов — этого нам не нужно, для этого есть референс от производителя, на котором программисты уже все запустили и отладилиЕсли уже есть свой работающий референс, то довольно сложно ТАК накосячить со схематикой-разводкой, чтобы горели чипы по КЗ и напряжение делителем выставлялось не то. Я воспринял Вашу статью именно как руководство по запуску новой платформы.
2. Тут как раз все очень просто. Если рассматривать конкретно процессор, то у него есть куча питаний (CPUPOWER), например NVCC_GPIO, NVCC_I2C, NVCC_SD, NVCC_ENET, и это обычно приходится делать совсем как не в референсе.
Приведу конкретный пример. При трассировке eMMC в референсе используются треки 0,076мм. Ни одно из производств, с которыми мы работаем, не делает по такому классу. Для трассировки я использую пады NC и через них вывожу данные. Так вот запросто можно ошибиться и задействовать пин, который в одной eMMC можно задействовать, а в другой нет. Это из опыта, была проблема, что на микросхемах определенного производителя eMMC работали только в 4-bit режиме. Пришлось переразводить, чтобы решение было универсальным.
Второй пример. На моей практике было два случая, когда альтиум (лицензия) криво выгружал гербера. На некоторых участках платы слой шелкографии стал слоем металлизации. Это экзотика, но она возможно, а гербера на плату из 10 слоем глазами проверить очень сложно.
Так вот запросто можно ошибиться и задействовать пин, который в одной eMMC можно задействовать, а в другой нет.Вообще-то на это есть стандарт (какой там сейчас актуальный для eMMC?) и чудесные надписи «Reserved» и «NC». Т.е. вопрос сугубо в чтении документации.
Разработка командой — страшно дорогая штука, в смысле времени и денег. Поэтому параллелится все, что только можно. Кейденс даже с 16, что ли, версии, ввел возможность разводку платы параллелить в Аллегро, т.е. hi-speed разводит один, другой, в то же время — источники питания, третий — аналоговые интерфейсы.
По п.2 — не понял, к чему это. Вероятно, Вы что-то выкинули из ответа, и контекст потерялся.
Это дело вкуса, конечно, но плата такого уровня паяется на заводе, целиком и сразу. Очень хорошо, что Вы можете сами паять BGA, но среди Ваших коллег таких много, кто может сделать это вообще, я уже не говорю про надежность?
Не обязательно, единичные экземпляры все равно паяются в той или иной степени «вручную». Автор разве что совмещает две (а то и три) роли — монтажника, схемотехника, и возможно программиста, в идеале это минимум три разных человека (а иногда и четыре, иногда принципиальную схему и печатную плату проектируют разные люди) — но при изготовлении первых отладочных образцов очень ценна сама возможность сказать монтажнику что-то вроде «это, это и вот это не ставь, а сюда кинь перемычку».
при изготовлении первых отладочных образцов очень ценна сама возможность сказать монтажнику что-то вроде «это, это и вот это не ставь, а сюда кинь перемычку»В монтажке и ВОМ никто не мешает написать «DNP», что для завода, что для монтажника. Или самому снять компоненты с пришедших с завода плат, если сразу забыл сказать.
Извините, если скажу обидное, но если разработчик не уверен, что не накосячил в источниках питания — вряд ли у него в серию пойдет плата с первой итерации, и переразводить что-то все равно придется. А на второй итерации восстановить целостность планов питания, если все хорошо, и сделать back annotate, чтобы синхронизировать схематику — не больше часа работы, даже для джуна.
Это если надо сразу всю. А если по частям, то феном быстрее.
В принципе годно, но постепенно в таком подходе отпадает необходимость. Рано или поздно нарабатываются типовые блоки кочующие из проекта в проект. И там сильно меньше вероятность косяков. У меня сейчас прототипы паяются полностью на заводе, но запуск идёт кусками. Все энейблы и управляющие цепи притянуты к нулю (какие можно), и пока камень не поднимешь, большая часть питания и периферии спит и, соответственно, не косячит.
Рано или поздно нарабатываются типовые блоки кочующие из проекта в проектИли приходит понимание, что самое простое и надежное — с evaluation board для платформы скопировать один в один.
Правда, если имеешь дело с Интеловскими референсами — это еще и самое дорогое в массовом производстве получается, увы. Так что мозги включать все равно приходится.
Ну, evaluation есть не всегда, но согласен, их надо юзать, они собственно для этого и придуманы.
что самое простое и надежное — с evaluation board для платформы скопировать один в один
Самое надежно купить кем то налаженную и работающую плату.
Еvaluation board настолько избыточна, что в рабочей системе для нее просто не найдется места.
«Налаженная и работающая плата» зачастую не имеет схематики-разводки, это время на поиск документации.
Самое надежно купить кем то налаженную и работающую плату.
Вот, кстати, не всегда. Особенно если на борту планируется линукс. Не знаю, починил ли в итоге Kontron для своего iMX6 PCIe. Лет семь назад с этим оказался затык. А ведь был типа отлаженный BSP.
Референс не вариант, да. Габариты, расположение и типы разъемов, да и цена.
Только вот Рис. 7 сделать бы масштабируемым по клику. Позиционные обозначения едва различимы.
Сделал скрин лучшего качества.
Но при расстоянии от глаз до монитора 80 см всматриваться в обозначения элементов всё равно приходится.
Сделать масштабирование картинок очень просто:
<a href="https://habrastorage.org/Картинка_в_статье"><img src="https://habrastorage.org/Увеличенная_картинка" title="Нажмите для увеличения"/></a>
На всякий случай я прозвонил мультиметром на предмет КЗ все точки выходов источников питания относительно GND
Электротестирование это не выявляет? Оно только на разрыв?
Также я решил изменить типоразмеры 0603 и немного не рассчитал.
Вы же вроде в альтиуме проектируете. Неужели трёхмеркой не пользуетесь?
Зачем это?
Проводник — это 3V3, забыл залить полигон, но не критично, просто не красиво, согласен.
конденсаторы разных номиналов (одного типоразмера) и производителей могут отличаться по размерамТ.е. на все компоненты от разных производителей у вас один типоразмер 0603, к примеру? Ооок. Тогда понятно, откуда такие проблемы.
Уж не собираетесь ли Вы переразводить плату при смене производителя конденсаторов?
Уж не собираетесь ли Вы переразводить плату при смене производителя конденсаторов?Бггг, спасибо, поржал. Разумеется, нет. Но стоит иметь в виду, что у разных производителей бывают разные допуски на, казалось бы, один и тот же корпус (а уж что говорить о длине выводов), и особенно может гулять высота (да, не на миллиметры, а на десятые, но это тоже иногда бывает важно). Как яркий пример, индуктивности в одном и том же корпусе, видимо, могут иметь существенно разную высоту. DFE252007F-1R0M (Tmax=0.7mm) и DFE252012F-1R0M (Tmax=1.2mm). Т.е. целых полмиллиметра. Иногда, повторюсь, это может иметь значение.
Потому что «с производства» снимают, а «запускают» в производство.
То есть, если автор путается даже на таком уровне…
«То есть, если автор путается даже на таком уровне…» — это Вы к чему? Продолжение нужно, а то не понятно. «то не умеет платы делать», или «статьи писать», или «не умеет запускать», или "..."? То что?
с = после.Извините, но не равно. Или у Вас какая-то своя версия русского языка с подменой значения слов.
То что?То читать нет смысла. Потому что велика вероятность точность формулировок будет такой же. Ведь это — не опечатка: легко сделать опечатку в теле текста, можно сделать опечатку в слове, но написать совсем другое слово, превращая заголовок во что-то бессмысленное — это как-то уже слишком.
Но стить «казнить нельзя помиловать» в заголовке есть :)
Запуск сложных плат с производства (и не только)