DFM, DFMA, DFA. Часть 1. На примере инструментов NextPCB

13.02.2024

Эта статья была мной ранее (23 января 2024 года) опубликована на канале Разумный мир в Дзен. Статья публикуется с небольшими изменениями и уточнениями.

На Западе очень любят различные процедуры и красивые сокращения. Но на самом деле, эти три сокращения обозначают обычную разработку с учетом возможностей производства и сборки. Любой разработчик, который предполагает, что его творение будет действительно изготавливаться, даже в единственном, экземпляре, всегда это учитывал и учитывает.

  • DFM - Design For Manufacturing. То есть, конструирование для производства. Или с учетом возможностей производства, которые всегда имеют некоторые ограничения.

  • DFMA - Design For Manufacturing and Assembly. То есть, конструирование для производства и сборки. Здесь просто добавлен учет возможностей собрать готовое из изготовленных на производстве компонентов.

  • DFA - Design For Assembly. То есть, конструирование для сборки. Часто это просто более короткое сокращение для DFMA.

Мы не будем погружаться в тонкости этих процедур, так как это заведет нас слишком далеко в обсуждение, зачастую, бюрократических вопросов. Мы будем рассматривать практическую сторону, причем только в разработке и изготовлении электронных устройств. И большей частью не абстрактно, а на примере электронной нагрузки (силового модуля), ссылку на схему которого я давал в конце статьи на своем канале в Дзен Немного об электронных нагрузках и их особенностях. Более того, ограничимся лишь некоторыми вопросами, связанными с печатной платой, так рассматриваемые инструменты ориентированы именно на изготовление и сборку печатных плат.

Помогут нам KiCad и NextPCB. Сначала кратко рассмотрим общие вопросы, а потом перейдем к практике.

Почему именно KiCad и NextPCB

Все очень просто, здесь нет никаких тайн:

  • KiCad один из основных моих рабочих инструментов и является одним из самых популярных бесплатных EDA с открытым кодом. При этом он активно развивается и позволяет реализовать практический полный цикл разработки/конструирования: создание принципиальных схем, математическое моделирование, проектирование многослойных печатных плат, создание файлов для производства печатных плат, просмотр файлов для производства печатных плат, создание файлов размещения компонентов для сборки печатных плат. Не хватает лишь возможности конструирования корпусов, но здесь может выручить, например, FreeCAD.

  • NextPCB, прежде всего, предоставляет те инструменты, которые нам понадобятся. Причем бесплатно. Кроме того, после ухода весной 2023 года из России JLCPCB, который был весьма популярен у любителей и небольших компаний, и некоторых других производителей печатных плат, у многих возникли проблемы. Одним из популярных вопросов на форумах стал Где теперь заказывать печатные платы?. А NextPCB работает с Россией. К сожалению, сайт NextPCB поддерживает только два языка — английский и японский, русского языка нет.

Кратко о терминологии

В технике, как и в науке, важна точность. Поэтому сначала определим, как именно мы будем понимать некоторые англоязычные термины:

Design
В повседневной жизни, под русскоязычным термином Дизайн обычно понимается нечто связанное с внешним видом или украшением. Например, дизайнер интерьеров или одежды. Однако, этот термин обозначает совсем другое - Конструирование или Проектирование. Это можно считать частично пересекающимся с термином Разработка - Development. Мы же чаще всего будем использовать единый термин Разработка.

Manufacturing
В русском языке это - Производство. Но Производство это слишком широкий термин. Сегодня будем считать производством лишь процесс изготовления печатной платы, без установки на нее компонентов.

Assembly
Обозначает - Сборка. То есть, процесс объединения отдельных частей в целое. Кстати, Ассемблер, который чаще воспринимают как самый низкоуровневый язык программирования или компилятор, выполняет именно сборку целого, программы, из отдельных компонентов, машинных команд. Мы будем понимать под сборкой установку компонентов на готовую печатную плату.

Разработка и конструирование, влияние вопросов производства

С одной стороны, разрабатываемое устройство должно обеспечить выполнение функциональных требований и соответствовать заданным параметрам. С другой стороны, всегда есть ограничения в виде доступности различных компонентов и материалов, а так же, технологических возможностей производства. Разработчик должен все это учитывать, если конечно действительно хочет получить готовое электронное устройство, причем даже в единственном экземпляре. Денежные вопросы и сроки разработки и изготовления тоже нельзя игнорировать. Как и возможность собрать все составные части в единое целое.

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

Схемотехника, выбор компонентов и материалов

Нет смысла использовать электронные компоненты, которые невозможно приобрести своевременно и в достаточном количестве. Менее очевидно, что могут существовать дополнительные ограничения. Например, может потребоваться использовать совершенно конкретные компоненты, которые уже используются в других устройствах и закупаются в больших количествах. Даже если их параметры явно излишни для вашего устройства. Для реального производства, чем меньше номенклатура используемых компонентов, тем лучше. А большой объём закупок означает и меньшую стоимость.

На выбор могут повлиять и требования к надежности. Одни и те же компоненты могут выпускаться на разных заводах и разными производителями. И интенсивность отказов может зависеть от места производства компонента. Часто приходится учитывать условия работы устройства. Так для работы в условиях вибрации используемые компоненты должны предусматривать возможность дополнительного механического крепления.

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

Используемые материалы тоже могут влиять на работу схемотехника. Так материал печатной платы влияет на параметры ВЧ и СВЧ устройств. Для отвода тепла в герметичных корпусах может потребоваться использовать печатные платы с металлическим основанием. А это влияет на расчет теплового режима и выбор электронных компонентов.

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

Проектирование печатной платы

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

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

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

В общем случае, печатные платы делятся на несколько классов сложности. В KiCad можно найти вот такую таблицу

Чем выше класс сложности, тем более высокие требования предъявляются к точности ее изготовления, что сказывается и на стоимости, и на самой возможности изготовления. Сложные печатные платы часто многослойные, что может вызвать дополнительные ограничения со стороны производителя. Например, могут не поддерживаться микропереходные отверстия или глухие переходные отверстия. Я повторю иллюстрацию из своей статьи в Дзен KiCad для начинающих §9. Начинаем знакомство с редактором печатных плат

Если вы самостоятельно изготавливаете печатные платы, то конечно знаете свои технологические возможности. Если печатные платы где-то заказываются, то всегда нужно знать возможности выбранного производителя. Например, для NextPCB они будут такими PCB Capabilities. Это нам сегодня еще понадобится.

Важно понимать, технологические возможности это лишь предел, а не руководство к действию.

Будем считать, что топология печатной платы уже разработана и мы можем сформировать gerber файлы для производства. Печатная плата двухсторонняя.

Почему DRC недостаточно

Редактор печатных плат KiCad поддерживает Правила проектирования - Design Rules. В общем и целом, можно упрощенно рассматривать правила проектирования как способ задать предел технологических возможностей для конкретной печатной платы, хотя это не совсем так. Но даже если просто сравнить список правил проектирования KiCad с указанными на сайте NextPCB ограничениями, то будет видно, на уровне KiCad далеко не все можно указать.

Соблюдение правил проектирования при разработке печатной платы частично выполняется автоматически. Но ведь мы всегда можем изменить правила уже в процессе работы. При этом уже готовая часть платы автоматически не будет перестроена. Поэтому предусмотрена и возможность выполнить отдельную проверку правил проектирования, Design Rules Check (DRC), которая обычно выполняется после завершения разработки.

Важно понимать, что проверка правил проектирования относится лишь к печатной плате во внутреннем формате KiCad. Эта проверка никак не касается создания файлов для производства печатной платы. Если файлы для производства будут сформированы с ошибкой, или производитель их интерпретируется с ошибкой, то печатная плата получится бракованной. Об одном таком случае я писал в своей статье на Дзен Вниманию пользователей KiCad и JLCPCB! И не только!.

Таким образом, выполнение DRC не может полностью гарантировать, что ваша печатная плата не вызовет проблем при производстве. Кроме того, производитель не может заглянуть в голову разработчиков и узнать, хотя бы, назначение печатной платы. У него есть только предоставленные нами файлы. И нет, да и не может быть, схемы нашего устройства.

Поэтому производитель всегда выполняет проверку предоставленных нами файлов. И это будет уже не проверка правил проектирования, а проверка соблюдения технологических возможностей. Как минимум. Проверку того самого DFM. И достаточно очевидно, что ручная проверка, даже для не самой сложной платы, будет чрезвычайно трудоемкой. Если вообще выполнимой человеком. Поэтому производитель использует различные технические средства, программы. Если будут обнаружены ошибки, то или о них будет сообщено вам, как заказчику, для исправления ошибок, или ошибки исправит производитель, что может повлиять на цену, или плата будет изготовлена как получится, если вы отказались исправлять ошибки.

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

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

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

Инструменты проверки DFM и DFMA, предлагаемые NextPCB

Еще раз отмечу, что нас сегодня интересуют только инструменты, которые мы, как заказчик, можем использовать для проверки печатной платы перед размещением заказа. И не удивительно, что у всех производителей, которые такие инструменты предоставляют, они ориентированы на их собственные возможности. Более того, обычно предполагается, что после проверки вы разместите заказ именно у них. Будем просто держать это в уме.

NextPCB предлагает два инструмента, которые обладают разными возможностями. Оба инструмента можно найти на странице HQDFM Free Online Gerber Viewer and DFM Analysis Tool.

  • Online Gerber Viewer. Исходя из его названия можно предположить, что это довольно простой инструмент, который позволяет увидеть наши платы (файлы) глазами производителя.

  • DFM Analysis Tool, который уже требует установки на ваш компьютер. Судя по названию, это более серьезный инструмент, который позволяет проанализировать печатную плату, а не только увидеть, как она выглядит.

Что бы увидеть отличие от обычного интерфейса заказа печатных плат, мы кратко (очень кратко) взглянем и на него. Для сравнения. Но сначала посмотрим нашу плату глазами KiCad

Наша печатная плата

Ссылку на статью со схемой силового модуля электронной нагрузки я уже давал в начале статьи. Давайте посмотрим, как выглядит печатная плата для этого модуля в редакторе печатных плат KiCad версии 7.0.10

Эта плата была разработана для самостоятельного изготовления и ручной пайки, но позже заказывалась и на JLCPCB, причем никаких проблем с ней обнаружено не было. Нужно отметить, что для платы установлена точка начала координат - верхний левый угол платы. Там же находится и начало координат для размещения компонентов и сверления.

В трехмерном виде плата выглядит так

Вот это и будет нашей точкой отсчета. Для платы сформированы gerber файлы со слоями F.Cu, B.Cu, F.Mask, B.Mask, F.Silkscreen, B.Silkscreen. Edge.Cuts. Так же сформированы файлы сверловки NPTH.drl и PTH.drl. Давайте загрузим эти файлы в KiCad Gerber Viewer. Выглядеть наш набор файлов будет примерно так

Такой нашу плату и должен увидеть производитель. Ну а что получится, мы сейчас и посмотрим.

Вид в интерфейсе заказа печатной платы

Что бы увидеть, чем инструменты проверки DFM NextPCB отличаются от типичного интерфейса заказа печатных плат и оценить целесообразность, и удобство, их использования, давайте начнем с самого простого, чем чаще всего и пользуется обычный заказчик, тем более, любитель. Но раз уж я упоминал, что плата заказывалась (без ошибок) на JLCPCB, давайте сначала посмотрим, как этот производитель ее увидел. Загрузим наши файлы (в виде ZIP архива) в интерфейсе заказа плат JLCPCB

Хорошо видно, что проблем не обнаружено (хотя потом производитель выполнит дополнительную проверку), внешний вид верный, размеры определены верно. Так что с платой действительно все в порядке. Теперь загрузим те же самые файлы на странице Get Online PCB Quote NextPCB. Но нас ждет немного неожиданный результат

На мгновение появляются изображения двух сторон нашей платы, на которых видно, что производитель все увидел верно, но затем эти изображения исчезают и вместо них появляется уведомление с просьбой проверить автоматически полученные из gerber файлов параметры платы. При этом все определилось верно, ошибок нет, можно просто выбрать количество плат и заказ будет сформирован. Что бы было более наглядно, я даже записал небольшое видео

При этом чуть ниже окна, в котором должно быть изображение печатной платы, есть ссылка на Online Gerber Viewer Pro. И это совершенно прозрачно намекает, что нам настоятельно рекомендуют воспользоваться одним из инструментов проверки NextPCB. Или мы можем просто разместить заказ, если успели разглядеть плату и уверены, что ошибок нет. Правда здесь появилась добавка Pro, но это именно тот же самый инструмент.

Мы можем просто кликнуть по этой ссылке, при этом мы увидим окно Online Gerber Viewer с уже загруженными нами файлами, или перейти на страницу HQDFM Free Online Gerber Viewer and DFM Analysis Tool через меню сайта и загрузить наш архив с файлами. Результат будет абсолютно идентичный. Вот так это выглядит в браузере

В середине экрана мы видим нашу плату, хоть она и выглядит не совсем так, как в KiCad. Слева расположилось окно выбора слоев, но часть слоев выключена. Поведение окна выбора слоев не совсем привычное. Мы можем только выключить слой или включить его, это делается одиночным кликом. Двойной клик выключает все слои и включает указанный. Давайте включим все слои нажав кнопку Open All над списком слоев. Теперь наша плата стала выглядеть почти похоже на KiCad Gerber Viewer

Но здесь не видны отверстия под выводы. Давайте это исправим, кликнем два раза, с небольшой паузой между кликами, что бы это не было воспринято как двойной клик, по слою Drl. Теперь стало совсем похоже на KiCad

Но действительно ли производитель не обнаружил никаких ошибок? К сожалению, обнаружил. Справа от окна с изображением платы располагается окно с различной информацией, включая обнаруженные ошибки. Вот она, найденная ошибка

Помечена восклицательный знаком в красном кружке и выделена красной рамкой, Board Edge Clearance. То есть, медь (полигон, дорожка, контактная площадка) располагается слишком близко к краю платы. Увы, никаких дополнительных подсказок нет и найти проблемное место возможности нет. Но если навести мышку на восклицательный знак, то появится маленькое окно с подсказкой - скачайте файл отчета о проверке DFM. Над окном с информацией есть кнопка Download Report, нажав на нее мы скачаем файл с названием report.pdf (название не изменяется). Открыв его мы наконец увидим не только информацию о нашей плате, но и ее изображение

То самое, которое появлялось на короткое время в интерфейсе заказа плат. Видно, что плата выглядит верно, но производитель нашел 1 ошибку (Risk Item) и 3 места, которые могут вызвать проблемы, но которые не являются ошибками (Warn Item). Уже стало интереснее. Давайте посмотрим, что за ошибка, для этого пролистаем файл далее. И мы увидим в таблице вот такую интересную информацию (привожу небольшой фрагмент)

Давайте возьмем строку с проверкой Board Edge Clearance, ведь именно такая ошибка была обнаружена. Мы видим, что вызвали проблемы целых 19 элементов. И это, как минимум, странно. Ведь ошибка всего одна, правда есть еще 3 предупреждения. Еще интереснее, что всего в этой таблице 5 строк с ошибками, а не 4. Но давайте все таки найдем ошибку, которую обнаружил NextPCB Online Gerber Viewer, пролистаем файл отчета дальше. И увидим искомое

Последний столбец совершенно однозначно указывает, что это ошибка (риск). Третий столбец (8, 15, 20) содержит перечень нарушенных правил, что нам никак не помогает, так как найти эти правила (причем пронумерованные) не удалось. Есть и столбец с объяснением, почему это считается ошибкой и как ее можно исправить. Есть и координаты проблемного места (79.96,0.00), но мы не можем их использовать, так как NextPCB Online Gerber Viewer не показывает координаты курсора.

Но самое интересное не это, здесь указано, что таких проблемных мест 11, а не 19, как мы видели в предыдущей таблице. При этом координаты приведены лишь для одной точки, а не 11. Загадка… И непонятно, как искать остальные точки.

Но давайте вернемся к KiCad Gerber Viewer. Мы для платы задали начало координат в левом верхнем углу. Логично предположить, что и в таблице в файле отчета координаты отсчитываются от этой точки. Выберем достаточно мелкую сетку, например, 0.1 мм и поищем точку с координатами (79.96,0.00), благо здесь координаты курсора отображаются. В данном случае все довольно просто, это правый верхний угол платы, но в общем случае положение проблемной точки будет не столь очевидным. Но в этой точке нет меди, в чем же засада? Неужели gerber файлы были сформированы неверно?

Нет, все сформировано верно, это наша ошибка. Вот где она спряталась

Я обвел причину ошибки красной рамкой. При формировании gerber файлов было включено черчение слоя Edge.Cuts на всех слоях. Я использовал старые gerber файлы, которые были сформированы еще для самостоятельно изготовления платы, там края платы были выделены как медная полоска. Вот эта полоска и воспринималась NextPCB как ошибка. Давайте исправим ошибку и проверим еще раз

Ура, ошибка исчезла! Теперь верно определилось и расстояние от меди до края платы, равное 0.3 мм. Но давайте проверим файл отчета, все ли там хорошо?

Да, ошибки больше нет. Но вот предупреждения остались. Причем и 3 проблемных места с Board Edge Clearance есть, только теперь в виде предупреждений. Но координаты опять только для одной точки указаны

Предупреждения можно игнорировать, но давайте попробуем разобраться. В описании проблемы и способа ее устранения указано, что рекомендуется увеличить зазор между медью и краем платы до 0.4 мм. У нас же всего 0.3, что задано через правила проектирования Kicad. И DRC эту проблему не обнаруживал, что совершенно естественно. На самом деле, 0.4 мм явно следуют из технологических возможностей NextPCB (PCB Capabilities). Я ведь предупреждал, что нам они сегодня еще понадобится. Это описано в двух пунктах:

  • V-CUT residue thickness. Это ширина частичного прорезания по границам печатной платы, которая может быть от 0.25 мм до 0.4 мм.

  • Trace to V-cut line. Расстояние от дорожки до линии реза, которое должно быть не менее 0.4 мм.

Но координаты проблемной точки выглядят странно, откуда взялся минус? В KiCad Gerber Viewer все координаты для нашей платы положительные. Причина довольно проста, направления координатных осей в KiCad и у NextPCB не совсем совпадают. Ось X в обоих случаях направлена слева направо, а вот ось Y в KiCad направлена сверху вниз, а у NextPCB снизу вверх, как в декартовой системе координат в школе. Поэтому и знаки координаты Y разные.

Теперь в KiCad Gerver Viewer легко найти проблемную точку, но думаю вы уже догадались, что это полигон (Gnd) на слое B.Cu. Если мы увеличим зазор между медью и краем платы в правилах проектирования KiCad до 0.4 мм и перезальем полигоны, то предупреждение исчезнет. Во всяком случае, это предупреждение.

Следующее предупреждение рассмотрим очень кратко. Оно касается крепежных отверстий, где расстояние от края отверстия до того же самого полигона оказалось равно 0.25 мм

Просто окружности в KiCad аппроксимируются отрезками прямых, поэтому и расстояние оказалось всего 0.25 мм (что при DRC не обнаружилось). Правила проектирования здесь уже не помогут, придется использовать использовать зоны запрета расположения меди/дорожек (keepout).

Разбор оставшихся двух строк с результатом Fail (Open/Shorts (IPC) и Fiducials) давайте пока отложим. Во первых, по ним нет никакой дополнительной информации, даже координат. Во вторых, статья и так уже получилась слишком большой. Поэтому с ними будем разбираться (возможно) уже в программе, которая более функциональна, хоть и тоже не без минусов.

На сегодня точно достаточно! Рассматривать программу NextPCB DFM Analysis Tool, которая более интересна и функциональна, мы будем в следующей статье.

Заключение

Нам удалось, пусть и не без труда, обнаружить и исправить ошибку и проблемные места. Причем самостоятельно, без переписки с производителем. Правда пришлось использовать не только NextPCB Online Gerber Viewer, но и KiCad Gerber Viewer.

Поэтому можно признать, что предлагаемый NextPCB инструмент Online Gerber Viewer полезный, но довольно неудобный. Он позволяет не только посмотреть, как печатная плата выглядит с точки зрения производителя, но может помочь с поиском ошибок. Гораздо удобнее было бы, если бы проблемные места как то отмечались прямо в окне просмотра печатной платы. Пусть даже подробное пояснение и будет в файле отчета. Да и сам файл отчета не только содержит противоречивую информацию, но и полезная информация далеко не полная. Координаты проблемных точек, как минимум.

Исправят ли эти недочеты и ошибки? Время покажет. Отсутствие русского языка я не считаю проблемой, но знаю, что для многих это проблема. Вот чего действительно не хватает, так это списка правил, на которые ссылаются в отчете, и руководства пользователя. Профессионал, безусловно, разберется, но будет пользоваться скорее программой, а не онлайн инструментом. А вот для новичка или любителя это запросто может стать непреодолимой преградой.

Online Gerber Viewer полезный, но очень противоречивый и неудобный. При этом нас буквально подталкивают к его использованию, если мы заказываем изготовление печатных плат у NextPCB. Но все таки пользоваться им не обязательно. Впрочем, за себя каждый решает сам. Я лишь показал, что это такое. А программа... Это уже в следующей статье.


Вы можете обсудить данную статью или задать вопросы автору на форуме