Перейти к содержимому

Классы цепей

Время: ~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)

Минимальная ширина—
То же в mil—
Сечение—
Сопротивление / падение U—
Потери мощности—

    Формула IPC-2221 (ревизии B и C): I = k·ΔT0,44·A0,725, k = 0,048 (внешний) / 0,024 (внутренний), A — сечение в mil². Это минимум по нагреву, а не рекомендация. Новый стандарт IPC-2152 точнее, особенно для внутренних слоёв. Окончательную ширину сверяй с технологическими нормами производителя и добавляй запас.

    1. В редакторе платы выбери DesignClasses. Откроется Object Class Explorer.
    2. Слева — дерево типов классов: цепи (Net), компоненты (Component), слои, площадки, дифференциальные пары и другие. Классы в угловых скобках, например <All Nets>, системные — их нельзя менять.
    3. Правый клик по группе классов цепей → создать новый класс (в разделе компонентов команда называется New Class; для цепей проверь название пункта в своей версии [ПРОВЕРИТЬ]). Назови класс, например Power.
    4. Выдели класс. В центре — список Non-Members (не входящие цепи), справа — Members (входящие). Перенеси нужные цепи кнопками между столбцами.

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

    • Директива Parameter Set с параметром Net Class Name прикрепляется к проводнику цепи. Значение параметра — имя класса. Ставится через PlaceDirectivesParameter Set[ПРОВЕРИТЬ].
    • Чтобы добавить в класс сразу много цепей, их накрывают покрывалом (Blanket) и ставят одну директиву Parameter Set, касающуюся края покрывала.
    • Автоматические классы задаются в ProjectProject Options на вкладке Class Generation: например, Generate Net Classes for Buses создаёт класс на каждую именованную шину.

    Классы попадают на плату при синхронизации схемы и платы (DesignUpdate PCB Document), через систему ECO. Какие классы переносятся, определяет вкладка Comparator в настройках проекта.

    Каждое правило в редакторе правил (DesignRules) имеет область действия (Scope) — запрос на языке Query, который отвечает на вопрос «к каким объектам применять». Новое правило по умолчанию имеет область All — ко всем объектам.

    Примеры запросов:

    Запрос Что выбирает
    All всё
    InNet('VBAT') объекты одной цепи
    InNetClass('Power') объекты всех цепей класса Power
    InNet('VBAT') And OnLayer('Bottom Layer') цепь VBAT, но только на нижнем слое

    Запрос можно набрать вручную, собрать в Query Builder (условия из списков) или в Query Helper (полный список ключевых слов и операторов).

    Если к объекту подходят несколько правил одного типа, Altium применяет одно — с наивысшим приоритетом.

    дорожкаUSB_D_P1Clearance_USBScope: InNetClass('USB')✓ применено2Clearance_HVScope: InNetClass('HV')не проверяется3ClearanceScope: Allне проверяетсяприоритет ↓ (1 — самый высокий)
    Рис. 9.3. Для каждого объекта Altium перебирает правила одного типа в порядке приоритета (1 — самый высокий) и применяет первое, чья область действия (Scope) подходит. Дорожка цепи USB_D_P входит в класс USB, поэтому к ней применяется Clearance_USB, а общее правило Clearance (All) работает для всего остального.
    • Чем меньше число приоритета, тем выше приоритет. 1 — самый главный.
    • Приоритеты сравниваются только внутри одного типа правил (например, все правила Clearance между собой).
    • Новое правило получает приоритет 1. Порядок меняют кнопкой Priorities в редакторе правил.
    • Отсюда принцип: частные правила — выше, общие — ниже. Общее правило с областью All должно стоять последним, иначе оно «перекроет» все частные.

    Исключение — правила Matched Lengths: они применяются все одновременно.

    🧯 Типичные ошибки

    Правило для класса Power есть, а дорожки питания всё равно тонкие

    Почему Общее правило Width с областью All стоит выше по приоритету и перекрывает частное.

    Как исправить Открой Priorities и подними правило класса выше общего: частные правила должны иметь меньший номер.

    Класс создан на плате, а после обновления из схемы исчез или опустел

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

    Как исправить Задавай классы в схеме (Parameter Set + Net Class Name) или проверь настройки сравнения классов на вкладке Comparator.

    Опечатка в имени класса в запросе

    Почему Запрос InNetClass('power') и класс Power могут не совпасть, и правило ни к чему не применится.

    Как исправить Собирай запрос в Query Builder, выбирая класс из списка, а не набирая вручную.

    Проверь себя

    1. 1. Есть правила Width: «Width_Power» (приоритет 1, InNetClass('Power')) и «Width» (приоритет 2, All). Какое применится к дорожке цепи +5V из класса Power?
    2. 2. Какой приоритет выше: 1 или 5?
    3. 3. Где в схеме задаётся принадлежность цепи к классу?
    4. 4. Какое правило должно иметь самый низкий приоритет?

    Практическое задание~30 мин

    В проекте с платой из урока 9.2 (или в проекте 11.2, если он уже начат):

    1. Создай классы Power (цепи питания) и USB (D+ и D−) — лучше директивами в схеме.
    2. Обнови плату и проверь в Object Class Explorer, что классы появились и в них правильные цепи.
    3. Создай правило Width для класса Power с шириной по расчёту калькулятора и проверь в Priorities, что оно выше общего правила.