Embedded HandbookПриложения
Все разделы › XXVI. От макета к изделию
STM32F103 · уровень средний · 12 мин чтения
Открыть в интерактивном справочнике

199. Сборка платы на заводе: перечень, файл установки и гербер

Плата разведена и проверена (разделы 130–135) — макет работает, пора превращать его в изделие. Завод делает две разные вещи: изготавливает голую плату по Gerber и сверловке и собирает её — покупает детали по перечню и ставит их автоматом по файлу установки. Как выгрузить эти файлы из DipTrace, разобрано в 132в; этот раздел — о другом: что в каждом файле лежит, как его читает завод и как проверить комплект до отправки, пока вопросы завода не превратились в неделю переписки.

Опыты — на плате раздела 131 (LQFP-48, 45×32 мм) в KiCad 9.0.9 из образа kicad/kicad:9.0: выгрузки и сверки делает _verify/fab199/exports.sh с bom.py, арифметику панели — panel.py. Сверяет _verify/fab199_check.py.

Как это называется в документации

Оригинал Перевод
fiducial mark реперный знак: круг меди для камеры автомата
stencil трафарет: стальной лист с окнами по слою пасты
turnkey сборка «под ключ»: детали покупает завод
consigned assembly сборка из деталей заказчика
DNP, do not populate «не устанавливать»: деталь есть в проекте, но не ставится
MSL, moisture sensitivity level чувствительность корпуса к влаге до пайки
tab routing, mouse bites фрезеровка с мостиками и перфорацией
X-out забракованная плата внутри панели
AOI, automated optical inspection автоматический оптический контроль пайки

199.1 Что завод хочет от вас

Комплект — четыре файла, и у каждого на заводе свой читатель:

Файл Кто читает Что в нём
Gerber + сверловка изготовление платы геометрия каждого слоя и отверстия
перечень (BOM) закупка что купить: номиналы, корпуса, артикулы, замены
файл установки автомат установки где стоит каждая деталь: координаты, поворот, сторона
сборочный чертёж инженер и контроль вид платы с обозначениями — по нему проверяют готовое

Если заказываете только голые платы, хватает первой строки. Для сборки нужны все четыре — и трафарет для пасты завод вырежет сам по слою пасты из того же Gerber.

Комплект файлов для завода: Gerber со сверловкой делают плату, по перечню покупают детали, файл установки ведёт автомат, сборочный чертёж читает инженер

Весь комплект отправляют одним архивом, и в имени архива — версия платы. У завода не бывает «контекста переписки»: собирать будут ровно то, что лежит в архиве, поэтому полкомплекта из письма недельной давности и полкомплекта «вот новый гербер» — верный путь к плате-франкенштейну.


199.2 Перечень (BOM)

Перечень — таблица «что купить и куда поставить». Минимум столбцов:

Столбец Пример Зачем
обозначения C1 C2 C3 C4 C5 C6 связь с платой и файлом установки
количество 6 закупка считает по нему
номинал и допуск 100 нФ ±10 %, 50 В, X7R «просто 100 нФ» бывает на 6,3 В
корпус 0603 (1608 метрич.) в какой ленте деталь
артикул производителя конкретное исполнение, не серия по нему деталь покупают
замены 1–2 равноценных артикула иначе сборка встанет при дефиците

Начало перечня даёт CAD: группировка деталей платы по паре «номинал + корпус». На плате раздела 131 пятнадцать деталей складываются в девять строк — шесть конденсаторов 0603 одной строкой, два 0805, и по одной строке на микроконтроллер, стабилизатор, кварц, резистор, светодиод и два разъёма (прогон bom.py):

строк перечня: 9, деталей: 15
деталей, у которых номинал пуст или повторяет имя корпуса: 15 из 15

Вторая строка прогона — главный урок. Плату раздела 131 собирал скрипт, номиналы деталям никто не задавал, и в колонке номинала оказалось имя корпуса: перечень выглядит заполненным, а купить по нему нечего. CAD знает о детали ровно то, что вы в неё записали; номинал, допуск и артикул сами не появятся. Типичные ошибки перечня:

Ошибка Чем кончается
номинал без напряжения и допуска закупка возьмёт самое дешёвое
корпус «0603» без системы единиц метрический 0603 — это имперский 0201
артикул серии вместо исполнения у серии десятки вариантов корпуса и ленты
детали «не ставить» не помечены DNP их купят и поставят
нет замен нет одной позиции — стоит вся сборка

Про имперскую и метрическую сетку корпусов удобно помнить по именам посадочных мест KiCad — они хранят обе: C_0603_1608Metric — имперский 0603, он же метрический 1608.


199.3 Файл установки (pick-and-place)

Файл установки — таблица для автомата: центр каждой детали, поворот и сторона платы. DipTrace выгружает его через File / Export / Pick and Place (132в.3), KiCad — командой:

kicad-cli pcb export pos --format csv --units mm -o out/pos.csv board.kicad_pcb

Несколько строк файла нашей платы (целиком — в прогоне exports.sh):

Ref,Val,Package,PosX,PosY,Rot,Side
"C1","C_0603_1608Metric","C_0603_1608Metric",26.750000,-21.962500,90.000000,top
"C2","C_0603_1608Metric","C_0603_1608Metric",30.962500,-12.250000,0.000000,top
"C5","C_0603_1608Metric","C_0603_1608Metric",5.000000,-11.500000,90.000000,top
"U1","LQFP-48_7x7mm_P0.5mm","LQFP-48_7x7mm_P0.5mm",24.000000,-15.000000,0.000000,top

Всего 15 строк — по числу деталей, все со стороной top. Что тут важно проверить глазами:

И сверка, которую стоит делать всегда: множество обозначений в файле установки равно множеству обозначений перечня. У нас — 15 и 15, совпали (прогон bom.py). Деталь, которая есть в одном файле и отсутствует в другом, — это либо забытый DNP, либо потерянная при правке строка.


199.4 Гербер и сверловка

Что сдают на двухслойную плату: медь двух слоёв, маска и шелкография с двух сторон, паста для стороны со SMD, контур — и сверловка Excellon отдельным файлом, а не отверстиями в Gerber. У платы раздела 131 это восемь файлов Gerber плюс сверловка; какие галочки при выгрузке важны и как формат читается построчно — 132в.3 и 132в.5, повторять не будем.

Перед отправкой выходные файлы смотрят глазами в стороннем просмотрщике Gerber — не в том CAD, который их писал: он покажет то, что вы и так видели. Что ищут:

Числа между файлами обязаны сходиться: на плате 131 паста 74 = числу SMD-площадок, маска 80 = 74 + 6 выводных, отверстий 10 — как выводов и переходов (сверено в 132в.5). Эта сверка ловит битую выгрузку за минуту — до завода, а не после.


199.5 Реперные знаки и технологические поля

Автомат ставит детали с точностью в сотые доли миллиметра, а плату ему подают с точностью «положили на конвейер». Разницу закрывает камера: она ищет реперные знаки — круги открытой меди — и по ним пересчитывает все координаты файла установки в координаты реальной заготовки.

Репер — это круг меди и свободная зона вокруг: без маски, шелкографии и соседней меди, иначе камере не хватит контраста. Типовые размеры видно прямо в стандартной библиотеке KiCad Fiducial.pretty (прогон exports.sh): медь от 0,5 до 1,5 мм, окно маски минимум вдвое больше меди; типовая середина ряда — Fiducial_1mm_Mask2mm: круг 1 мм в окне 2 мм.

Сколько и где:

На плате раздела 131 реперов ноль (прогон bom.py) — для заводской сборки их нужно добавить до заказа.

Кромку конвейер держит с двух сторон, и если детали стоят до самого края, плате нужны технологические поля — полосы по краю, которые после сборки отламывают. Типовая ширина — 5 мм: столько же, 0,2 дюйма, советует и пример панелизации DipTrace (132в.2). В полях живут реперы панели и крепёжные отверстия.


199.6 Панелизация

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

Панель два на два из платы раздела 131: технологические поля, три реперных знака по углам, вертикальный V-рез от края до края и фрезерованный канал с мостиками

Разделяют платы двумя способами:

Арифметика панели 2×2 из нашей платы 45×32 мм: столбцы разделены V-резом — платы вплотную, ряды — фрезерованным каналом 2 мм, поля по 5 мм со всех сторон (прогон panel.py):

ширина: 5 + 45 + 0 + 45 + 5 = 100 мм
высота: 5 + 32 + 2 + 32 + 5 = 76 мм

Заготовка 100×76 мм несёт четыре платы — и это уже удобный конвейеру размер. Как собрать такую панель в DipTrace — Tools / Panelizing, 132в.2. Осталось одно слово из словаря завода: X-out — панель, в которой одна из плат забракована и помечена. Принимать ли такие панели или требовать только целые, оговаривают при заказе: у целых цена выше.


199.7 Что заказывать

Три варианта заказа, по нарастанию цены и убыванию хлопот:

Вариант Вы даёте Завод делает
только платы Gerber + сверловку голые платы
платы + монтаж из ваших деталей весь комплект и сами детали consigned: ставит то, что прислали
«под ключ» (turnkey) весь комплект покупает детали и собирает

Для мелкой серии «под ключ» почти всегда выгоднее по времени: неделя переписки о заменах дешевле, чем месяц самостоятельной закупки. Детали заказчика имеют смысл, когда в плате есть что-то дефицитное, что вы уже купили.

Сколько запасать:

И про влагу: корпуса микросхем набирают её из воздуха, а при пайке оплавлением вода вскипает внутри корпуса — уровень чувствительности называется MSL. Практический вывод для заказчика деталей: присылать микросхемы в невскрытой сухой упаковке, а вскрытые — паять в срок или отдавать заводу на просушку.


199.8 Проверка комплекта перед отправкой

Контрольный список — каждая строка ловит реальную остановку сборки:

  1. DRC, целостность цепей и сравнение со схемой прогнаны после последней правки (132в.1).
  2. Числа между файлами сходятся: паста = SMD-площадки, маска = площадки, отверстия — в сверловке, а не в Gerber (132в.5).
  3. Нуль координат один у Gerber, сверловки и файла установки (132в.3).
  4. Множества обозначений в перечне и файле установки совпадают — у нас 15 и 15.
  5. В каждой строке перечня: номинал с допуском и напряжением, корпус с системой единиц, артикул исполнения и замены; DNP помечены.
  6. Реперы на плате или панели есть; детали у края — значит, есть поля.
  7. Выходные файлы просмотрены глазами в стороннем просмотрщике: слои, контур, габарит, зеркальность нижней шелкографии.
  8. Всё — одним архивом, в имени версия; внутри короткая заметка для завода: число слоёв, толщина, что собирать, что DNP.

Пункты 1–3 делает CAD, 4 — скрипт на десять строк, 5–8 — глаза. Полчаса на список против недели переписки с заводом — выгодный обмен.


199.9 Грабли

Завод остановил сборку и прислал список вопросов. Перечень собран из CAD «как есть»: номинал повторяет имя корпуса — как все 15 деталей нашей платы в прогоне bom.py. Купить по такому перечню нечего: номиналы, артикулы и замены заполняют руками до отправки.

Приехала лента 0201 вместо 0603. Корпус в перечне записан числом без системы единиц: метрический 0603 — это имперский 0201. Писать обе, как в имени C_0603_1608Metric.

При проверке файла установки все Y — с минусом, «детали вне платы». Ось Y файла растёт вверх, а не вниз, как на экране: C5 из точки (5; 11,5) стала (5; −11,5). Это не ошибка — но сверить одну деталь с Gerber стоит.

Полярные детали стоят задом наперёд. Нуль поворота вашей библиотеки не совпал с тем, как деталь намотана в ленте. Автомату всё равно, кто прав, — завод сверяет спорные повороты по сборочному чертежу, поэтому чертёж и кладут в комплект.

Автомат не взял плату: нет реперов. На плате раздела 131 их ноль — как и на большинстве плат, разведённых «для макета». Три глобальных по углам плюс пара локальных у LQFP — до заказа.

Панель разломали — у крайних конденсаторов трещины. Керамика не терпит изгиба: при разломе панель гнётся, и мелочь у самой линии разлома трескается. Не ставить конденсаторы вплотную к V-резу и ориентировать их длинной стороной вдоль линии.

Ленту заказали ровно по счёту — не хватило. Заправка питателя съедает начало ленты, и точное число превращается в недостачу на последней плате. Мелочь — всегда с запасом: +5 % или +10 штук.


199.10 Итоги


Дальше: раздел 200 «Первое включение новой платы».

Открыть в интерактивном справочнике