Многолистовые и иерархические схемы
Время: ~40 мин
Цели урока
- разбивать схему на функциональные листы
- отличать плоскую структуру от иерархической и выбирать подходящую
- создавать символы листов, входы листов и порты и связывать их
- понимать, как Altium решает, какие одноимённые цепи соединены
Что нужно знать заранее
Схема мультивибратора помещалась на один лист. Схема платы с микроконтроллером и USB из проекта 11.2 на одном листе превратится в паутину: питание, разъём, защита, мост USB-UART, сам микроконтроллер, кварц, разъём программирования. Такую схему делят на листы — по одному на функциональный блок.
Аналогия: книга делится на главы, а в начале — оглавление. Читатель сначала смотрит оглавление, чтобы понять устройство целиком, а потом открывает нужную главу.
Два способа связать листы
Заголовок раздела «Два способа связать листы»Плоская структура (flat). Все листы равноправны и лежат на одном уровне. Цепи между листами соединяются портами (Port) с одинаковыми именами: порт +5V на листе питания соединён с портом +5V на листе микроконтроллера. Быстро рисовать, но по распечатке трудно понять, что с чем связано.
Иерархическая структура (hierarchical). Есть один верхний лист. На нём — символы листов (Sheet Symbol), прямоугольники, каждый из которых ссылается на дочерний лист. На краях символа — входы листа (Sheet Entry). Цепь идёт от порта дочернего листа к одноимённому входу на символе, а связи между блоками рисуются проводами на верхнем листе.
Иерархия рисуется дольше, зато верхний лист — это готовая структурная схема изделия, а блоки легко переносить в другие проекты. Для проекта 11.2 бери иерархию.
Видимость имён цепей
Заголовок раздела «Видимость имён цепей»Главный вопрос в многолистовой схеме: если на двух листах есть метка цепи RESET, это одна цепь или две? Ответ задаёт настройка Net Identifier Scope в на вкладке Options:
| Значение | Как соединяются листы |
|---|---|
| Flat | порты глобальные: одноимённые порты на любых листах соединены |
| Global | глобальные и порты, и метки цепей (Net Label) |
| Hierarchical | порты соединяются только «по вертикали» — с одноимённым входом на символе родительского листа |
| Strict Hierarchical | как Hierarchical, но строже |
| Automatic | Altium выбирает сам по тому, что есть в проекте |
Режим Automatic обычно угадывает правильно, но для иерархического проекта надёжнее явно выбрать Hierarchical. Тогда метка RESET на листе USB и метка RESET на листе MCU — разные цепи, пока ты не выведешь их портами и не соединишь на верхнем листе. Это защищает от случайных соединений одноимённых меток. Точное различие между Hierarchical и Strict Hierarchical уточни в документации своей версии [ПРОВЕРИТЬ].
Строим иерархию: пошагово
Заголовок раздела «Строим иерархию: пошагово»- Добавь листы в проект. Создай
Top.SchDoc. Дочерние листы можно создать заранее или прямо из символов (шаг 4). - Поставь символ листа на верхний лист: . В панели Properties задай обозначение (Designator, например
U_USB) и имя файла дочернего листа. - Добавь входы. В свойствах символа в таблице Sheet Entries нажми Add и задай имя (
USB_D_P) и направление (I/O Type: вход, выход, двунаправленный). - Создай дочерний лист из символа. Правый клик по символу → Sheet Symbol Actions → Create Sheet From Sheet Symbol. Altium создаст новый лист и поставит на него порт для каждого входа символа.
- Нарисуй блок на дочернем листе и подключи цепи к портам. Новый порт ставится через .
- Синхронизируй, если менял входы или порты: правый клик по символу → Sheet Symbol Actions → Synchronize Sheet Entries and Ports. Откроется диалог сопоставления по имени и направлению.
- Соедини символы проводами на верхнем листе.
- Проверь проект: и посмотри сообщения в панели Messages. После проверки в панели Projects листы отображаются деревом по иерархии.
public/screenshots/m09-advanced/l08-top-sheet.pngpublic/screenshots/m09-advanced/l08-child-sheet.pngКак делить схему на листы
Заголовок раздела «Как делить схему на листы»- Один лист — один функциональный блок: питание, интерфейс USB, микроконтроллер, датчики, силовая часть.
- Через границы листов — только нужные сигналы. Если между двумя листами бегает двадцать цепей, возможно, граница проведена неудачно.
- Имена портов — по смыслу сигнала (
UART_TX,USB_D_P), а не «PORT1». - Верхний лист без компонентов — только символы листов и связи. Его удобно показывать на ревью как структурную схему.
🧯 Типичные ошибки
Одноимённые метки цепей на разных листах неожиданно соединились (или не соединились)
Почему Режим Net Identifier Scope не тот, что ты ожидаешь: в Global метки глобальны, в Hierarchical — нет.
Как исправить Явно выбери режим в Project Options → Options и соединяй листы только через порты и входы листов.
Порт на дочернем листе есть, а на символе листа такого входа нет
Почему Порт добавили или переименовали после создания символа.
Как исправить Выполни Synchronize Sheet Entries and Ports в меню символа листа.
Блок скопировали в другой проект, а он «не подключается»
Почему Цепи блока были связаны метками, а не портами, и в новом проекте режим видимости другой.
Как исправить Выводи все внешние сигналы блока только портами — тогда блок переносится без сюрпризов.
Верхний лист — структурная схема: символы листов-блоков и провода между их входами.
В иерархическом режиме порты соединяются «по вертикали» — с входом на символе родительского листа.
Эта команда создаёт новый лист и ставит на него порт на каждый вход символа.
Многоканальный дизайн: ключевое слово Repeat в обозначении символа листа.
Практическое задание~40 мин
Подготовь структуру схемы для проекта 11.2:
- Создай проект с листами Top, POWER, USB, MCU (и, если нужно, PROG для разъёма программирования).
- На верхнем листе расставь символы листов с входами: VBUS, USB_D_P, USB_D_N, UART_TX, UART_RX, RESET (питание — портами питания).
- Создай дочерние листы командой Create Sheet From Sheet Symbol, выбери режим Hierarchical и проверь проект. В панели Messages не должно быть ошибок о несоединённых портах.