DFM, DFMA, DFA. Часть 2. Приложение от NextPCB для ПК

14.02.2024

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

В предыдущей статье мы познакомились, пусть и очень кратко, с тем, что такое DFM. И посмотрели, как работает и что может предлагаемый NextPCB Online Gerber Viewer. Сегодня мы познакомимся с более функциональным приложением DFM Analysis Tool, которое устанавливается на ПК. Посмотрим, чем оно отличается от NextPCB Online Gerber Viewer. Для этого будем использовать те же самые наборы gerber файлов, что и в предыдущей статье DFM, DFMA, DFA. Часть 1. На примере инструментов NextPCB

Установка и первый запуск

Скачать программу установки можно с сайта NextPCB:

Причем сразу видно, что программа предназначена только для Windows. Для большинства читателей это не будет являться проблемой, но для тех, кто использует Linux, это не самая радостная новость. Но не будем забегать вперед. Никаких других системных и аппаратных требований не указано. Программа установки скачивается в виде архива HQDFM_en.zip, что позволяет предположить, что это версия на английском языке. Но, как будет видно немного позже, это не совсем так. Внутри лежит единственный exe-файл, собственно установщик. Установка проста и стандартна, так что не имеет смысла рассматривать ее подробнее. Причем установка проходит без ошибок и в Windows на реальном ПК, и в Linux под wine, и в Windows запущенной на виртуальной машине VirtualBox под Linux.

А вот дальше все не так легко и просто... Для пользователей Linux у меня плохие новости. Под wine программа сразу после запуска вылетает с ошибкой. Причем это не зависит от разрядности (32 или 64) и версии wine. Но под wine работают не все Windows программы, так что результат нельзя назвать совсем неожиданным. Под VirtualBox, если поддержка 3D отключена, программа при запуске сообщает о проблеме с OpenGL, но сообщение об ошибке можно закрыть. HQDFM даже пытается работать, но после любого действия область с изображением печатной платы замирает на пару минут. Если включить поддержку 3D, то программа запускается без ошибок, но вот область с изображением печатной платы всегда остается пустой.

Программа HQDFM не может работать под Linuх. Ни под wine, ни под VirtualBox, ни под QEMU/KVM. Возможно я проявил недостаточную настойчивость, но приходится констатировать, что для запуска программы нужен реальный ПК с Windows.

Впрочем, и на реальном ПК все может оказаться не таким простым. Я нашел два полноценных ПК. Один уже довольно старый, без отдельной видеокарты, с 64-битной Windows 7. Второй относительно новый, с видеокартой NVIDIA, с Windows 10. Под Windows 7 программа работать отказалась, выдавая сообщение об ошибке как и под wine. А вот под Windows 10 все работало, как и положено.

Для работы с программой HQDFM нужен полноценный ПК или ноутбук, причем относительно новый, желательно с экраном FullHD или лучше, работающий под Windows 10. Работа под Windows 8 не проверялась, просто не нашлось ПК с этой версией. Поэтому все примеры в сегодняшней статье подготовлены с использованием Windows 10. Уверен, что для многих (большинства) это не будет являться проблемой.

После первого запуска HQDFM мы увидим окно с предложением войти или зарегистрироваться

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

Окно программы состоит из трех основных частей. В центре расположилась самая большая область. Здесь будет отображаться наша печатная плата. Слева будет отображаться список слоев и компонентов (если мы загрузим BOM файл). Справа расположился список выполняемых проверок и результатов проверки. Мы уже видим отличие от NextPCB Online Gerber Viewer - здесь список проверок выглядит куда более информативным. А как мы скоро увидим, он и более функциональный.

Давайте загрузим gerber файлы нашей платы силового модуля электронной нагрузки, тот набор с ошибками, с которого начинали в предыдущей статье. Только теперь нужно загружать именно отдельные файлы, а не архив. Загрузка проходит очень быстро, что неудивительно, и мы увидим нашу плату

Кроме платы мы теперь видим и заполненный список слоев, каждый слой соответствует своему файлу. В правой части экрана видно количество медных слоев и размеры платы. А внизу справа даже есть стоимость заказа 5 плат, но нас сегодня это не интересует. Зато в левом верхнем углу платы видно заданную нами в KiCad точку начала координат, чего не было в NextPCB Online Gerber Viewer.

Работа со слоями

Работа со слоями нестандартная, поэтому рассмотрим это подробнее. Одиночный клик по названию слоя в списке переключает его видимость в области отображения печатной платы (включает/выключает слой). Давайте отключим видимость слоя B.Cu, который в HQDFM называется Bot Layer, щелкнув по нему один раз. Эффект будет таким

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

Мы можем рассмотреть плату достаточно подробно, выбирая нужные нам слои. Но внимательные читатели скорее всего уже заметили, что здесь нет возможности включить/выключить все слои. И они ошиблись! Здесь гораздо больше возможностей, просто для этого нужен клик правой кнопкой мыши

Теперь мы можем не только включить/выключить слой, но и сменить его цвет. И можем посмотреть, как именно формируются элементы нашей печатной платы. Например, дорожки и контактные площадки кажутся единым целым, но если мы выберем в меню слоя (клик правой кнопкой мыши) пункт Dcodes, например, для верхнего слоя меди, то сможем увидеть, что это не так

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

Если мы забыли добавить какой то gerber файл (слой) мы можем легко добавить его в любой момент. Но более интересна возможность настройки слоев

Здесь нет возможности сменить цвет слоя, мы уже видели, где это делается. Но тут можно сменить имя слоя и его тип. Я выбрал слой Top Silk, который программа определила как слой шелкографии, в полном соответствии с gerber файлом. Мы можем сменить тип слоя, например, на Signal, что соответствует слою меди, или на Solder Mask, что соответствует слою маски. Attribute позволяет указазать, размещается ли слой на плате физически (board) или является вспомогательным/служебным (misc). Все это касается только просмотра печатной платы и ее анализа, сами gerber файлы не изменяются.

Работа с изображением печатной платы

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

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

Левая кнопка мыши используется для выделения различных элементов активного слоя платы. Активный слой помечается в списке слоев галочкой на цветном кружке перед его именем. Вы можете увидеть эту галочку на иллюстрациях выше. Сделать слой активным можно кликом на этом цветном кружочке. Видимость слоя при этом не переключается

Различие между способами выделения не совсем очевидно, поэтому давайте посмотрим внимательнее

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

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

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

Если же хочется посмотреть более реалистичный вид платы, то можно нажать кнопку Real View

Итак, мы можем действительно подробно рассмотреть нашу печатную плату, причем именно с помощью инструментов производителя и так, как ее видит производитель. Да, в KiCad мы тоже можем все рассмотреть в деталях. Но ведь уже приводил пример, когда в KiCad все отображалось корректно, а вот производитель интерпретировал gerber файлы совсем иначе Вниманию пользователей KiCad и JLCPCB! И не только!. Кроме того, если плату разрабатывали не мы, то у нас будут только gerber файлы, а не полный проект, например, KiCad. Поэтому повторюсь, возможность взглянуть на плату глазами производителя полезна.

Анализ печатной платы

Но просто посмотреть, как выглядит плата глазами производителя, недостаточно. Гораздо важнее найти возможные ошибки. Напомню, мы пока используем набор gerber файлов с ошибками. Давайте вернемся в режим CAM View и нажмем большую зеленую кнопку DFM Analysis (она находится над списком слоев). Через короткое время нас уведомят, что анализ успешно завершен

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

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

Мы видим, что у нас есть и ошибки, которые показаны красным цветом, и предупреждения, показанные оранжевым. Но теперь, в отличии от NextPCB Online Gerber Viewer, мы можем увидеть и места с ошибками. Давайте кликнем по красному прямоугольнику с надписью Check в строке Copper-to-Board Edge. Мы увидим окно со списком проблемных мест, связанных с данной проверкой

Причем здесь не только перечислены проблемные места, но и есть описание с иллюстрацией. Поэтому можно не заглядывать на страницу PCB Capabilities. При клике по любой строке в столбце Occurence (Click to View) точка ошибки отображается в середине области просмотра платы. Что бы при этом масштаб отображения платы не менялся (иначе масштаб становится чрезмерно крупным), я выбрал режим Pan only. Само окно со списком проблемных точек можно перемещать мышкой за заголовок, что я и сделал. Это то, чего так не хватало в NextPCB Online Gerber Viewer.

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

Вот эта маленькая белая черточка от земляного полигона до правой границы и есть то самое проблемное место. Что это за ошибки мы уже достаточно подробно разбирали в предыдущей статье, поэтому сегодня повторяться не буду. Но согласитесь, что не выискивать точку по координатам в KiCad Gerber Viewer, а сразу, по клику мышкой, найти ее, гораздо легче и удобнее. Мы можем и легко найти места, которые вызвали предупреждения, а не ошибки. Давайте кликнем по по оранжевому прямоугольнику с надписью Check в строке Drill to Copper

К сожалению, и тут не обошлось без ложки дегтя. Давайте попробуем разобраться с предупреждениями Signal Integrity. Нам откроется список из 6 ошибок, но ни одно проблемное место выделено на изображении платы, по клику, не будет. Изображение платы будет перемещаться в окне, но проблемные точки выделяться не будут. Будут только выделяться границы платы. И описание с иллюстрацией не помогает, поскольку в центре области отображения нет острых углов. На самом деле, это предупреждение тоже возникает из-за вывода слоя Edge.Cuts на всех слоях. Только вот наглядно показать программе это не удалось.

Но давайте загрузим gerber файлы, в которых исправлена наша ошибка с выводом слоя Edge.Cuts. Так же, как мы делали в предыдущей статье. Как и в прошлый раз, ошибок не будет обнаружено, но предупреждения останутся

Пропало и предупреждение Signal Integrity, так как ошибка с Edge.Cuts исправлена. Остались предупреждения с расстоянием между медью и сверлением (крепежные отверстия), которое мы уже разбирали в прошлый раз, и расстоянием между земляным полигоном на нижнем слое меди и краем платы, что мы тоже уже разбирали.

Файл анализа DFM

При работе с программой файл отчета о проверке DFM не является таким уж необходимым, как при использовании NextPCB Online Gerber Viewer, но сформировать его можно через меню File -> Export Analyze Report. При этом он полностью идентичен тому, что мы уже видели в предыдущей статье. Он столь же противоречив и неудобен. А раз так, не стоит его еще раз рассматривать.

Документация и учебные материалы

Изучение возможностей программы было бы значительно проще при наличии документации. И здесь она есть, но скорее чисто номинально. Через меню Help -> Video Tutorial можно найти 13 учебных видеороликов, что хорошо. Но в этих роликах нет ни текстовых пояснений, ни голосовых (пусть и на английском языке). Есть только запись работы с программой. А это уже плохо. Но гораздо хуже другое, в меню есть пункт Tutorials -> Help Documentation, который открывает файл документации, только вот документация эта на китайском языке. При том, что путь к файлу содержит HQDFM_en, что подразумевает английский язык. Так что документация, а она неплохая, оказывается совершенно бесполезной!

Заключение

Программа HQDFM Analysis Tool для ПК действительно гораздо более функциональна, чем NextPCB Online Gerber Viewer. При том, что ее возможности мы рассмотрели далеко не полностью. Она позволяет не только рассмотреть плату в деталях, причем с точки зрения производителя, но и найти проблемные места, причем не прибегая к другим инструментам и без использования неудачного и противоречивого файла отчета. Естественно, для исправления проблем все равно придется возвращаться к KiCad (в нашем случае). Но пользоваться программой удобно.

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

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


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