Pull to refresh

Comments 92

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

Странный тезис, но дело вкуса…

Сколько на вашей плате компонентов?
Ручная сборка ручной сборке рознь :) Можно тыкаться паяльником, можно так или иначе повторять заводскую сборку SMD (наносить пасту шприцом/диспенсером или через трафарет, расставлять компоненты с той или иной степенью автоматизации, запаивать феном или в печке).

При сборке единичных экземпляров даже на «производстве» все равно применяют ручную установку — может, не пинцетом, а установщиком типа такого — www.youtube.com/watch?v=U-690R0YHdY — но это не гарантирует от ошибок вроде «по схеме должен быть резистор 100 кОм, а поставили 10 кОм» (Резонит мне такой прикол пару раз подбрасывал). Наконец, даже если вы где-то заказываете монтаж — сложно объяснить, что на первых двух платах надо поставить только подсистему питания, на третьей — добавить микроконтроллер, а на четвертой и пятой — дорогие внешние модули. Ну и если бывают ошибки вроде такой —
Обнаружилась вторая проблема. При разработке схемы я забыл рассчитать делитель одного из DC/DC и, как следствие, вместо 0V9 на его выходе оказалось 2V5. Если бы в этот момент был запаян процессор, то с большой вероятностью он бы сгорел, так как это напряжение ядра.


— то лучше запускать плату «частями», меньше деталей сгорит в процессе.
Вы все верно написали, я не успел. Спасибо!
Мы заказываем сборку плат в 3-х проверенных местах, где все отлично паяют. Но, во-первых, ошибки бывают — это человеческий фактор, во-вторых, мне на макете нужна поэтапная сборка и третье — это сроки/деньги. Модуль я паял день со всеми тестами, а с производством 1-2 штук все очень грустно.

Доллжноо быть в районе 350-400, не более

UFO just landed and posted this here
Вот и я не могу понять в чем дело пока, глобально проблемы не вижу, скорее всего что-то глупое. Тактовать пробовал и так и так.
Спасибо!
UFO just landed and posted this here
Не секрет, конечно, на этой плате ksz9031rnxc. Сейчас заказали ksz9131rnxc.
UFO just landed and posted this here
Да, использую как раз внешний.
Эээээ, в микрочипе глупостями не занимаются, если есть LDO, значит неспроста.
UFO just landed and posted this here
Референсный дизайн, как правило, идет от платы, которая разработана для характеризации. Это не самый лучший референс. Как мне кажется большинство даже не пытается использовать встройку, ну и конечно, все перестраховываются и экономят время на отладку
UFO just landed and posted this here
внешнее LDO — это позволяет уменьшить влияние помех

Внешений ИП позволяет избавиться от тепла, выделяемое внутренним LDO, что, соответственно, может позволить использовать PHY при более высоких температурах.
UFO just landed and posted this here
UFO just landed and posted this here
the_bat, интересно, либо
а) не берете готовые решения потому что «инженера тоже хотят кушать»
б) готовые решения дороже — или вы просто не нашли
в) Cortex A53 8-cores в россипи еще долго будут на рынке
г) требования по питалову/температуре/вибрациям/etc выше гражданки?
по поводу пункта б)
например у нас получилось что свой модуль развести быстрее, чем соглашаться со сроками, что предлагают на партии в более 100шт популярные вендоры, делающие модули на этих камнях. Ибо компоненты по отдельности закупить проще и быстрее в нужном количестве.
Но это конечно же при условии наличия опыта разработки таких систем.
Ибо компоненты по отдельности закупить проще и быстрее в нужном количестве.
В России?

на партии в более 100шт популярные вендоры
Phytec, Kontron, Compulab?
1) да, в РФ
2) да, еще контрон и когнатек, правда эти два дико дорогие.
Странно. Мои расчеты показывали, что, чтобы получить такие же цены на модули, какие заявляет тот же компьюлаб на свои в партиях от тысячи, даже с учетом растаможки, надо делать реально очень много модулей (больше 10 тысяч). А это не во всех случаях возможно.
Мы разработчики, мы сами делаем готовые решения. Как правильно замечено выше — это бывает удобнее. Модули мы используем как для реализации своих проектов, так и для продажи.
Пара замечаний к статье.
Это дело вкуса, конечно, но плата такого уровня паяется на заводе, целиком и сразу. Очень хорошо, что Вы можете сами паять 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
Все это Вы перечисляете для макета. Ставить на серию предохранители или резисторы 2520 — это не вариант. То есть нужно получить макет с резисторами, запустить его и потом переразводить. Это не гуманно в данном случае. На разработку модуля и так уходит около 2х месяцев на первую итерацию.
По поводу платы для программистов — этого нам не нужно, для этого есть референс от производителя, на котором программисты уже все запустили и отладили, а вот моя схемотехника отлаживается уже на моем макете и нет смысла плодить лишнюю итерацию и делать что-то промежуточное. Отсутствие референса — это скорее исключение, но и такое бывает.
То есть нужно получить макет с резисторами, запустить его и потом переразводить. Это не гуманно в данном случае. На разработку модуля и так уходит около 2х месяцев на первую итерацию.
Так весь смысл в том, что переразводка источников питания уходит на вторую итерацию и не влияет на общий график. А вот сделать идеальные источники питания сразу — это как раз увеличение общей длительности.
По поводу платы для программистов — этого нам не нужно, для этого есть референс от производителя, на котором программисты уже все запустили и отладили
Если уже есть свой работающий референс, то довольно сложно ТАК накосячить со схематикой-разводкой, чтобы горели чипы по КЗ и напряжение делителем выставлялось не то. Я воспринял Вашу статью именно как руководство по запуску новой платформы.
1. Нет, я бы хотел на первой итерации отладить все источники и интерфейсы, а на второй исправить мелкие недочеты, совсем мелкие.
2. Тут как раз все очень просто. Если рассматривать конкретно процессор, то у него есть куча питаний (CPUPOWER), например NVCC_GPIO, NVCC_I2C, NVCC_SD, NVCC_ENET, и это обычно приходится делать совсем как не в референсе.
Приведу конкретный пример. При трассировке eMMC в референсе используются треки 0,076мм. Ни одно из производств, с которыми мы работаем, не делает по такому классу. Для трассировки я использую пады NC и через них вывожу данные. Так вот запросто можно ошибиться и задействовать пин, который в одной eMMC можно задействовать, а в другой нет. Это из опыта, была проблема, что на микросхемах определенного производителя eMMC работали только в 4-bit режиме. Пришлось переразводить, чтобы решение было универсальным.
Второй пример. На моей практике было два случая, когда альтиум (лицензия) криво выгружал гербера. На некоторых участках платы слой шелкографии стал слоем металлизации. Это экзотика, но она возможно, а гербера на плату из 10 слоем глазами проверить очень сложно.
Так вот запросто можно ошибиться и задействовать пин, который в одной eMMC можно задействовать, а в другой нет.
Вообще-то на это есть стандарт (какой там сейчас актуальный для eMMC?) и чудесные надписи «Reserved» и «NC». Т.е. вопрос сугубо в чтении документации.
Именно об этом я и пишу «ошибиться» — ошибки могут быть.
По п.1 — дело вкуса и организации разработки. Если инженер работает над устройством в одиночку — да, так лучше. Если же работает команда — все это время, пока схемотехник и разводчик вылизывают до идеального состояния все источники и интерфейсы, остальная команда, говоря грубо, пинает балду за счет работодателя. Нет, команда, конечно, документирует предыдущие разработки и все такое, но суть в том, что люди, которых всегда не хватает и которые могли бы принести пользу проекту, в данный момент ему пользу не приносят.
Разработка командой — страшно дорогая штука, в смысле времени и денег. Поэтому параллелится все, что только можно. Кейденс даже с 16, что ли, версии, ввел возможность разводку платы параллелить в Аллегро, т.е. hi-speed разводит один, другой, в то же время — источники питания, третий — аналоговые интерфейсы.
По п.2 — не понял, к чему это. Вероятно, Вы что-то выкинули из ответа, и контекст потерялся.
Речь о надежности идет только на партиях. Я паяю макеты и запускаю интерфейсы. Если нужно на продажу в серию, конечно — это только завод.
Это дело вкуса, конечно, но плата такого уровня паяется на заводе, целиком и сразу. Очень хорошо, что Вы можете сами паять BGA, но среди Ваших коллег таких много, кто может сделать это вообще, я уже не говорю про надежность?


Не обязательно, единичные экземпляры все равно паяются в той или иной степени «вручную». Автор разве что совмещает две (а то и три) роли — монтажника, схемотехника, и возможно программиста, в идеале это минимум три разных человека (а иногда и четыре, иногда принципиальную схему и печатную плату проектируют разные люди) — но при изготовлении первых отладочных образцов очень ценна сама возможность сказать монтажнику что-то вроде «это, это и вот это не ставь, а сюда кинь перемычку».
при изготовлении первых отладочных образцов очень ценна сама возможность сказать монтажнику что-то вроде «это, это и вот это не ставь, а сюда кинь перемычку»
В монтажке и ВОМ никто не мешает написать «DNP», что для завода, что для монтажника. Или самому снять компоненты с пришедших с завода плат, если сразу забыл сказать.
Только вот в случае «на две платы ставим только дс-дс и обвязку, на следующие две — добавлвем микроконтроллер, еще на две — вот те дорогие внешние модули» — это у того же Резонита превратится в три отдельных заказа, каждый со своей стоимостью подготовки.
Я про это и писал свой первый коммент — поставить нулевые резисторы или предохранители в разрыв цепей питания и не заниматься подобными вещами.
Извините, если скажу обидное, но если разработчик не уверен, что не накосячил в источниках питания — вряд ли у него в серию пойдет плата с первой итерации, и переразводить что-то все равно придется. А на второй итерации восстановить целостность планов питания, если все хорошо, и сделать back annotate, чтобы синхронизировать схематику — не больше часа работы, даже для джуна.
Сурово. Я при первой же возможности купил ИК-печку и запаиваю SMD только в ней. Паяльником паяю только штыревые разъёмы.

Это если надо сразу всю. А если по частям, то феном быстрее.

Конечно всю сразу. Что за мазохизм — по частям паять.
Ну так применительно к статье автор же написал, почему он так делает, и это не потому, что у него велосипеда печки нет…
UFO just landed and posted this here
Мне и не нужно паять все сразу. Именно для этого и написана статья. Это ее суть. Хотите запаять всю плату или 100 плат — на завод. Хотите запустить макет, на котором 400+ компонентов и 30% не используемых до этого, только по частям. Вообще, какой смысл паять процессор за $60 и память за $40, и отдать заводу X денег, если обнаружена глобальная ошибка на этапе запуска питаний платы?
90% времени уходит на расстановку компонентов, а не на пайку. И Вы говорите о запайке платы целиком. Для этого мы заказываем сборку на заводе.
Плату моете после каждого цикла монтажа?
Мою только щеткой и спиртом. По окончанию в ультразвуковой ванне.
После ультразвука кварцы еще не ломались?

В принципе годно, но постепенно в таком подходе отпадает необходимость. Рано или поздно нарабатываются типовые блоки кочующие из проекта в проект. И там сильно меньше вероятность косяков. У меня сейчас прототипы паяются полностью на заводе, но запуск идёт кусками. Все энейблы и управляющие цепи притянуты к нулю (какие можно), и пока камень не поднимешь, большая часть питания и периферии спит и, соответственно, не косячит.

Рано или поздно нарабатываются типовые блоки кочующие из проекта в проект
Или приходит понимание, что самое простое и надежное — с evaluation board для платформы скопировать один в один.
Правда, если имеешь дело с Интеловскими референсами — это еще и самое дорогое в массовом производстве получается, увы. Так что мозги включать все равно приходится.

Ну, evaluation есть не всегда, но согласен, их надо юзать, они собственно для этого и придуманы.

что самое простое и надежное — с evaluation board для платформы скопировать один в один

Самое надежно купить кем то налаженную и работающую плату.
Еvaluation board настолько избыточна, что в рабочей системе для нее просто не найдется места.
С документации по EVB копировать, конечно. Стоимость самой EVB на некоторые Марвеловские SoC — в районе $50К. FAE зачастую дают их поиграться на месяц бесплатно, но надо стоять в очереди.
«Налаженная и работающая плата» зачастую не имеет схематики-разводки, это время на поиск документации.
Самое надежно купить кем то налаженную и работающую плату.

Вот, кстати, не всегда. Особенно если на борту планируется линукс. Не знаю, починил ли в итоге Kontron для своего iMX6 PCIe. Лет семь назад с этим оказался затык. А ведь был типа отлаженный BSP.
Можно купить с начало одну плату. Слава богу не только Kontron на белом свете.
Дык, в том и дело, что можно купить с виду отлаженную плату, начать с ней работать и получить затык не сразу, а когда уже покупать что-то другое нет времени. Ну или для одного проекта посмотреть, вроде всё ок, запускаем. Втыкаем в другой проект — а там то что нужно не работает. Не будете же вы программиста заставлять проверять все блоки, даже которые не используете у себя от слова совсем.
Другой проект — это другой проект. Если есть отличия, то может вылезти и проблема. Но если производитель поставляет недоделанный продукт, то либо направить рекламацию, либо поставить на нем крест.
Для этого ее кто-то должен сделать и отладить)))
Референс не вариант, да. Габариты, расположение и типы разъемов, да и цена.
К сожалению компоненты снимают с производства и приходится менять. Что-то просто резко становится дороже, а другое падает в цене. Каждый заказчик хочет использовать 2-3, а то и 10 специфичных разъемов или какой-то новый интерфейс. В данном примере я говорю о новом процессоре и памяти, которые до этого не использовал. Новый PMIC. Содрать с референса все не получается, часто стоят дорогущие компоненты, часто не вписываюсь с ними в габариты, потребление, температурный диапазон и т.д. Также мы работаем с дистрибьюторами компонентов, следовательно получаем хорошие цены и т.д.
Интересная и полезная статья.
Только вот Рис. 7 сделать бы масштабируемым по клику. Позиционные обозначения едва различимы.
Спасибо!
Сделал скрин лучшего качества.
Спасибо, уже лучше ;)
Но при расстоянии от глаз до монитора 80 см всматриваться в обозначения элементов всё равно приходится.

Сделать масштабирование картинок очень просто:

<a href="https://habrastorage.org/Картинка_в_статье"><img src="https://habrastorage.org/Увеличенная_картинка" title="Нажмите для увеличения"/></a>
На всякий случай я прозвонил мультиметром на предмет КЗ все точки выходов источников питания относительно GND

Электротестирование это не выявляет? Оно только на разрыв?
Электротестирование пустой платы? Я запаял компоненты и проверяю, чтобы исключить ошибки монтажа и схемотехники.
Я к тому, что выявляет ли электротестирование замыкание между цепями (дефект производства), или оно заточено только на нахождение обрыва каждой конкретной цепи?

Вы искали залипоны после пайки, теперь понял.
Искать дефекты монтажа электротестированием (ICT/FICT) на платах можно, но такой метод тестирования целесообразно использовать на большой партии, так как оборудование требует настройки под конкретное изделие.
То о чем вы спрашиваете описано в здесь.
Ручная сборка интересно, конечно, но я сомневаюсь, что робот сделает хуже
Не сомневайтесь) Катушки вставляют люди и программу сборки пишут тоже. На серийном производстве ошибок практически нет, есть брак и даже на хорошем производстве он может достигать 5%, много из чего правится на месте после выходного контроля и по итогу брак стремиться к 0. Я не раз был на заводах по запуску новых устройств — это все не так просто как кажется. На мой взгляд макет собрать руками — это оптимально.
макет собрать руками — это оптимально

Интересно посмотреть как вы будет это делать на плате с 3000-4000 компонентами.
Пока собирал платы до 2000 компонентов. Никаких проблем, просто нужно 2 дня, а не 1. Если будет 4т, то возможно отдадим на производство, но не факт.
Также я решил изменить типоразмеры 0603 и немного не рассчитал.

Вы же вроде в альтиуме проектируете. Неужели трёхмеркой не пользуетесь?


Зачем это?
Конечно пользуемся, но есть один не приятный факт, что конденсаторы разных номиналов (одного типоразмера) и производителей могут отличаться по размерам. Я не учел этого, когда подрезал КП компонентов.
Проводник — это 3V3, забыл залить полигон, но не критично, просто не красиво, согласен.
конденсаторы разных номиналов (одного типоразмера) и производителей могут отличаться по размерам
Т.е. на все компоненты от разных производителей у вас один типоразмер 0603, к примеру? Ооок. Тогда понятно, откуда такие проблемы.
Не все компоненты, а на конденсаторы 0603 один, на ферриты 0603 другой и т.д., у меня были заложены максимальные для всего пассива (3D модели и пады) и за >10 лет проблем, естественно, не было.
Уж не собираетесь ли Вы переразводить плату при смене производителя конденсаторов?
Уж не собираетесь ли Вы переразводить плату при смене производителя конденсаторов?
Бггг, спасибо, поржал. Разумеется, нет. Но стоит иметь в виду, что у разных производителей бывают разные допуски на, казалось бы, один и тот же корпус (а уж что говорить о длине выводов), и особенно может гулять высота (да, не на миллиметры, а на десятые, но это тоже иногда бывает важно). Как яркий пример, индуктивности в одном и том же корпусе, видимо, могут иметь существенно разную высоту. DFE252007F-1R0M (Tmax=0.7mm) и DFE252012F-1R0M (Tmax=1.2mm). Т.е. целых полмиллиметра. Иногда, повторюсь, это может иметь значение.
Серьезный проект, многим диайвайщикам будет куда стремиться
Одна строка, которая отбила желание читать дальше: «Запуск сложных плат с производства».

Потому что «с производства» снимают, а «запускают» в производство.

То есть, если автор путается даже на таком уровне…
с = после.
«То есть, если автор путается даже на таком уровне…» — это Вы к чему? Продолжение нужно, а то не понятно. «то не умеет платы делать», или «статьи писать», или «не умеет запускать», или "..."? То что?
с = после.
Извините, но не равно. Или у Вас какая-то своя версия русского языка с подменой значения слов.

То что?
То читать нет смысла. Потому что велика вероятность точность формулировок будет такой же. Ведь это — не опечатка: легко сделать опечатку в теле текста, можно сделать опечатку в слове, но написать совсем другое слово, превращая заголовок во что-то бессмысленное — это как-то уже слишком.
Кстати, вероятно, Вы не верно поняли. Статья не о запуске плат в производство.
Я не мог понять неверно, потому что я вообще ничего не понял, поскольку предложение не имеет смысла с грамматической точки зрения. Будь это кусок кода, транслятор выплюнул бы сообщение о синтаксической ошибке.
«с/из производства» еще получают (произведенную продукцию). В данном случае — плату. А потом автор ее запускает. «запускать», тоже можно по разному, например «в космос»
Но стить «казнить нельзя помиловать» в заголовке есть :)
Спасибо, постараюсь! Времени не хватает. Год не писал.
на фото, для сравнения габаритов платы, лежит красивая флешка
Sign up to leave a comment.

Articles