- A_D Electronics
- development and research
- Altium Designer 19 — советы и фишки, упрощающие проектирование
- Глобальное обновление количества листов схемы и их нумерация
- Быстрое обновление или замена компонентов в схеме
- Глобальные параметры проекта и их использование
- Классы цепей (Net Class и Diff. Pair Net Class) и правила для них
- Инструмент Smart Paste
- Правила технологических возможностей производства
- Стек печатной платы и профили импеданса
- Менеджер сеток привязки
- Номера внутренних слоёв в специальном окне
- Тип подключения компонента к полигону
- Тип подключения отдельного пина компонента к полигону
- Тип подключения переходного отверстия к полигону
- Настройка вида заливок и полигонов
- Фильтр объектов для выделения
- Инструмент Paste Special
- Маркер одной стороны печатной платы
- Создание xSignals правил
- Мультибоард проект
A_D Electronics
development and research
Altium Designer 19 — советы и фишки, упрощающие проектирование
Наконец-то я собрался написать по Альтиуму что-то по объёму более, чем заметка со ссылкой на видосик. 🙂 Материал ниже — это сборник советов или просто фишек как нового 19-го Альтиума, так и прошлых версий. Думаю, это будет интересно как начинающему радиолюбителю, так и инженеру, уже давно работающему с Альтиумом.
Статья разбита по отдельным советам\фишкам, начинается с верхушки (проект и схемотехника) и далее переходит по следующим ступеням (печатная плата, сборка плат) сквозного проектирования.
Начнём с самого простого и не всегда популярного почему-то (видел, что далеко не все этим пользуются или даже не знают об этих инструментах):
Глобальное обновление количества листов схемы и их нумерация
Инструмент Number Schematic Sheets… находится в меню Tools->Annotation:
Выглядит он следующим образом:
Как можно видеть, в открытом проекте 4 листа схемы и общее количество листов (колонка SheetTotal) = 3, а также номера конкретных листов (колонка SheetNumber) не соответствуют фактическому количеству\позиции листа. Для автоматического назначения обоих параметров внизу нажимаем две кнопки (Auto Sheet Number и Update Sheet Count):
После чего можно видеть вносимые изменения (помечены синими треугольниками на изменённых ячейках таблицы). Также можно вручную подкорректировать и внести изменения на листы путём нажатия кнопки ОК.
Быстрое обновление или замена компонентов в схеме
Следующий инструмент удобен для быстрого и глобального обновления\замены компонентов простых типов, к примеру, используемые вами конденсаторы заимели статус NRND (Not Reccomend to New Designs), вы нашли замену, а свежий проект у вас на 5-10 листов схемы, а этих конденсаторов там сотни. Что делать? Да всё просто, используем инструмент Update From Libraries… (предварительно занеся новый тип конденсаторов в библиотеку компонентов, конечно же) из меню Tools:
Открывается следующее окно:
Здесь можно выбрать листы проекта, типы компонентов, которые будем обновлять или заменять. Далее происходит проверка наличия выбранных компонентов в библиотеке, и если их нет, будет отображен статус Not Found. На скриншоте ниже я уже выбрал новые конденсаторы взамен старых (кроме последнего, выделенного):
На примере последнего замена делается легко — просто выделяем строку с нужным компонентов (или группой, Ctrl+ и Shift+ здесь работают) и нажимаем ПКМ, выбираем Choose Component… :
Далее вручную или поиском по Part Number находим нужную замену:
Теперь слева можно отметить только те компоненты, которые мы хотим обновить\заменить, а справа, сняв галочку Full Replace, можно также выбрать, обновлять ли графическое представление, параметры и\или модели. Более того, выделив компоненты и нажав кнопку внизу Parametrs Changes… :
Можно увидеть в открывшемся окне все параметры компонентов (по колонкам) с отметками, какие будут изменены (синий треугольник), какие удалены (красный минус), а какие добавлены (зелёный плюс):
Также можно отменить изменения, выделяем нужные ячейки (у меня, к примеру, на схеме вручную для некоторых компонентов был добавлен параметр ClassName со значением DirectConnect) и нажимаем ПКМ, выбираем пункт Reject:
Теперь эти параметры не будут удаляться:
После чего можно успешно обновить компоненты на схеме кнопкой Finish из главного окна инструмента Update From Libraries. Результат обновления будет выведен в отдельном окне:
Глобальные параметры проекта и их использование
Далеко не все пользуются глобальными параметрами проекта, которые работают на весь проект и позволяют задавать номера, ID или имена для автоматической подстановки как на схеме, так и на плате, и даже при генерации документации.
Находятся они в опциях проекта:
Вкладка Parametrs:
Здесь можно объявить идентификационный номер проекта, его имя, идентификационный номер платы и ревизию проекта. К примеру, объявлен параметр PCB_ID — идентификационный номер платы. И его можно использовать для автоматической подстановки в качестве сокращённого номера печатной платы на верхнем и нижнем слоях таким способом (свойства обычного текста на любом слое):
Выглядит на плате это так (текст на верхнем слое меди):
Тут кстати видна одна небольшая фишка культуры разработки печатной платы — дата проектирования. Состоит она из последних 2 цифр года и номер недели на момент завершения проектирования и разводки печатной платы (на скриншоте выше: 1911).
Также глобальные параметры можно использовать, к примеру, в Draftsman. Опять же инструмент текст, а его значение составляем из двух параметров проекта:
И теперь, накидав простой сборочный чертёж для пайки прототипа, вставить текст с номерами проекта и платы:
Ещё одно место, где удобно использовать глобальные параметры проекта — это файлы OutJob. Смотрите, делаем задачи по генерации документации:
А в настройках задачи можно подставлять параметры проекта:
Таким образом, файл сразу генерируется с именем, соответствующим текущему идентификационному номеру проекта, содержанию файла и ревизии.
Классы цепей (Net Class и Diff. Pair Net Class) и правила для них
Инструмент Parametr Set используется обычно для установки правил на группу или одиночную цепь:
К примеру, можно задать для группы цепей правило на допустимую разницу величины всех длин цепей в пределах группы:
А также в свойствах этого инструмента содержится и колонка с именем класса, к которому будет относится цепь или группа цепей:
Более того, в инструменте определения дифференциальной пары — Differential Pair:
Также есть колонка с именем класса, к которому будет относиться эта дифференциальная пара:
Как можно заметить выше, классы для одиночных цепей и дифференциальных пар имеют различные типы, это удобно при создании правил.
Вот можно видеть правило, созданное инструментом Parametr Set из схемы (с припиской Schematic * в имени правила):
А вот правила, созданные вручную для конкретного класса:
Более того, во втором правиле толщины и зазоры дифференциальной пары берутся из профиля импеданса D100 (про который будет рассказано далее):
Основное отличие же — это создание правил для платы двумя основными путями:
Примечание: Нельзя однозначно сказать, что удобен всегда тот или иной путь, выбор, как создавать правила, необходимо делать в зависимости от задачи или ваших предпочтений. 🙂
Инструмент Smart Paste
Этот инструмент следует использовать, если у вас много однотипных объектов. Находится он здесь:
И наглядно увидеть, что с его помощью можно сделать, можно на гифке ниже:
Здесь я взял группу Net Labels, относящихся к I2S, и с помощью Smart Paste я могу их вставить как такую же группу, но другого типа объектов (порты, шина Harness, просто текст и т. д.), что может значительно ускорить проектирование схемы.
Правила технологических возможностей производства
Этот раздел с правилами, скорее, для совсем новичков, но решил, что стоит описать его для тех, кто первых раз будет проектировать свою печатную плату и делать потом заказ на производстве.
Итак, вначале нам надо определиться, где мы хотим изготавливать печатную плату, и посмотреть, что завод-изготовитель может сделать. Возьмем для примера технологические возможности от Резонита. Для печатной платы с 18 мкм толщиной фольги и коэффициентом стоимости 1.5 (более сложное изготовление в сравнении со стандартным) можно отметить следующие основные параметры:
Эти два пункта взаимосвязаны и необходимо задать минимально-возможные значения для переходного отверстия (отверстие собственно = 0,2 мм, а внешний диаметр = 0,2 + 2 * 0,1 = 0,4 мм):
Аналогично необходимо сделать и для контактных площадок.
Здесь всё просто, это минимально возможная толщина дорожки (максимальную стоит задавать в разумных пределах, исходя из величин токов на вашей плате):
Здесь также всё просто — это минимальный зазор между любыми токопроводящими дорожками\полигонами\заливками:
Примечание: Стоит учитывать, что когда вы делаете выравнивание длин «змейкой» или любым другим способом, то зазор в пределах одной цепи по отношению самой к себе стоит делать немного больше этого, иначе возможна ситуация, когда производство вытравит плату, тестером замыканий между различными цепями не будет, зато возможны замыкания как раз в пределах одной цепи на «змейке».
Тоже ничего сложного, просто минимальное расстояние между двумя масками (к примеру, на падах QFN корпуса):
Насколько пад дополнительно открыт от маски относительно базового пада:
Минимальное расстояние от каких-либо элементов до края платы:
Если это не соблюсти, то возможна ситуация, когда при фрезеровке края платы будут оторваны дорожки или повреждены внутренние слои.
Примечание: Для удобства эти правила можно сохранить в файл с названием производителя и стека, чтобы в дальнейшем легко экспортировать правила в новые платы (ПКМ на Design Rules, и там есть соответствующие пункты меню).
Стек печатной платы и профили импеданса
Возьмем для примера стандартный стек для 8 слоёв, 18 мкм от Резонита. Выглядит он следующим образом:
Инструмент Layer Stack Manager для редактирования стека печатной платы находится здесь:
Выглядит определение стека следующим образом:
Добавляются\удаляются слои через ПКМ. Также можно видеть, что ядро и препреги не из стандартной библиотеки материала Альтиума. Добавление корректных типов материалов, которые использует завод-изготовитель печатных плат, даёт более точные расчеты импедансов и симуляцию. Инструмент Material Library находится здесь:
Выглядит он следующим образом:
Примечание: Для удобства эти материалы можно сохранить в файл с названием производителя, чтобы в дальнейшем легко экспортировать материалы на новом рабочем месте (кнопки Load \ Save слева внизу).
Рядом c Material Library также есть инструмент Layer Stack Visualizer, который позволяет наглядно оценить порядок слоёв, габариты стека в 2D\3D видах:
Также в Layer Stack Manager следующая вкладка — это Impedance:
Здесь справа можно видеть все профили импедансов и послойно видеть параметры и экранирующие слои, на основе которых и идёт расчёт импедансов на целевом медном слое. Выбрав интересующий профиль, в его свойствах можно посмотреть более подробные параметры:
Выбрать его тип (одиночная цепь или дифференциальная пара), задать допуск импеданса, а также сделать выбор, каким образом производить расчёт:
В обоих вариантах толщина дорожки во время разводки может варьироваться: минимальная — номинальная (заданной) — максимальная в пределах заданного допуска импеданса.
Для чего нужны эти профили?
Да всё просто, их теперь можно использовать в правилах:
Выше — правило для LVDS, задающее толщины дорожек и зазор между ними на основании профиля D100. Таким же образом можно задавать толщину дорожки и для одиночной цепи:
И вот тут как раз и удобно использовать классы цепей, задаваемые на уровне принципиальной схемы, о которых рассказывалось ранее, в качестве примера, таким образом можно легко создать одно правило разводки для (общего) LVDS класса, назначить в правиле необходимый профиль импеданса, а в схеме добавить все LVDS сигналы в этот класс.
Менеджер сеток привязки
Просмотр и редактирование всех сеток привязки для печатной платы находится в свойствах платы отдельным блоком — Grid Manager:
По умолчанию там одна глобальная сетка привязки (и она же переключается по клавише G), в которой обычно и работает инженер. Для примера вот так выглядит BGA корпус с сеткой 0,25 мм (её, правда, почти не видно, т. к. стоит точечный вид):
Нажмём Add и добавим новую сетку, укажем центр в центре BGA корпуса и сделаем шаг 0,1 мм:
Как можно видеть, сетка появилась:
Таким же образом можно добавлять и полярные сетки:
А для чего это нужно то?
Таким образом можно организовывать локальную привязку, отличающуюся от глобальной. При использовании больших BGA корпусов шаг у них обычно ощутимо меньше, чем у остальных компонентов, и поэтому вести дорожки в пределах BGA корпуса легче, если есть локальная соответствующая шагу корпуса сетка.
Привязка дорожки с переходом от декартовой сетки к полярной:
Номера внутренних слоёв в специальном окне
Опять немного культуры проектирования. Это больше делают для панелей плат, но при наличии места на самой печатной плате окошки с номерами медных слоёв не помешают. Выглядит это так:
Здесь можно видеть, что сигнальные слои размещены в квадрате, а plane слои в виде заливки с инвертированной цифрой слоя. Таким образом, можно наглядно видеть наличие слоёв и правильность их очерёдности (в пределах видимости через стеклотекстолит, слои как на скриншоте выше, так и на реальной плате с каждой стороны должны плавно исчезать по порядку).
Тип подключения компонента к полигону
Делаем DC-DC, к примеру, вот такая схема:
И тут есть необходимость подключения DA2, L3, C36 и других компонентов без термобарьеров к полигонам. Как это сделать?
Есть довольно простой способ, выделяем нужные нам компоненты, заходим в их параметры:
Все смежные по имени параметры здесь будут видны, но при различии их значения в качестве значения будет «*«, а в совпадающих по значению параметрах будет отображено их значение. Так вот, нажимаем кнопку Add внизу и добавляем параметр ClassName со значением DirectConnect (значение может быть и любое другое, главное, что бы оно легко запоминалось и четко идентифицировалось с предназначением). Теперь все эти компоненты находятся в классе компонентов DirectConnect.
Далее, заходим в правила печатной платы и создаём привило подключения полигона для указанного класса компонентов:
DA2, L3, C36 и другие занесённые в этот класс компоненты будут теперь всегда подключаться без термобарьеров к любым полигонам.
Примечание: Здесь показан вариант исключительно для глобального правила подключения полигона, при желании можно также комбинировать класс компонента и имя цепи в качестве объектов для применения, а также ничего не мешает это использовать и в других типах правил.
Тип подключения отдельного пина компонента к полигону
Бывает такое, что нет необходимости подключения целого компонента к полигону без термобарьера, а надо подключить только 1-2 пина. Сделать это быстрее, чем через схему, можно с помощью классов контактных площадок (Pad Class). Заходим в обозреватель всех классов печатной платы:
Добавляем новый класс в Pad Classes с именем PadDirectConnect (имя может быть и любое другое, главное, чтобы оно легко запоминалось и четко идентифицировалось с предназначением) и добавляем в него необходимые пины компонентов (удобно пользоваться фильтром вверху для более быстрого поиска):
Далее заходим в правила печатной платы и создаём привило подключения полигона для указанного класса контактных площадок:
C29, C30 были добавлены в PadDirectConnect класс и на них теперь действует правило прямого подключения полигона.
Тип подключения переходного отверстия к полигону
Ранее для этого необходимо было создавать отдельное правило с проверкой на IsVia и указанием подключения к полигону, в последних версиях Альтиума же просто заходим в базовое правило PolygonConnect, тут можно в Advanced режиме настроить подключение как переходных отверстий, так и отдельно выводных и планарных контактных площадок:
Настройка вида заливок и полигонов
Мелочь, но ощутимо влияет на наглядность разводки и нахождение ошибок и недоработок. Открываем View Configuration через Panels:
Или через двойной щелчок на цветном прямоугольнике, отображающем цвет текущего слоя:
Переходим во View Options и настраиваем параметр прозрачности (Transparency) для полигонов и регионов:
Примечание: Зайдите во View Options в 3D-режиме отображения печатной платы, опции отображения поменяются и можно настроить вид 3D более удобно для вас.
Фильтр объектов для выделения
Фильтр объектов для выделения находится здесь:
Если он активен, то появляется зелёный кружок на значке фильтра:
И наглядное отображение, как он работает:
Слева направо выделялись все объекты, что попадали в прямоугольник выделения, справа налево выделялись вообще все объекты, касающиеся прямоугольника выделения, а при активации фильтра выделялись только дорожки в обоих случаях.
Да, к слову, если необходимо выделить контактные площадки компонента, которые не выделяются отдельно, то их необходимо выделять с Shift-ом:
Инструмент Paste Special
Инструмент Paste Special находится здесь:
Наглядно для чего его можно использовать:
Таким образом можно легко и быстро сделать ряд контактных площадок какого либо компонента, настроив только первый, а далее скопировав его, вставить этим инструментом с авто инкрементом на заданную величину и с указанным шагом.
Маркер одной стороны печатной платы
Элемент культуры проектирования. Снова. Вот этот вырез справа, сверху:
На фигурных платах особо смысла он не имеет, а вот на квадратных или прямоугольных платах он всегда отображает правую сторону печатной платы:
Благодаря чему всегда ясно даже не разработчику, где у платы правый верхний угол и где у неё верх и низ по слоям.
Создание xSignals правил
Удобный инструмент для согласования по длине для DDR3, DDR4, USB 3.0 или группы специальных сигналов с наличием последовательных терминирующих резисторов (типа HyperBus). Классы xSignals можно глянуть в панели PCB:
Для создания новых классов и правил разводки стоит воспользоваться xSignal Wizard, который находится здесь:
На старте требуется выбрать тип сигналов, для примера выбираем Custom:
Далее поиском по компонентам выбираем источник сигналов (Source Component):
Какие сигналы требуется анализировать (Source Nets):
И указываем приёмник сигналов (Destination Component):
Далее отображаются пути по умолчанию, и если у вас используются резистивные сборки, то здесь возможно переопределить пути в пределах доступной сборки:
Да, при выборе какого-либо пути на плате можно в этот момент посмотреть, как он пролегает (также и альтернативные пути с ремапом):
После выбора путей для всех сигналов создаётся класс для них и правило разводки (для HyperBUS здесь максимальная разница в длине указывается = 0,6 мм):
Также отдельно можно сделать правила для выравнивания не только общей длины проводников, но их же по отдельности как до, так и после последовательных терминирующих резисторов:
Автоматически созданное правило для класса xSignals:
Примечание: При каких-либо изменениях (замена компонента или переброс интерфейса на другие пины), затрагивающих компоненты, участвующие в xSignals классе, к сожалению, его придётся создавать заново. По крайне мере, в 19.0.13 класс и его проверки ломались…
Мультибоард проект
И последнее. Мультибоард проект — сборка плат в одном проекте:
После создания мультибоард проекта и добавления в него документа структурной схемы, следующий шаг — добавление модулей (проектов плат), этот инструмент находится здесь:
Рисуем 2 прямоугольника или квадрата — это будет структурное отображение 2-х проектов, входящих в сборку. Заходим в параметры каждого и указываем проект-источник и плату в нём:
После чего указанные проекты автоматически появятся в составе мультибоард проекта.
Да, нюанс, если вы хотите показать разъёмы, которыми сочленяются эти два проекта, то необходимо у каждого из разъёмов добавить параметр System со значением Connector :
После чего при выполнении импорта с проектов сборки с помощью ПКМ на любом модуле и выборе пункта Import From Child Projects:
Будет предложено добавить соответствующие разъёмы (у которых в схеме был добавлен параметр System со значением Connector) в составы моделей:
Теперь они выглядят так:
Только вот у XS1 вид не розетки, а вилки — надо исправить! Выделяем его и в параметрах указываем тип Female:
Примечание: Вот этот момент для меня несколько не ясен, почему нельзя было сразу в качестве значения параметра System указывать и тип. Загадка…
Далее можно провести соединение:
Это крайне простой пример, без ответвлений и массы различных соединителей, модулей.
Далее в созданном файле сборки импортируем изменения со структурной схемы:
Их можно сочленить по межплатному разъёму и наглядно увидеть проблемы или отсутствие оных по габаритам и размещению компонентов на платах в сборе:
Примечание: Более подробно не могу показать платы и работу с ними по некоторым причинам, думаю, главное показать в целом, а если кого заинтересовало, предлагаю изучить самостоятельно, и в качестве старта посмотреть работу с мультибоард-проектом в видео тут.
На этом всё, если есть замечания или знаете как сделать лучше — пишите комментарии, буду рад! Спасибо, что прочитали. 😉