Altium Designer 19 — советы и фишки, упрощающие проектирование

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

Статья разбита по отдельным советам\фишкам, начинается с верхушки (проект и схемотехника) и далее переходит по следующим ступеням (печатная плата, сборка плат) сквозного проектирования.

B81-0

Начнём с самого простого и не всегда популярного почему-то (видел, что далеко не все этим пользуются или даже не знают об этих инструментах):

Глобальное обновление количества листов схемы и их нумерация

Инструмент Number Schematic Sheets… находится в меню Tools->Annotation:

B81-1

Выглядит он следующим образом:

B81-2

Как можно видеть, в открытом проекте 4 листа схемы и общее количество листов (колонка SheetTotal) = 3, а также номера конкретных листов (колонка SheetNumber) не соответствуют фактическому количеству\позиции листа. Для автоматического назначения обоих параметров внизу нажимаем две кнопки (Auto Sheet Number и Update Sheet Count):

B81-3

После чего можно видеть вносимые изменения (помечены синими треугольниками на изменённых ячейках таблицы). Также можно вручную подкорректировать и внести изменения на листы путём нажатия кнопки ОК.

Результат:

B81-4

Быстрое обновление или замена компонентов в схеме

Следующий инструмент удобен для быстрого и глобального обновления\замены компонентов простых типов, к примеру, используемые вами конденсаторы заимели статус NRND (Not Reccomend to New Designs), вы нашли замену, а свежий проект у вас на 5-10 листов схемы, а этих конденсаторов там сотни. Что делать? Да всё просто, используем инструмент Update From Libraries… (предварительно занеся новый тип конденсаторов в библиотеку компонентов, конечно же) из меню Tools:

B81-5

Открывается следующее окно:

B81-6

Здесь можно выбрать листы проекта, типы компонентов, которые будем обновлять или заменять. Далее происходит проверка наличия выбранных компонентов в библиотеке, и если их нет, будет отображен статус Not Found. На скриншоте ниже я уже выбрал новые конденсаторы взамен старых (кроме последнего, выделенного):

B81-7

На примере последнего замена делается легко — просто выделяем строку с нужным компонентов (или группой, Ctrl+ и Shift+ здесь работают) и нажимаем ПКМ, выбираем Choose Component… :

B81-8

Далее вручную или поиском по Part Number находим нужную замену:

B81-9

Теперь слева можно отметить только те компоненты, которые мы хотим обновить\заменить, а справа, сняв галочку Full Replace, можно также выбрать, обновлять ли графическое представление, параметры и\или модели. Более того, выделив компоненты и нажав кнопку внизу Parametrs Changes… :

B81-10

Можно увидеть в открывшемся окне все параметры компонентов (по колонкам) с отметками, какие будут изменены (синий треугольник), какие удалены (красный минус), а какие добавлены (зелёный плюс):

B81-11

Также можно отменить изменения, выделяем нужные ячейки (у меня, к примеру, на схеме вручную для некоторых компонентов был добавлен параметр ClassName со значением DirectConnect) и нажимаем ПКМ, выбираем пункт Reject:

B81-12

Теперь эти параметры не будут удаляться:

B81-13

После чего можно успешно обновить компоненты на схеме кнопкой Finish из главного окна инструмента Update From Libraries. Результат обновления будет выведен в отдельном окне:

B81-14

Глобальные параметры проекта и их использование

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

Находятся они в опциях проекта:

B81-15

Вкладка Parametrs:

B81-16

Здесь можно объявить идентификационный номер проекта, его имя, идентификационный номер платы и ревизию проекта. К примеру, объявлен параметр PCB_ID — идентификационный номер платы. И его можно использовать для автоматической подстановки в качестве сокращённого номера печатной платы на верхнем и нижнем слоях таким способом (свойства обычного текста на любом слое):

B81-20

Выглядит на плате это так (текст на верхнем слое меди):

B81-19

Тут кстати видна одна небольшая фишка культуры разработки печатной платы — дата проектирования. Состоит она из последних 2 цифр года и номер недели на момент завершения проектирования и разводки печатной платы (на скриншоте выше: 1911).

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

B81-18

Примечание: В плате параметры указываются через . (точку), а в Draftsman они вставляются через = (равно).

И теперь, накидав простой сборочный чертёж для пайки прототипа, вставить текст с номерами проекта и платы:

B81-17

Ещё одно место, где удобно использовать глобальные параметры проекта — это файлы OutJob. Смотрите, делаем задачи по генерации документации:

B81-21

А в настройках задачи можно подставлять параметры проекта:

B81-22

Таким образом, файл сразу генерируется с именем, соответствующим текущему идентификационному номеру проекта, содержанию файла и ревизии.

Классы цепей (Net Class и Diff. Pair Net Class) и правила для них

Инструмент Parametr Set используется обычно для установки правил на группу или одиночную цепь:

B81-23

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

B81-25

А также в свойствах этого инструмента содержится и колонка с именем класса, к которому будет относится цепь или группа цепей:

B81-24

Более того, в инструменте определения дифференциальной пары — Differential Pair:

B81-26

Также есть колонка с именем класса, к которому будет относиться эта дифференциальная пара:

B81-27

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

Вот можно видеть правило, созданное инструментом Parametr Set из схемы (с припиской Schematic * в имени правила):

B81-28

А вот правила, созданные вручную для конкретного класса:

B81-29

Более того, во втором правиле толщины и зазоры дифференциальной пары берутся из профиля импеданса D100 (про который будет рассказано далее):

B81-30

Основное отличие же — это создание правил для платы двумя основными путями:

  1. На схеме, в свойствах инструментов Parametr Set или Differential Pair. В этом случае всё, вроде бы, удобно (задаём всё на схеме и далее уже не паримся) и по канону САПР — полностью сквозное проектирование, но если у вас куча однотипных цепей и для каждой стоит Parametr Set, то будет создано столько же и правил, несмотря на то, что они могут быть полностью идентичны (ещё бывает баг, что при импорте изменений из схемы в плату все правила, созданные таким путём, Альтиум как бы пересоздаёт, удаляя все текущие и добавляя их заново).
  2. В параметрах платы создаём правила для различных типов классов и соответствующих имён, а в схеме цепи присваиваем конкретным классам и не более. В этом случае для всех однотипных цепей будет только одно правило (по имени класса), не будет дубликатов правил (как и возможного бага с постоянным перезаписыванием правил).

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

Инструмент Smart Paste

Этот инструмент следует использовать, если у вас много однотипных объектов. Находится он здесь:

B81-93

И наглядно увидеть, что с его помощью можно сделать, можно на гифке ниже:

B81-94

Здесь я взял группу Net Labels, относящихся к I2S, и с помощью Smart Paste я могу их вставить как такую же группу, но другого типа объектов (порты, шина Harness, просто текст и т. д.), что может значительно ускорить проектирование схемы.

Правила технологических возможностей производства

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

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

  • Металлизированное отверстие = 0,2 мм
  • Поясок площадки переходного отверстия = 0,1 мм

Эти два пункта взаимосвязаны и необходимо задать минимально-возможные значения для переходного отверстия (отверстие собственно = 0,2 мм, а внешний диаметр = 0,2 + 2 * 0,1 = 0,4 мм):

B81-31

  • Поясок монтажной контактной площадки = 0,15 мм

Аналогично необходимо сделать и для контактных площадок.

  • Проводник на внешних слоях = 0,1 мм

Здесь всё просто, это минимально возможная толщина дорожки (максимальную стоит задавать в разумных пределах, исходя из величин токов на вашей плате):

B81-92

  • Зазор между проводниками на внешних слоях = 0,1 мм

Здесь также всё просто — это минимальный зазор между любыми токопроводящими дорожками\полигонами\заливками:

B81-32

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

  • Масочный мостик между контактными площадками = 0,1 мм

Тоже ничего сложного, просто минимальное расстояние между двумя масками (к примеру, на падах QFN корпуса):

B81-33

  • Припуск паяльной маски = 0,025 мм

Насколько пад дополнительно открыт от маски относительно базового пада:

B81-34

  • Отступ элементов топологии от края печатной платы = 0,4 мм

Минимальное расстояние от каких-либо элементов до края платы:

B81-35

Если это не соблюсти, то возможна ситуация, когда при фрезеровке края платы будут оторваны дорожки или повреждены внутренние слои.

Примечание: Для удобства эти правила можно сохранить в файл с названием производителя и стека, чтобы в дальнейшем легко экспортировать правила в новые платы (ПКМ на Design Rules, и там есть соответствующие пункты меню).

Стек печатной платы и профили импеданса

Возьмем для примера стандартный стек для 8 слоёв, 18 мкм от Резонита. Выглядит он следующим образом:

B81-36

Инструмент Layer Stack Manager для редактирования стека печатной платы находится здесь:

B81-37

Выглядит определение стека следующим образом:

B81-38

Добавляются\удаляются слои через ПКМ. Также можно видеть, что ядро и препреги не из стандартной библиотеки материала Альтиума. Добавление корректных типов материалов, которые использует завод-изготовитель печатных плат, даёт более точные расчеты импедансов и симуляцию. Инструмент Material Library находится здесь:

B81-39

Выглядит он следующим образом:

B81-40

Примечание: Для удобства эти материалы можно сохранить в файл с названием производителя, чтобы в дальнейшем легко экспортировать материалы на новом рабочем месте (кнопки Load \ Save слева внизу).

Рядом c Material Library также есть инструмент Layer Stack Visualizer, который позволяет наглядно оценить порядок слоёв, габариты стека в 2D\3D видах:

B81-41

Также в Layer Stack Manager следующая вкладка — это Impedance:

B81-42

Здесь справа можно видеть все профили импедансов и послойно видеть параметры и экранирующие слои, на основе которых и идёт расчёт импедансов на целевом медном слое. Выбрав интересующий профиль, в его свойствах можно посмотреть более подробные параметры:

B81-43

Выбрать его тип (одиночная цепь или дифференциальная пара), задать допуск импеданса, а также сделать выбор, каким образом производить расчёт:

  1. Указать конкретную толщину дорожки и\или зазор между между дорожками и оценить получившееся значение импеданса.
  2. Указать целевой импеданс, тогда значения толщины\зазора дорожек могут быть рассчитаны автоматически.

В обоих вариантах толщина дорожки во время разводки может варьироваться: минимальная — номинальная (заданной) — максимальная в пределах заданного допуска импеданса.

Для чего нужны эти профили?

Да всё просто, их теперь можно использовать в правилах:

B81-44

Выше — правило для LVDS, задающее толщины дорожек и зазор между ними на основании профиля D100. Таким же образом можно задавать толщину дорожки и для одиночной цепи:

B81-45

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

Менеджер сеток привязки

Просмотр и редактирование всех сеток привязки для печатной платы находится в свойствах платы отдельным блоком — Grid Manager:

B81-46

По умолчанию там одна глобальная сетка привязки (и она же переключается по клавише G), в которой обычно и работает инженер. Для примера вот так выглядит BGA корпус с сеткой 0,25 мм (её, правда, почти не видно, т. к. стоит точечный вид):

B81-47

Нажмём Add и добавим новую сетку, укажем центр в центре BGA корпуса и сделаем шаг 0,1 мм:

B81-48

Как можно видеть, сетка появилась:

B81-49

Таким же образом можно добавлять и полярные сетки:

B81-50

Выглядит это так:

B81-51

А для чего это нужно то?

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

Привязка дорожки с переходом от картезианской сетки к полярной:

B81-52

Номера внутренних слоёв в специальном окне

Опять немного культуры проектирования. Это больше делают для панелей плат, но при наличии места на самой печатной плате окошки с номерами медных слоёв не помешают. Выглядит это так:

B81-52

В 3D рендере:

B81-53

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

Тип подключения компонента к полигону

Делаем DC-DC, к примеру, вот такая схема:

B81-54

И тут есть необходимость подключения DA2, L3, C36 и других компонентов без термобарьеров к полигонам. Как это сделать?

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

B81-55

Все смежные по имени параметры здесь будут видны, но при различии их значения в качестве значения будет «*«, а в совпадающих по значению параметрах будет отображено их значение. Так вот, нажимаем кнопку Add внизу и добавляем параметр ClassName со значением DirectConnect (значение может быть и любое другое, главное, что бы оно легко запоминалось и четко идентифицировалось с предназначением). Теперь все эти компоненты находятся в классе компонентов DirectConnect.

Далее, заходим в правила печатной платы и создаём привило подключения полигона для указанного класса компонентов:

B81-56

Всё. Результат:

B81-57

DA2, L3, C36 и другие занесённые в этот класс компоненты будут теперь всегда подключаться без термобарьеров к любым полигонам.

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

Тип подключения отдельного пина компонента к полигону

Бывает такое, что нет необходимости подключения целого компонента к полигону без термобарьера, а надо подключить только 1-2 пина. Сделать это быстрее, чем через схему, можно с помощью классов контактных площадок (Pad Class). Заходим в обозреватель всех классов печатной платы:

B81-58

Добавляем новый класс в Pad Classes с именем PadDirectConnect (имя может быть и любое другое, главное, чтобы оно легко запоминалось и четко идентифицировалось с предназначением) и добавляем в него необходимые пины компонентов (удобно пользоваться фильтром вверху для более быстрого поиска):

B81-59

Далее заходим в правила печатной платы и создаём привило подключения полигона для указанного класса контактных площадок:

B81-60

Результат:

B81-61

C29, C30 были добавлены в PadDirectConnect класс и на них теперь действует правило прямого подключения полигона.

Тип подключения переходного отверстия к полигону

Ранее для этого необходимо было создавать отдельное правило с проверкой на IsVia и указанием подключения к полигону, в последних версиях Альтиума же просто заходим в базовое правило PolygonConnect, тут можно в Advanced режиме настроить подключение как переходных отверстий, так и отдельно выводных и планарных контактных площадок:

B81-62

Настройка вида заливок и полигонов

Мелочь, но ощутимо влияет на наглядность разводки и нахождение ошибок и недоработок. Открываем View Configuration через Panels:

B81-63

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

B81-64

Переходим во View Options и настраиваем параметр прозрачности (Transparency) для полигонов и регионов:

B81-65

Результат:

B81-66

Примечание: Зайдите во View Options в 3D-режиме отображения печатной платы, опции отображения поменяются и можно настроить вид 3D более удобно для вас.

Фильтр объектов для выделения

Фильтр объектов для выделения находится здесь:

B81-95

Если он активен, то появляется зелёный кружок на значке фильтра:

B81-96

И наглядное отображение, как он работает:

B81-97

Слева направо выделялись все объекты, что попадали в прямоугольник выделения, справа налево выделялись вообще все объекты, касающиеся прямоугольника выделения, а при активации фильтра  выделялись только дорожки в обоих случаях.

Да, к слову, если необходимо выделить контактные площадки компонента, которые не выделяются отдельно, то их необходимо выделять с Shift-ом:

B81-98

Инструмент Paste Special

Инструмент Paste Special находится здесь:

B81-99

Наглядно для чего его можно использовать:

B81-100

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

Маркер одной стороны печатной платы

Элемент культуры проектирования. Снова. Вот этот вырез справа, сверху:

B81-67

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

B81-68

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

Создание xSignals правил

Удобный инструмент для согласования по длине для DDR3, DDR4, USB 3.0 или группы специальных сигналов с наличием последовательных терминирующих резисторов (типа HyperBus). Классы xSignals можно глянуть в панели PCB:

B81-69

Для создания новых классов и правил разводки стоит воспользоваться xSignal Wizard, который находится здесь:

B81-70

На старте требуется выбрать тип сигналов, для примера выбираем Custom:

B81-71

Далее поиском по компонентам выбираем источник сигналов (Source Component):

B81-72

Какие сигналы требуется анализировать (Source Nets):

B81-73

И указываем приёмник сигналов (Destination Component):

B81-74

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

B81-75

Да, при выборе какого-либо пути на плате можно в этот момент посмотреть, как он пролегает (также и альтернативные пути с ремапом):

B81-76

После выбора путей для всех сигналов создаётся класс для них и правило разводки (для HyperBUS здесь максимальная разница в длине указывается = 0,6  мм):

B81-77

Также отдельно можно сделать правила для выравнивания не только общей длины проводников, но их же по отдельности как до, так и после последовательных терминирующих резисторов:

B81-78

Автоматически созданное правило для класса xSignals:

B81-79

Примечание: При каких-либо изменениях (замена компонента или переброс интерфейса на другие пины), затрагивающих компоненты, участвующие в xSignals классе, к сожалению, его придётся создавать заново. По крайне мере, в 19.0.13 класс и его проверки ломались… 

Мультибоард проект

И последнее. Мультибоард проект — сборка плат в одном проекте:

B81-80

После создания мультибоард проекта и добавления в него документа структурной схемы, следующий шаг — добавление модулей (проектов плат), этот инструмент находится здесь:

B81-81

Рисуем 2 прямоугольника или квадрата — это будет структурное отображение 2-х проектов, входящих в сборку. Заходим в параметры каждого и указываем проект-источник и плату в нём:

B81-82

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

Да, нюанс, если вы хотите показать разъёмы, которыми сочленяются эти два проекта, то необходимо у каждого из разъёмов добавить параметр System со значением Connector :

B81-83

После чего при выполнении импорта с проектов сборки с помощью ПКМ на любом модуле и выборе пункта Import From Child Projects:

B81-84

Будет предложено добавить соответствующие разъёмы (у которых в схеме был добавлен параметр System со значением Connector) в составы моделей:

B81-85

Теперь они выглядят так:

B81-86

Только вот у XS1 вид не розетки, а вилки — надо исправить! Выделяем его и в параметрах указываем тип Female:

B81-87

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

Далее можно провести соединение:

B81-88

Это крайне простой пример, без ответвлений и массы различных соединителей, модулей.

Далее в созданном файле сборки импортируем изменения со структурной схемы:

B81-89

Появятся 2 платы:

B81-90

Их можно сочленить по межплатному разъёму и наглядно увидеть проблемы или отсутствие оных по габаритам и размещению компонентов на платах в сборе:

B81-91

Примечание: Более подробно не могу показать платы и работу с ними по некоторым причинам, думаю, главное показать в целом, а если кого заинтересовало, предлагаю изучить самостоятельно, и в качестве старта посмотреть работу с мультибоард-проектом в видео тут.

На этом всё, если есть замечания или знаете как сделать лучше — пишите комментарии, буду рад! Спасибо, что прочитали. ;)

Реклама

Добавить комментарий

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s