Классы цепей
Время: ~35 мин
Цели урока
- создавать классы цепей в редакторе платы и из схемы
- задавать область действия правила через класс цепей
- понимать, как Altium выбирает одно правило из нескольких по приоритету
Что нужно знать заранее
На плате мультивибратора хватало одного правила ширины на все дорожки. На настоящей плате цепи очень разные: силовые требуют широких дорожек, USB — пары с заданным импедансом, высоковольтные — больших зазоров. Писать правило для каждой цепи по отдельности долго и легко ошибиться. Цепи группируют в классы (net classes) и пишут правила для класса.
Аналогия: в школе правила пишут не для каждого ученика, а для класса — «7А обедает в 12:00». Новый ученик в 7А автоматически подчиняется этому правилу.
Какие классы обычно заводят
Заголовок раздела «Какие классы обычно заводят»| Класс | Цепи | Что для него настраивают |
|---|---|---|
| Power | +5V, +3V3, VBAT, VBUS | ширина дорожек, размер переходных отверстий |
| GND | GND, AGND | подключение к полигонам |
| USB | USB_D_P, USB_D_N | дифференциальная пара, импеданс, зазор до соседей |
| HV | цепи с высоким напряжением | увеличенный зазор |
| Default | всё остальное | общие правила |
Ширину для класса Power считают под ток, как в уроке 5.4:
Формула IPC-2221 (ревизии B и C): I = k·ΔT0,44·A0,725, k = 0,048 (внешний) / 0,024 (внутренний), A — сечение в mil². Это минимум по нагреву, а не рекомендация. Новый стандарт IPC-2152 точнее, особенно для внутренних слоёв. Окончательную ширину сверяй с технологическими нормами производителя и добавляй запас.
Создаём классы на плате
Заголовок раздела «Создаём классы на плате»- В редакторе платы выбери . Откроется Object Class Explorer.
- Слева — дерево типов классов: цепи (Net), компоненты (Component), слои, площадки, дифференциальные пары и другие. Классы в угловых скобках, например
<All Nets>, системные — их нельзя менять. - Правый клик по группе классов цепей → создать новый класс (в разделе компонентов команда называется New Class; для цепей проверь название пункта в своей версии [ПРОВЕРИТЬ]). Назови класс, например
Power. - Выдели класс. В центре — список Non-Members (не входящие цепи), справа — Members (входящие). Перенеси нужные цепи кнопками между столбцами.
public/screenshots/m09-advanced/l03-object-class-explorer.pngКлассы прямо из схемы
Заголовок раздела «Классы прямо из схемы»Лучше задавать классы в схеме: тогда они переносятся на плату при обновлении и не теряются при пересинхронизации.
- Директива Parameter Set с параметром Net Class Name прикрепляется к проводнику цепи. Значение параметра — имя класса. Ставится через .
- Чтобы добавить в класс сразу много цепей, их накрывают покрывалом (Blanket) и ставят одну директиву Parameter Set, касающуюся края покрывала.
- Автоматические классы задаются в на вкладке Class Generation: например, Generate Net Classes for Buses создаёт класс на каждую именованную шину.
Классы попадают на плату при синхронизации схемы и платы (), через систему ECO. Какие классы переносятся, определяет вкладка Comparator в настройках проекта.
Как правило «находит» объект
Заголовок раздела «Как правило «находит» объект»Каждое правило в редакторе правил () имеет область действия (Scope) — запрос на языке Query, который отвечает на вопрос «к каким объектам применять». Новое правило по умолчанию имеет область All — ко всем объектам.
Примеры запросов:
| Запрос | Что выбирает |
|---|---|
All |
всё |
InNet('VBAT') |
объекты одной цепи |
InNetClass('Power') |
объекты всех цепей класса Power |
InNet('VBAT') And OnLayer('Bottom Layer') |
цепь VBAT, но только на нижнем слое |
Запрос можно набрать вручную, собрать в Query Builder (условия из списков) или в Query Helper (полный список ключевых слов и операторов).
Приоритет
Заголовок раздела «Приоритет»Если к объекту подходят несколько правил одного типа, Altium применяет одно — с наивысшим приоритетом.
- Чем меньше число приоритета, тем выше приоритет. 1 — самый главный.
- Приоритеты сравниваются только внутри одного типа правил (например, все правила Clearance между собой).
- Новое правило получает приоритет 1. Порядок меняют кнопкой Priorities в редакторе правил.
- Отсюда принцип: частные правила — выше, общие — ниже. Общее правило с областью
Allдолжно стоять последним, иначе оно «перекроет» все частные.
Исключение — правила Matched Lengths: они применяются все одновременно.
🧯 Типичные ошибки
Правило для класса Power есть, а дорожки питания всё равно тонкие
Почему Общее правило Width с областью All стоит выше по приоритету и перекрывает частное.
Как исправить Открой Priorities и подними правило класса выше общего: частные правила должны иметь меньший номер.
Класс создан на плате, а после обновления из схемы исчез или опустел
Почему Схема — главный источник данных. Синхронизация может перезаписать классы, созданные только на плате.
Как исправить Задавай классы в схеме (Parameter Set + Net Class Name) или проверь настройки сравнения классов на вкладке Comparator.
Опечатка в имени класса в запросе
Почему Запрос InNetClass('power') и класс Power могут не совпасть, и правило ни к чему не применится.
Как исправить Собирай запрос в Query Builder, выбирая класс из списка, а не набирая вручную.
Применяется правило с наивысшим приоритетом, чья область подходит: Width_Power с приоритетом 1.
Чем меньше число, тем выше приоритет.
Parameter Set с Net Class Name, прикреплённый к цепи или к покрывалу, задаёт класс. Он переносится на плату при синхронизации.
Общее правило ловит всё, что не поймали частные, поэтому оно последнее в списке.
Практическое задание~30 мин
В проекте с платой из урока 9.2 (или в проекте 11.2, если он уже начат):
- Создай классы
Power(цепи питания) иUSB(D+ и D−) — лучше директивами в схеме. - Обнови плату и проверь в Object Class Explorer, что классы появились и в них правильные цепи.
- Создай правило Width для класса Power с шириной по расчёту калькулятора и проверь в Priorities, что оно выше общего правила.