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

Многолистовые и иерархические схемы

Время: ~40 мин

Цели урока

  • разбивать схему на функциональные листы
  • отличать плоскую структуру от иерархической и выбирать подходящую
  • создавать символы листов, входы листов и порты и связывать их
  • понимать, как Altium решает, какие одноимённые цепи соединены

Схема мультивибратора помещалась на один лист. Схема платы с микроконтроллером и USB из проекта 11.2 на одном листе превратится в паутину: питание, разъём, защита, мост USB-UART, сам микроконтроллер, кварц, разъём программирования. Такую схему делят на листы — по одному на функциональный блок.

Аналогия: книга делится на главы, а в начале — оглавление. Читатель сначала смотрит оглавление, чтобы понять устройство целиком, а потом открывает нужную главу.

Плоская структура (flat). Все листы равноправны и лежат на одном уровне. Цепи между листами соединяются портами (Port) с одинаковыми именами: порт +5V на листе питания соединён с портом +5V на листе микроконтроллера. Быстро рисовать, но по распечатке трудно понять, что с чем связано.

Иерархическая структура (hierarchical). Есть один верхний лист. На нём — символы листов (Sheet Symbol), прямоугольники, каждый из которых ссылается на дочерний лист. На краях символа — входы листа (Sheet Entry). Цепь идёт от порта дочернего листа к одноимённому входу на символе, а связи между блоками рисуются проводами на верхнем листе.

Top.SchDocU_USBVBUSUSB_D_PUSB_D_NU_POWERVBUS+5VU_MCU+5VUSB_D_PUSB_D_NUSB.SchDocпорты: VBUS,USB_D_P, USB_D_NPOWER.SchDocпорты: VBUS, +5VMCU.SchDocпорты: +5V,USB_D_P, USB_D_N
Рис. 9.8. Верхний лист (Top.SchDoc) содержит только символы листов (Sheet Symbol) и связи между их входами (Sheet Entry). Каждый символ ссылается на свой дочерний лист, где та же цепь выведена портом (Port) с тем же именем. Так схема платы из проекта 11.2 делится на понятные блоки: питание, USB и микроконтроллер.

Иерархия рисуется дольше, зато верхний лист — это готовая структурная схема изделия, а блоки легко переносить в другие проекты. Для проекта 11.2 бери иерархию.

Главный вопрос в многолистовой схеме: если на двух листах есть метка цепи RESET, это одна цепь или две? Ответ задаёт настройка Net Identifier Scope в ProjectProject Options на вкладке Options:

Значение Как соединяются листы
Flat порты глобальные: одноимённые порты на любых листах соединены
Global глобальные и порты, и метки цепей (Net Label)
Hierarchical порты соединяются только «по вертикали» — с одноимённым входом на символе родительского листа
Strict Hierarchical как Hierarchical, но строже
Automatic Altium выбирает сам по тому, что есть в проекте

Режим Automatic обычно угадывает правильно, но для иерархического проекта надёжнее явно выбрать Hierarchical. Тогда метка RESET на листе USB и метка RESET на листе MCU — разные цепи, пока ты не выведешь их портами и не соединишь на верхнем листе. Это защищает от случайных соединений одноимённых меток. Точное различие между Hierarchical и Strict Hierarchical уточни в документации своей версии [ПРОВЕРИТЬ].

  1. Добавь листы в проект. Создай Top.SchDoc. Дочерние листы можно создать заранее или прямо из символов (шаг 4).
  2. Поставь символ листа на верхний лист: PlaceSheet Symbol. В панели Properties задай обозначение (Designator, например U_USB) и имя файла дочернего листа.
  3. Добавь входы. В свойствах символа в таблице Sheet Entries нажми Add и задай имя (USB_D_P) и направление (I/O Type: вход, выход, двунаправленный).
  4. Создай дочерний лист из символа. Правый клик по символу → Sheet Symbol Actions → Create Sheet From Sheet Symbol. Altium создаст новый лист и поставит на него порт для каждого входа символа.
  5. Нарисуй блок на дочернем листе и подключи цепи к портам. Новый порт ставится через PlacePort.
  6. Синхронизируй, если менял входы или порты: правый клик по символу → Sheet Symbol Actions → Synchronize Sheet Entries and Ports. Откроется диалог сопоставления по имени и направлению.
  7. Соедини символы проводами на верхнем листе.
  8. Проверь проект: ProjectValidate PCB Project[ПРОВЕРИТЬ] и посмотри сообщения в панели Messages. После проверки в панели Projects листы отображаются деревом по иерархии.
  • Один лист — один функциональный блок: питание, интерфейс USB, микроконтроллер, датчики, силовая часть.
  • Через границы листов — только нужные сигналы. Если между двумя листами бегает двадцать цепей, возможно, граница проведена неудачно.
  • Имена портов — по смыслу сигнала (UART_TX, USB_D_P), а не «PORT1».
  • Верхний лист без компонентов — только символы листов и связи. Его удобно показывать на ревью как структурную схему.

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

Одноимённые метки цепей на разных листах неожиданно соединились (или не соединились)

Почему Режим Net Identifier Scope не тот, что ты ожидаешь: в Global метки глобальны, в Hierarchical — нет.

Как исправить Явно выбери режим в Project Options → Options и соединяй листы только через порты и входы листов.

Порт на дочернем листе есть, а на символе листа такого входа нет

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

Как исправить Выполни Synchronize Sheet Entries and Ports в меню символа листа.

Блок скопировали в другой проект, а он «не подключается»

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

Как исправить Выводи все внешние сигналы блока только портами — тогда блок переносится без сюрпризов.

Проверь себя

  1. 1. Что находится на верхнем листе иерархической схемы?
  2. 2. В режиме Hierarchical как соединяется порт дочернего листа?
  3. 3. Как быстро получить дочерний лист с портами для всех входов символа?
  4. 4. Блок «канал светодиода» нужен 4 раза. Как сделать это без копирования листа?

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

Подготовь структуру схемы для проекта 11.2:

  1. Создай проект с листами Top, POWER, USB, MCU (и, если нужно, PROG для разъёма программирования).
  2. На верхнем листе расставь символы листов с входами: VBUS, USB_D_P, USB_D_N, UART_TX, UART_RX, RESET (питание — портами питания).
  3. Создай дочерние листы командой Create Sheet From Sheet Symbol, выбери режим Hierarchical и проверь проект. В панели Messages не должно быть ошибок о несоединённых портах.