Введение
Теперь немного информации для тех, кто не знает что такое Altium Designer. Это один из трех популярных профессиональных САПР, которые позволяют разрабатывать электронику практически любой сложности. Два оставшихся пакета — это Mentor Expedition (и PADS наверное) и Allegro Cadence. У каждого из этих 3-х пакетов есть свои плюсы и минусы, а так же условная специализация. Сегодня сравнений не будет, поэтому я лишь скажу почему выбрал Altium для себя:
- Отличный дизайн и продуманный интерфейс данной программы просто вне конкуренции. Достаточно посмотреть на конкурентов и все становится ясно. Да, дизайн и удобство это важно, когда ты проводишь за работой по несколько часов ежедневно. Так же это облегчает процесс обучения новичков, ведь учиться в понятном и логичном САПРе намного проще;
- Возможность напрямую работать с таким механическим «титаном» как SolidWorks. Мы можем просто открыть плату из AD в солиде и добавить ее как часть сборке без потери качества. Прощай конвертация через STEP. Для меня, да и наверняка для вас, это важно, т.к. электронное устройство — это не просто плата с компонентами, это почти всегда еще и корпус. Данная возможность позволяет легко сделать сборочную модель всего устройства и не допустить ошибок при проектирование и производстве пресс-форм по 3-5 тыс.$ каждая;
- Наличие достаточно большого количества информации на русском языке, что обеспечивает достаточно низкий порог вхождения. Это основная причина, почему в СНГ главенствует именно Altium, а не что-то другое. Попробуйте найти что-то на русском по Mentor или Cadence, сразу расхотите учиться работать в них;
- В СНГ и Азии большинство компаний работают в Altium, да и в Штатах у них большая доля рынка. В Европе очень любят SolidWorks PCB, который является как раз таки встроенным AD. Что это дает? Вы легко сможете найти работу, если надумаете работать в сфере разработки электроники.
Да да, я не рассказал о всяких возможностях симуляции, инструментах и прочем, но это и не нужно. Все 3 описанные выше САПР с технической стороны умеют примерно одно и тоже, просто с разной степенью удобства и костыльности.
Я хочу научиться работать в Altium, но он меня пугает
Когда-то, году так в 2011-2012, мне довелось впервые поработать в AD, он мне показался крутым, но страшным, т.к. в тот момент английский для меня был преградой и вообще было не понятно как в нем работать. Преодолеть свой страх перед огромным количеством инструментов и функционала мне помогли видео-ролики от тов. Сабунина (спасибо ему), которые есть на youtube на русском языке и описывают базовые простые вещи, позволившие сделать первые шаги в освоение. За прошедшие 6 лет информации по AD на русском стало еще больше, поэтому порог вхождения стал еще ниже, так что не бойтесь и учитесь.
Чтобы вам было легче осваивать Altium Designer предлагаю парочку «пряников» от себя:
- Цикл обучающих видео-уроков — тут. Ролики имеют большую длительность, но содержат в себе исчерпывающую информацию по базовым функция (так говорят по крайней мере) и позволят любому школьнику без проблем спроектировать свое первое устройство;
- Библиотеки для Altium Designer — тут. Тут вы найдете все пассивные компоненты (резисторы, конденсаторы и прочее), а так же большое количество популярных транзисторов, диодов и микросхем, включая МК и FPGA. Создание библиотек на старте занимает очень много времени, поэтому надеюсь, что сэкономлю вам не мало времени.
Если в процессе изучения у вас будут какие-то вопросы и возникнут сложности, то вы можете написать мне в личные сообщения, по возможности стараюсь отвечать всем.
Когда проект становится сложным?
У любого более менее серьезного проекта, будь то исходный код какой-то программы или принципиальная схема электронного устройства, всегда есть черта после которой наступает хаос, проект становится непонятным, его сложно проверять и тестировать, он выходит из под контроля.
Данная граница индивидуальна для каждого разработчика: один может отлично разобраться в устройстве из 1000 компонентов, а другой начинает допускать ошибки и испытывает сложности с проектом из 200 компонентов. Вообще оценка в количестве электронных компонентов немного субъективная, но общую суть проблемы понять позволяет.
Из выше написанного можно сделать следующий вывод:
Проект становится сложным, когда разработчику становится необходимым выполнять действия по сохранению читаемости и понятности исходников проекта.
До какого-то момента вы можете конечно забить на все и «рисовать» на схеме что угодно и как угодно, например, как тут:
Все сливается, схема выполнена неаккуратно и в конечном итоге это приведет к тому, что где-то криво или не туда провели дорожку, в этом хаосе сразу не заметили и в итоге режете проводники на платах и подпаиваете сопли.
Давайте посмотрим еще на один шедевр — схема arduino, выполненная в AD:
Как вам? Мне вот больно… Смотрю я на R2 и R3, вроде понятно что это подтяжки для I2C, но где этот I2C и около какого разъема они должны быть для меня загадка и тут приходится уже искать долго и нудно, при чем это схема с малым количеством компонентов и простая, а уже хаос.
Теперь как альтернатива — пример из своих произведений (кликабельно):
Смотрите на схему и я думаю вам сразу понятно как минимум где вход, а где выход — «стрелки» вам на это намекают, да и мы не арабы, читаем (в том числе и схемы) слева направо. Функция у модуля одна — трехфазный синфазный фильтр и ничего лишнего. Схема сделана аккуратно и занимаете 1 лист в документации. 1 лист — 1 функция.
На самом деле то о чем я написал выше — мелочи, важные и облегчающие жизнь, но все таки мелочи. Хотя я надеюсь общую идеологию вы уловили, давайте теперь подведем итог как же «надо» делать:
- Принцип инкапсуляции применителен и в схемотехнике: каждый модуль выполняет единственную простую задачу. Модуль обычно это один лист в документации, например, А3 какой-нибудь;
- Принципиальная схема должна выполняться в одном стиле и очень аккуратно. Аккуратность при работе в будущем окупится вам сполна. Да и когда вы на собеседовании покажите понятную, аккуратно выполненную схему о вас сразу же сложится хорошее впечатление. Рукожопов видят сразу и обычно не любят;
- Не используйте листы больше А2, даже если у вас пару тысяч компонентов. Если хочется влепить А1, то что-то вы делаете не так. Вероятно вам на схеме нужно выделить какие-то модули и перенести на отдельный лист.
Критикуешь? Предлагай!
Теперь раскритиковав других необходимо предложить альтернативу «как надо делать». Стоит понимать, что описанное в статье лишь субъективное мнение автора, основанное на опыте работы и собственном взгляде на мир.
Предлагаю сделать как все нормальные люди, то есть сначала сделаем
Создаем проект в Altium Designer. В нем для примера я изображу 6-ти фазный buck преобразователь DC/DC. У меня будет 6 силовых каналов и 1 МК для управления всеми фазами. Каждый силовой канал будет выглядеть следующим образом (кликабельно):
Сам канал силовой я изначально начертил правильно. Если посмотрите внимательно, то у меня на схеме есть входы сигнало — 2 ШИМа слева + VCCIN с GND, есть выход — VCC5V и GND. Сам модуль выполняет одну задачу — преобразует VCCIN в 5В. Дальше делаем плохо…
Тут мы натыкаемся на первое ограничение — один канал занимает практически весь лист А3, у нас их 6, следовательно если я увеличу лист до А2 все равно не уместится. Можно увеличить лист до А1 — отлично, пока что мы
Вроде как пока понятно — есть 6 каких то кусков схемы, есть МК внизу. Вот только это 30% схемы, что еще нужно? Обвязка МК + обратные связи? Конечно! Устройство должно общаться с внешним миром? Конечно, добавим RS485. Аааа, еще нужно питание для драйверов, то есть из VCCIN необходимо получить +12В и для этого добавим DC/DC! Еще же МК… ему надо еще 1 DC/DC и теперь добавив все это — смотрим (кликабельно):
Понятно что тут? А если бы я не сказал изначально о функционале устройства? А если вдобавок к этому еще и отдельные куски схемы рисовал коряво? А если УГО компонентов в библиотеках нарисованы изначально криво? Напугал? То-то же…
Что же делать?
Теперь давайте поразмышляем… В данном устройстве всего компонентов 150, в моих средних проектах связанных с силовой электроникой, их обычно от 1500 до 4000, то есть масштаб бедствия вы представляете, когда таких листов А1 как выше будет 10 штук и все они захламлены и забиты. Ошибки неизбежны!
Смотрим и думаем дальше. Первое что стоит сделать — сформировать модули. У меня они все сформированы, т.к. я их просто копировал с одной домашней поделки, но один модуль разбил — EEPROM память по I2C работающую. Я совершил ошибку такую же как в схеме ардуины, как стоит сделать:
Как видите я собрал в одну «кучку» микросхему памяти, блокирующий конденсатор по питанию, который будет стоять около нее и подтяжки к +3.3В. Теперь мне не придется искать по схеме все компоненты, которые нужны для обвязки микросхемы памяти, они все уже в одном месте. Кстати не обязательно выделять отдельный лист под каждую мелкую микросхему, все таки EEPROM это не отдельный модуль, а скорее часть обвязки микроконтроллера. МК с обвязкой — вот это уже модуль достойный отдельного листа.
Идем дальше… У нас есть повторяющиеся части схемы, например, 2 абсолютно одинаковых канала для обратной связи на операционном усилителе (ОУ), еще 6 абсолютно одинаковых силовых каналов. Это можно оптимизировать тоже.
Еще одна светлая мысль — если все 6 каналов buck одинаковые, то и трассировка у них наверняка будет одинаковая. Этим надо воспользоваться. Может можно развести дороги для одного модуля, а потом оставшимся 5-ти сказать «а ну повтори»? Оказывается можно, AD позволяет нам очень сильно облегчить себе жизнь.
Давайте делать красиво!
С чего начинается любое электронное устройство? С идеи разумеется. Как эту идею превратить во что-то материальное? Например, можно нарисовать блок-схему, где будет отображаться макро-функционал. Сильно мудрить не надо, достаточно картинки на доске или листке бумаги:
На листке уместился весь функционал нашего устройства. Во-первых, данная схема дает нам понять как устройство в принципе работает: есть силовая часть (Buck) 6-ти канальная, которой управляет МК (MCU), который для управления получается 2 сигнала обратной связи через ОУ (Amp.), а так же имеется парочка dc/dc для самопитания и интерфейс Modbus для связи с миром. Во-вторых, по схеме сразу видно готовые функциональные блоки.
Теперь нам необходимо создать в AD 5 листов А3 и в каждый перенести соответствующую часть схемы, но перед этим необходимо рассмотреть типы соединений и цепей, которые мы будем использовать в AD:
- Power port
Данный тип является глобальным по всему проекту. То есть если мы поставили такой порт на одном листе и на другом, то они объединятся в единую цепь с именем «VCC3V3». Соответственно дополнительно цепи питания на разных листах соединять не надо. Данным типом порта задают только цепи питания и землю (GND); - Net Lable
Инструмент для присвоения имени конкретной цепи на схеме. Цепи с одинаковым именем (NetLabel) объединяются как внутри одного листа, так и за его пределами. Мы будем использовать данный инструмент кошерно, то есть только для задания имен и соединения внутри одного листа; - Place Port
Инструмент для межмодульных соединений. В противоположность NetLabel, который служит для соединения внутри модуля/листа, данный порт применяется для общения с «внешним миром». Им мы соединяем между собой модули, все цепи кроме питания и земли (GND).
Теперь нам необходимо задать с помощью Place Port сигналы, которые будут выходить за пределы модуля. Например, для модуля с операционным усилителем это будет выглядеть так:
Теперь наш модуль превратился во вполне логичную часть схемы: у него есть вход (INPUT), есть выход (ADC-OUT) и есть 2 глобальных подключения (Power Port) — GND и VCC3V3. Ничего лишнего. Проделаем тоже самое для других модулей и сделаем автоматическое присвоение номеров условным обозначениям (designator), перейдя в Tools -> Annotations -> Annotate Schematics и нажав Update Changes List:
Далее жмем Accept Changes и в открывшемся окне жмем Execute Changes:
Закрываем лишние окна и видим, что нашим обозначения (D?, R?, C? и т.п.) получили уникальные номера. После проделанных действий мы получаем вот такой проект — PDF.
Ну как? Думаю никто не станет спорить — все аккуратно, понятно как работает с первого взгляда, нет помойки на схеме. Теперь осталось за малым — нам надо как-то из одного листа создать 6 каналов и вообще соединить все в кучу.
Для этого создадим новый лист, у меня он будет называться просто Main design, но имя может быть любое. В данном листе у нас будет располагаться блок схема, которую я ранее рисовал от руки. Для создания модуля идем Place -> Sheet Symbol. Теперь зададим нашему элементу стилистику всего проекта, то есть шрифт (у меня ISOCPEUR), ширину и цвет рамки, обозначение (designator) и прочее, а так же пропишем имя листа с нашим модулем:
Теперь правой кнопкой мыши нажимает на наш модуль (оранжевый квадрат) и идем Sheet Symbol Actions -> Synchronize Sheet Entries and Port и откроется окно:
В нем мы видим список наших Place Port. Выбираем все и жмем Add Sheet Entries, устанавливаем в наш модуль и задаем общий тип шрифта, получаем такой модуль:
Теперь повторяем тоже самое для остальных 4-х модулей и на выходе получаем вот такую структуру:
Тут стоит обратить внимание на 2 момента:
- 5-й лист (Page 5) с dc/dc при попытки синхронизации не обнаружит Place Port и если посмотрите на схему модуля, то их там действительно нет, только Power Port. НО! Вынести модуль для Page 5 нужно обязательно, иначе компоненты с данного листа просто не появятся на плате;
- Обратите внимание, что у инструмента Place Port есть параметр направленности: input, output и bidirectional. Вам стоит правильно определять тип порта для вашего сигнала, например, порты PWM-H являются исходящими (output) для модуля MCU и входящими (input) для модуля Buck.
Клонируем
Теперь когда мы создали все модули необходимо увеличить их количество для того, чтобы получить 6 каналов для силовой части и 2 канала для операционных усилителей. Как говорится выхода всегда два, даже если тебя съели и данный случай не исключение. Я покажу оба способа:
- Копирование в рукопашную
Тут все просто — обычный копипаст. Выделяем наш модуль, Ctrl+C и Ctrl+V — получаем новый модуль. Остается просто сменить ему номер обозначения (designator) с M3 на M6. Дальше все соединяем и получаем промежуточный вариант схемы:
Я скопировал модуль ОУ, добавил пару разъем и шины GND и VCCIN, они теперь глобальные и подключаются сразу во всех модулях где встречаются. Тащить им отдельно Place Port в данном случае смысла нет. Так же я соединил все внешние цепи кроме модуля Buck, на нем продемонстрирую 2-й, более компактный, способ. - Копирование по-джедайски
В противоположность предыдущему варианту тут все сложно для понимая, но проще в реализации и главное более грамотно. Создание нескольких каналов будет осуществляться с помощью директивы REPEAT. Для этого вместо обозначения (designator) M1 пишем команду REPEAT(BUCK, 1, 6). Данная команда создаст каналы с обозначениями (designator) от BUCK1 до BUCK6, то есть наши 6 штук. Жмем Enter и видим как AD создал необходимое число каналов:
Теперь необходимо соединить цепи. Начну с простого — наши выходы OUT-5V у всех каналов должны объединяться, т.к. все наши фазы работают как один преобразователь на общий выход. Для этого мы просто из Place Port выводит обычную цепь и подключаем ее на выходной разъем:
Теперь необходимо сказать AD, что наши порты PWM-H это не один порт/цепь, а 6 раздельных каналов. Для это кликаем по Place Port с именем PWM-H и в графу с именем пишем REPEAT(PWM-H), это создаст 6 разных цепей:
Теперь необходимо вывести обычную цепь (Ctrl+W) из Place Port с именем REPEAT(PWM-H) и дать этой цепи имя PWM-H с помощью инструмента NetLabel. Затем из цепи необходимо вывести шину (Bus) и дать ей имя PWM-H[1..6]. Таким образом из одного порта мы вывели 6 разных цепей у которых будут имена PWM-H1, PWM-H2 и так далее:
Далее шину PWM-H[1..6] мы подключаем к выходу шины на модуле MCU для верхних транзисторов полумоста. Аналогичные процедуры так же необходимо провести для нижний транзисторов и так же прокинуть шину, в итоге мы будем иметь схему следующего вида:
Теперь познав дзен давайте переделаем «по-джедайски» модуль с операционным усилителем, чтобы не оставлять костыль в виде копипасты. В результате получим финальную версию принципиальной схемы:
На этому мы с принципиальной схемой закончим, финальный результат вот — PDF. Как видите схема вышла простейшая, всего пару полу-пустых листов А3, разобраться в ней сможет любой радиолюбитель с минимальными затратами времени и нервов.
Экономим десятки человеко-часов на трассировке
В современных реалиях, когда степень интеграции компонентов (микросхем) достаточно высокая, разработка принципиальной схемы занимает все меньше и меньше времени. Уже не так часто встретишь на 90% аналоговых монстров и это хорошо. «Слабым местом» в процессе разработки устройства остается проектирование печатной платы (PCB). Современные САПР предоставляют множество различных инструментов для сокращения трудозатрат на разработку платы и именно это было основной целью данной статьи.
Как я ранее указывал, в нашем устройстве есть несколько повторяющихся модулей: buck и ОУ. Если вы посмотрите на современные устройства, то во многих будет множество таких повторений, например, 4-х канальный осциллограф у которого все каналы идентичны. Мы можем конечно трассировать каждый канал руками, а можем и упростить себе жизнь.
Все, что ранее было описано в статье называется просто — многоканальная схема, звучит просто и со вкусом. Именно такую принципиальную схему мы создали и теперь она нам позволит сделать следующее — развести цепи для одного канала buck, а затем просто скопировать в оставшиеся 5 и расположение компонентов (компоновку) и все проводники. Для начала переносим все наши компоненты с принципиальной схемы в файл с печатной платой, жмем Design -> Update PCB Document:
Теперь жмем Execute Changes и в результате получаем вот такую печатную плату:
Как видите на плате появилось 6 красных зон, которые называются комнатами (Room). В каждой комнате находятся электронные компоненты для одного канала и ничего более. Теперь необходимо задать габариты комнаты, то есть указать какую конкретную площадь будут занимать компоненты нашего канала и сделать компоновку деталей. Выглядит это следующим образом:
Так будут распологаться компоненты каждого канала и именно такую площадь занимать. Правда что-то мне тут не нравится… Ага! Обозначения компонентов в слое шелкографии (белый надписи) имеют не сквозную нумерацию, а нумерацию в формате «Обозначение_Название комнаты», то есть у нас есть резисторы R6_BUCK1, R6_BUCK2 и так далее. Я хочу чтобы не было приставки "_BUCK1" и у каждого компонента был свой номер. Нажимаем Ctrl+L и затем идем в меню Annotate Options, где видим такое меню:
Теперь необходимо выбрать вариант нумерации $ComponentPrefix$GlobalIndex и нажать ОК. Нажимает Reset All чтобы все значения скинуть и затем нажимаем Anotate Designated. Как видим в канале BUCK2 компоненты сменили свои обозначения с R6_BUCK2 на более привычные нам обозначения R6, R7 и т.д.:
Осталось согласиться с изменениями, нажав Accept Changes и в открывшемся окне подтвердить все кликом по Execute Changes. Переносим изменения из схемы на печатную плату Design -> Update PCB Documet как мы уже делали. В результате наблюдаем «человеческие» обозначения, которые не занимают всю плату и гадят в ней:
Имея адекватную компоновку и обозначения переходим к трассировке — выполним трассировку цепей внутри одной комнаты «BUCK6» и получим вот такую картину:
Я не стал разводить все, GND оставил не тронутой, т.к. это обычно единым полигоном заливается. Для демонстрации достаточно. Теперь делаем следующее:
- Идем Design -> Rooms -> Cope Room Format
- Altium нам внизу подсказывает Choose source room, то есть предлагает тыкнуть в комнату с которой нужно все скопировать, в моем случае в BUCK6
- Теперь altium подсказывает ChooseDestination Room, то есть просит ткнуть в комнату в которую нужно скопировать нашу разводку. Выбираем любую из BUCK-ов.
- Откроется меню в котором можно поставить галочку Apply To Specified Channel, которая говорит, что надо скопировать не просто в выбранную комнату, а во все аналогичные.
- Жмем ОК и радуемся!
Я не поставил галку и выбрал кликами 2 канала, т.к. бывают ситуации, когда, например, не все каналы идентичны. Вспомни VRM на материнке у CPU, там часто 3-4 фазы с одной стороны, а еще 3-4 с другой. Применительно к моему случаю это могут быть 3 фазы с одной разводкой и еще 3 фазы с другой. Думаю обща идеология понятна. Теперь давайте посмотрим на результат:
Наблюдаем 3 идентичных канала и самое главное — времени я потратил на все каналы как на 1. В данном абстрактном случае экономия времени в 6 раз, но и в реальных задачах порядок уменьшения трудозатрат примерно такой же. Да и не маловажный фактор — если делать 6 каналов руками, то «глаз замыливается» из-за однотипной работы и велика вероятность допустить ошибку или сделать компоновку кривую.
Итог
Надеюсь вам было интересно узнать об одной из базовых парадигм проектирования электроники и почерпнете для себя что-то новое и полезное. И помните — аккуратность в документации, библиотеках и использование правильных инструментов в САПР позволят вам избежать ошибок и сэкономить кучу времени.
Комментарии (70)
remzalp
19.10.2018 18:51+2и стоит альтиум недорого :)) 200-500 тысяч :))
NordicEnergy Автор
19.10.2018 18:55+4Стоит он дешевле аналогов, а еще можно купить AD для студентов за 100$/год. Если же вас интересует коммерческая разработка, но хочется по бюджетнее, то советую посмотреть на CircuitStudio. Это ПО от Altium и является по сути обрезанным Altium Designer, а самое сладкое цена — 450 евро. Данную сумму себе может позволить любой стартап или фрилансер.
Все знания полученные в AD будут актуальны и для CS. Обрезка там в основном коснулась симуляторов и прочих высокоуровневых фич, которые большинству не нужны. Проект из AD так же открывается в CS без плясок с бубнами + библиотеки так же подходят, поэтому миграция на бюджетное ПО будет безболезненной.nafikovr
19.10.2018 23:53+2многие, почему то, считают что аналоги альтиума это игл и всякие прочие кикады…
nafgne
20.10.2018 00:02-2Не вижу в статье ничего, что не мог бы сделать сферический в вакууме кикад или диптрейс.
NordicEnergy Автор
20.10.2018 01:28+2Ну тогда покажите как в кикаде создать многоканальную схему и чтобы потом можно было сотни каналов в один клик разводить. Тогда продолжим обсуждать.
nafgne
20.10.2018 01:49-1В статье я вижу обыкновенный копипаст, а не «сотни каналов в один клик». Перепиши нормально — тогда и претензии выдвигать будешь.
Andy_Big
20.10.2018 04:55Вы, наверное, плохо смотрели в статью, или говорите о чем-то другом. Потому что это далеко не обыкновенный копипаст. Это отдельная фича, которая на две головы выше копипаста.
holomen
20.10.2018 12:14+1Да, по сути это и есть «обыкновенный копипаст». Но фишка в том, что этот «обыкновенный копипаст» — автоматический, т.е. исключается человеческий фактор практически полностью…
BigBeaver
21.10.2018 18:44+1Для этого в новом Игле есть Design Blocks, как минимум. Не знаю насчет трассировки материнок (ну или других проектов на много тысяч компонентов, о которых говорит автор), но что-то вроде сабжа делается тривиально. А соответственно, и мощь редактора не раскрыта.
NordicEnergy Автор
21.10.2018 19:24-1Задача была не показать мощь редактора, а просто рассказать об одном из сотен инструментов и подходов, который реализованы в AD. «Писькометорство» между САПР — дурная затея. Можно и карандашом на кульмане рисовать материнки и говорить: «Эх, ЭВМ ваш — мусор. Кульман — олдскул!»
BigBeaver
21.10.2018 19:55+1Ну вот в комментариях выше я вижу именно писькомерство))
Эх, ЭВМ ваш — мусор
Никто не говорит, что АД отстой. Он безусловно крут, просто не оправдан на простых задачах ввиду стоимости, вот и все.
p.s. с карандаша вы на производство не отправите.NordicEnergy Автор
22.10.2018 10:44+2Мощь редактора раскрывается наглядно только при сравнение с чем-то другим, а это уже приводит к писькомерству)) Разумеется AD, как и любой проф. САПР, вещь специфическая и нужен он далеко не каждому. Для бюджетного решения есть CircuitStudio за 500$, про него в комментариях уже упоминал выше.
В принципе я AD использовал на 30% от его потенциала, поэтому сейчас пробую CS, он дешевый и для моих задач его хватает с головой.BigBeaver
22.10.2018 10:57Ненене, у вас статья про «сложный проект» и преодоление сложностей силами альтиума. По факту же я вижу, что это примерно так же просто делается в Игле за 10 баксов в месяц. В комментариях же начинается писькомерство, что игл вообще не аналог и прочее кококо.
NordicEnergy Автор
22.10.2018 11:01Нуууу игл не аналог, это разве не очевидно?
1) За 10$ в месяц мы получаем ограничение по размерам платы и количеству слоев
2) Что-то в нем делать кроме рисования нельзя, отсутствие Power integrity и Signal integrity исключает саму возможность топологического анализа
В каком месте то он аналог? Или вы по одному инструменту из сотен судите? В игле можно сделать тоже самое? Где про это можно почитать или посмотреть промо-ролик, возможно я не видел просто.BigBeaver
22.10.2018 11:161) 160 квадратов на 4 слоя это овердофига для огромного спектра задач.
2) Signal integrity есть.
«Аналогичность» зависит от задач. Я еще раз вам говорю, что не отрицаю превосходств АД в определенных сферах, не надо переживать по этому поводу. Просто не надо преподносить его как маст хэв, тк 99% проектировщиков он на самом деле не нужен.NordicEnergy Автор
22.10.2018 11:23+1160 квадратов на 4 слоя это овердофига для огромного спектра задач
Но не для всех, а в AD можно хоть метр на метр распахать. И спектр задач достаточно большой, где нужны платы больше 200 мм, если у вас их нет — это не значит, что другим не надо. 160 квадратов для самодельщиков наверное хватит, не вопрос и собственно не говорю, что Игл для простых задач не подходит.
Я и не пишу свои статьи (все, не только эту) для тех, кого игл и диптрейс устраивает, пишу для тех — кто хочет достичь уровня повыше, но испытывает какие-то трудности.
Вроде как ни в статье, ни в комментариях я не заставляю никого покупать AD (у 90% он все равно с торрентов) и не говорю, что он нужен каждому. Если не так, то покажите где я такое написал, аж интересно стало.BigBeaver
22.10.2018 11:31-1Я с этим спорю?
Я и не пишу свои статьи (все, не только эту) для тех, кого игл и диптрейс устраивает
Но для задач в статьях они более, чем подходят.NordicEnergy Автор
22.10.2018 11:37+1Вас не смущает тот факт, что в статьях я обычно применяю абстрактные задачи, которые скорее помогают раскрыть суть, чем являются каким-то конкретным проектом?
Если выкатить что-то из проектов, то 99,999% просто не поймут происходящего, особенно те, кто пытаются научиться чему-то, а местные хомячки набегут с рассказами «как надо» и «а бы вот так сделал». В итоге 500 комментариев вакханалии))
Меня смутил тот факт, что вы где-то увидели пропаганду с моей стороны о мощи, крутости и чем-то еще. Хотя я в принципе не сравнивал ничего, ибо для любой задачи нужен свой конкретный инструмент. И я уверен, что большую часть задач можно решить и игле, диптрейсе и даже лейауте, но тут статья немного о другом.BigBeaver
22.10.2018 11:45-1Мне вообще не понятен посыл статьи вида «давайте рассмотрим работу со сложным на примере простого», если честно.
NordicEnergy Автор
22.10.2018 11:49Можете поставить минус статье, минус в карму и с чистой совестью не читать. Так делают многие)) К сожалению удовлетворить потребности и представления о мире каждого нельзя.
А вообще я взял просто типичный кусок большого проекта, когда несколько одинаковых частей (каналов) и нужно как-то выйти из ситуации, чтобы не разводить руками. Показал один из вариантов, кому-то поможет, кому-то не понадобится, кто-то заглянет и прочитает по диагонали просто для саморазвития.
nafikovr
21.10.2018 20:30не думаю что статья претендует на полное описание возможностей альтиума.
прелестей альтиума в отрисовке схемы я особых не вижу (читать «не пользуюсь»). а вот на этапе трассировки/подготовки «аналоги» сильно отстают.
Krahmalev
22.10.2018 10:37Последнее коммерческое предложение, которое я видел за связку AD + Solid Pro стоило каких-то 1,2М за 1 рабочее место, что заставляет крепко призадуматься о выборе софта. Хотя и работают в нем поголовно. Заказ ПП сделать из Altium в РФ сильно проще, чем из того же орла. Попробовал CS и с его функционалом работать еще костыльнее, чем перейти на Игл, хотя он меньше подходит для 4+ слоев.
NordicEnergy Автор
22.10.2018 10:41+2AD стоит 3-4к$, солид уже не знаю сколько стоит в базовой версии, но помню что «полный фарш» с PDM на КБ в 12 конструкторов вышел около 100к$. К сожалению солид дорогой, но после него работать в чем-то другом не хочется))
У игла большой минус — размер платы и количество слоев сильно ограничены. 300х200 плата уже в него не влезает (там вроде 180х100 ограничение), а если хочет чтобы влезло, то надо покупать подписку максимальную и тогда уже AD начинает казаться дешевым))
BigBeaver
22.10.2018 10:51+1Заказ ПП сделать из Altium в РФ сильно проще, чем из того же орла.
А в чем сложность? Гербер в один клик делается.
MasMaX
22.10.2018 12:03P-CAD наше все! Старая версия этого Альтиума :-)
NordicEnergy Автор
22.10.2018 13:05Многие наши ВПКшники с ним до сих пора работают и так же считают)) Тут уже кто к чему привык.
gshamshurin
19.10.2018 19:45+2В AD очень удобно работать с вариантами исполнения.
А ещё там есть такой модуль создания документации — Draftsman. В 17 версии правда был сыроват ещё. Если подойти к созданию шаблонов с головой, а к соблюдению ЕСКД-творчески, то он позволяет очень просто формировать КД (сборочник, перечень, спецификация) на монтаж печатных плат реально в несколько кликов. И что не менее важно — транслировать изменения по маршруту схема-->PCB-->документация. Можно поставить автоматическое проставление даты изменения документа. Да много чего в нём удобного.
Правда, если хочется полного соблюдения ЕСКД, то Draftsman не даёт добавлять строки в BOM руками. Поэтому придётся добавлять в проект псевдоэлементы (чтобы в спецификации отразилась сама печатная плата — нужно создать компонент, состоящий из произвольного объекта в неиспользуемом слое, где-нибудь в ValueDescription записать ему децимальный номер печатной платы/наклейки/любой фигни, которую надо внести в спецификацию).
hardegor
19.10.2018 20:40Не очень понятно прописано в какой последовательности рисовать схему.
Наверное изначально рисовать блок-схему Main design в Altium, а потом для каждого блока рисовать отдельную схему и по ходу дела подключать к Main design.NordicEnergy Автор
19.10.2018 20:46+2Лучше изначально нарисовать блок схему на бумаге/доске, по ней уже в AD создать модуль, а из них уже блок-схему верхнего уровня. Просто если вы начнете сразу с блок-схемы, то у вас будет 5 «квадратиков» пустых и все, т.к. на момент создания блок схемы у вас еще нет ни одной цепи и Place Port-ов.
Опять же это мое личное видение картины, я к этому пришел после нескольких проектов. Вы же можете придти к другому мнению и оно тоже может быть верным)
Vitalley
19.10.2018 21:11+1Интересно еще узнать, как в нём генерировать документацию совместимую с ЕСКД.
NordicEnergy Автор
19.10.2018 22:28Есть 3 способа:
1) Сделать самому шаблоны для OutJob. Один раз тратишь пару дней и радуешься всю жизнь. Я поступил именно так.
2) Сделать шаблон для Draftsman. Работал с ним мало, мне показался неудобным приминительно для ЕСКД, т.к. изначально для IPC и ISO заточено все.
3) Есть плагины для генерации документации ЕСКД, например, можно тут почитать: wiki.altium.com/pages/viewpage.action?pageId=52867018
Я проверял его для генерации спецификации и каких-то проблем не увидел, хотя миниму доработки руками все таки есть.
gshamshurin
19.10.2018 22:38+1Шаблоны — «форматки» можно скачать на форумах.
ГОСТовские шрифты ставим в систему.
Каждому компоненту в свойства добавляем свой, пользовательский параметр: Decimal (у большинства компонентов он будет пустым — заполнится только для псевдоэлемента, обозначающего саму печатную плату и разных деталек типа наклеечек — писал выше в комментах — то есть всего остального, что имеет свой децимальник.
Далее идём в Draftsman
Спецификация:
В начало документа Draftsman ставим таблицу — это будет раздел «документация»
Далее вставляем BOM, настраиваем колонки (по памяти пишу) {item} {decimal} {ValueDescription} {CommentKD}
Grouping key оставляем пустым.
ПЭ3 подобным образом, только — логично — другой порядок колонок и Grouping key по RefDes (?)
Чертёж сборочный вообще элементарно. Единственное что — в 17.1 был глюк со снаппингом. То есть после обновления платы при включенном снаппинге в Драфтсмане слетала спецификация. (вместо ID появлялось N/A).
В общем, направление примерно такое, если захотите заняться — сделаете как Вам для Ваших проектов удобнее.
Irritant
19.10.2018 22:28+1Еще стоит упомянуть, что после более-менее вменяемой 17 версии, выпустили 18-ю, где полностью перелопатили интерфейс, добавили новых глюков и не выходя из состояния беты перешли на 19-ю, тоже бету… с новыми и удивительными глюками
NordicEnergy Автор
19.10.2018 22:32-1Хм… у меня лицензия и стабильный релиз только 18.1.9, с сервера альтиума 19-й даже скачать не дает. То, что на торрентах не щупал, не могу судить. Касательно 17 и 18 — дело вкусов. Темная тема — супер, я работаю много по вечерам и ночью, так что мои глаза радуются. Из неудобств могу вспомнить только переработку меню проперти, но 2 недели и привык. Хуже не сделали, просто впервые с 13-й версии переработали немного идеологию UI.
Хотя для меня в 18-й версии главное это переписка софтины на шарп и поддержка на уровне драйверов Quadro P4000 и подобных инженерных GPU. У меня на рабочей станции все стало в разы шустрее работать, а платы в 12-16 слоев начали без малейших тормозов отображаться даже с включенными online DRC.MrShoor
20.10.2018 00:38+1Скажу по секрету. Там нет никакой специфичной поддержки для инженерных GPU типа Quadro. Если вы замените Quadro P4000 на игровую GeForce GTX 1070 (которая в 2 раза дешевле) — то в AD18 вы получите даже чуть лучшую производительность. Другое дело, что возможно у вас стоит другой софт, для которого Quadro P4000 будет лучше.
NordicEnergy Автор
20.10.2018 01:27+1Ждал этого)) У меня P4000 + i7-7700 в рабочей машине и GTX1070Ti + i7-7700 в домашней, так вот банальная проверка Design Rules Check на первой связке выполняется на 40...100% быстрее по времени, зависит от количества правил. Такой вот мини-бенчмарк, многие другие задачи и особенно симуляция во встроенном PDN Analyzer работают так же шустрее.
MrShoor
20.10.2018 03:13+1DRC не использует GPU (вообще не использует), уверяю вас. То, что у вас тесты дают разные результаты — это другая проблема. Может быть правила разные, может память медленная, может CPU уходит в тротлинг.
NordicEnergy Автор
20.10.2018 10:24+2GPU используется для любых вычислений с 18-го, например, для сравнения длинны цепей внутри одного класса. Как говорится информация инсайдерская))
MrShoor
20.10.2018 12:06У вас неверная информация. Да, доля участия GPU несколько увеличилась, но DRC и длины цепей не считаются на GPU. Это я вам как разработчик Altium Designer-а говорю. И я пишу как раз код, который исполняется на GPU. :)
NordicEnergy Автор
20.10.2018 13:00Так вот кто виноват, что многослойки тормозные :D Хм, общаюсь с ребятками с Сан Диего и они говорят совершенно противоположное — странно.
Про медленную память не совсем понял, речь о ОЗУ? Про тротлинг смешно. Проект один и тот же. Конфигурация железа идентичная, разные только GPU, ну и блок питания)) 7700 + 16 Гб DDR4 2666 + SSD M.2 интеловский, вряд ли тут куда-то что-то упрется.splav_asv
20.10.2018 13:13А материнские платы и настройки одинаковые? Не может быть например, что на одной что-то вроде ASUS'овской MCE включено, а на другой нет?
NordicEnergy Автор
20.10.2018 13:16Да, комплекты покупались одновременно, просто в рабочем GTX1070Ti поменял на P4000. Менял в основном для SolidWorks и CST Suite, но в Altium много где обнаружил ускорение. Это чисто эмпирически наблюдения разумеется.
lelik363
20.10.2018 16:52У Вас всё ПО лицензионное?
NordicEnergy Автор
20.10.2018 16:56Все, кроме SolidWorks. Я им пользуюсь достаточно редко и поэтому на моих заказах он не окупится даже за 10 лет. Приходится сидеть на партнерской лицензии, хоть какое-то утешение))
MrShoor
20.10.2018 18:40Так вот кто виноват, что многослойки тормозные
А что именно тормозное?
Хм, общаюсь с ребятками с Сан Диего и они говорят совершенно противоположное — странно.
Действительно странно. Ведь я один из тех ребятенков. :)
Впрочем вы сами можете убедиться, что GPU для DRC не используется. В Win10 в диспетчере задач есть колонка показывающая использование GPU. Если у вас другая Windows, то можете скачать GPU-Z отсюда: www.techpowerup.com/gpuz
Он тоже показывает использование GPU. После этого просто запустите DRC и посмотрите на это использование.
Про медленную память не совсем понял, речь о ОЗУ?
Да, частоты, тайминги.
Про тротлинг смешно.
Ну почему же? Например чуть хуже система охлаждения, процессор греется на 5 градусов выше, и уходит в тротлинг. Проблема может быть много где. Например на одной машине не стоят драйвера на чипсет. В этом случае DMA запросы скорее всего будет обрабатывать процессор, хотя мог бы делать чипсет. Возможно какой-то другой софт замедляет работу. Но совершенно точно могу сказать, что если у вас железки одинаковые, а DRC при этом работает от 30% до 100% быстрее, то это не заслуга Quadro, а какая-то проблема на второй машине. И если остальное железо прям 1 в 1 совпадает, то вторую машину можно заставить работать с производительностью первой.
Leerooooy
20.10.2018 10:33Подтверждаю, GPU в дизайнере влияет не только на работу 3D визуализации. С Quadro интерактив роутинг работает бодрее с большими шинами на которые действует множество ограничений в виде правил.
REPISOT
20.10.2018 06:51Вот, вроде все удобно и понятно для разработчика нарисовано. Но над нами висит ЕСКД и ГОСТ. А Altium не может правильно расставить нумерацию элементов для многоканальной схемы по ГОСТ. А еще он нумерует части компонента буквами (типа DA1.A), а по ГОСТ — надо цифрами.
olegbom
20.10.2018 10:24+1По поводу нумерации: в настройках можно указать параметр «Alpha Numeric Suffix» в положение «Numeric, separated by a dot '.'» и нумерация части компонента будет вполне по ГОСТ (типа R12.1, R12.2). ссылка на документацию
REPISOT
21.10.2018 11:19А должна быть типа 1R12, 2R12 и т. д. Сделаете так? А для 2 разных массивов каналов?
NordicEnergy Автор
20.10.2018 10:271) D1.1 стиль нумерации можно включить, olegbom верно подметил.
2) А что значит правильная нумерация? Я просто в ЕСКД не очень силен. В статье описан момент как сделать сквозную нумерацию компонентов, там же еще множество сценариев различных для нумерации, возможно стоит подробнее там посмотреть.
holomen
20.10.2018 12:37Думаю в статье про многоканальные проекты еще стоит рассказать и про автоматическое размещение комнат, т.к. это именно для многоканальных проектов очень удобно бывает.
NordicEnergy Автор
20.10.2018 12:40Да, смежных вопросов очень много, но ряд технических фич «оставил на потом» чтобы превращать статью в монстра. Все таки статья ориентирована на начинающих разработчиков и тут важно не перегрузить голову им.
Но про размещение комнат и правила вероятно выльются в еще одну статью))
denis-19
20.10.2018 17:002002-2006 гг. в одном НИИ когда работал — была прекрасная связка P-CAD + Protel99SE + AutoCAD.
Прорисовка схематики, заказ элементной базы, внесение элементов в библиотеку протела (тракопауэры и прочее были самые большие, например, там элементы), ручная разводка 4-8-слойных плат, выдача данных в цех (часть плат делались у нас, часть отправляли производить в Тайвань), получение плат, монтаж + ОТК, вибро и прочие стенды (особенно для плат в крейты VME), оформление альбомов чертежей и в печать документации, прогонка и стыковка с программными продуктами и сдача в архив прошивок для ПЛИС… порой на одну такую разработку до 6 месяцев уходило.
И учились работать со всеми программными продуктами в процессе.
AnotherReality
20.10.2018 22:57Не знаю зачем люди так над собой издеваются, перестала оформлять по ГОСТу 4 года назад и не работаю с фирмами где оно надо, зарубежные стандарты более гибкие и удобные.
Вопрос: почему подтяжка I2C отнесена к EEPROM, а не к выходу МК? (схема напрямую влияет на трассировку) Резисторы относятся к шине, а не к слейву.
Модуль ОУ нарисован справа налево. Почему?
Как предложение, если проект не большой и нет особо смысла делать 10 листов, то можно на листе А1-2-3 просто разбить на блоки и подписать:
NordicEnergy Автор
20.10.2018 23:22В моем примере на I2C сидит только память, поэтому у памяти резисторы. Если бы было несколько устройств на шине, то уже правильнее к МК отнести или вынести все устройства на данной шине в отдельный модуль, в нем поставить резисторы, а на Place port вытащить просто SDA и SCL. Опять же — субъективно.
Разбивание на блоки и подписывание — это прекрасно пока проект действительно небольшой. Как написано в статье: «до какого-то момента можно рисовать что угодно и как угодно», но вот на одном А2 я с трудом себе представляю несколько сотен компонентов, не говоря о читаемости.
Кстати, в прикрепленных примерах коряво стоят номиналы, например R4 сливается с УГО, а у С1 «10V» там явно излишни. Суть не в стандартах, а в аккуратности исполнения. Не вижу никакой разницы между ЕСКД и ISO, ваш пример все равно ни под один из этих стандартов не подходит, как собственно и мой в статье)) Думаю тут уже каждый сам выбирает свой стиль.AnotherReality
21.10.2018 00:14Масштаб бедствия зависит исключительно от масштаба УГО =) у меня УГО крупные, поскольку я рисую их в сетке 5мм, и схему в этой же сетке. Хотя зарубежные друзья используют 2.5мм, в Америке 2.54. На вкус и цвет, большинство схем можно вместить пусть и в А1, но подписав и добавив справочную информацию — очень удобно трассировать и навигация попроще.
Вот сейчас проц, память, изернет, 6 листов (больших) счастья, 300 одних конденсаторов :D Но я все равно подписываю блоки и расставляю их в читабельном виде (слева блоки входные, справа выходные) + справочная информация.
Да и зарубежные стандартны не ограничиваются одним ISO, это к справке. Они хоть и обновили свой стандарт, но лучше он не стал. Имхо, но важно однообразие документации и исчерпываемость. Если стандарт требует костылей — в топку. Что по сути нужно? Документация для:
1. Производства (гербера, сверловка)
2. Закупок (БОМ с партнамберами)
3. Монтажа (монтажка, БОМ)
4. Проектирования корпуса (чертеж, 3д модель)
(По ЕСКД есть еще куча смежных документов и ненужного гемора, без которого жить можно, но нет).
Расстановка номиналов наименьшая из проблем в проекте ;) это правится после того, как есть зеленый свет на подготовку документации.
А почему вольтаж у конденсатора излишен? В данном случае это параметр маркировки, то что отображается на механическом слое; параметр Comment на него ссылается.NordicEnergy Автор
21.10.2018 00:232.5 — это вообще жуть. По началу, как изучать начинал, сделал либы в такой сетке и какой-то треш вышел, ушел на 5 тоже))
А1 — сильно жирно, на А4 листе если печатаешь, то мелко слишком, а покупать плоттер жирно. У меня и монтажники себе бумагу печатаю и наладчики мол удобнее, чем в монитор на стенке смотреть.
В принципе я тоже одно время делил на блоки как вы внутри одного листа, не могу сказать, что это плохо — вполне удобно. Один минус — нет возможности копировать форму room и копировать трассировку по каналам, а в определенных проектах это решает. Как-то делал проект, там fpga была и 100+ каналов АЦП на SPI, мультиканальная схема очень много времени мне сэкономила))
ЕСКД я и сам не люблю, правда для меня это скорее стиль УГО, чем набор всяких спецификаций дополнительных и прочей мешуры.
Зачем на схеме напряжение кондера? Если он стоит, то понятно что по напряжению проходит и выше, чем VCC. Для отображения в механическом слое, например, для сборочного чертежа, можно ввести дополнительный атрибут и в нем хранить информацию.AnotherReality
21.10.2018 14:14А зачем монтажнику схема? Монтажнику нужна монтажная документация — плата, размещение компонентов, позиционные обозначения, маркировка, бом, но не схема. Ну и печатать документацию — совок какой-то. Сколько работаю со своим монтажником, он всегда с монитора смотрит, зачем переводить деревья?)
NordicEnergy Автор
21.10.2018 14:42У нас монтажники чуть умнее обычных тетенек-ботов и на эксперементальных образцах очень выручают, ибо в процессе сборки прототипа смотрят и в монтажную схему, и в сборочный чертеж и на принципиальную схему — периодически выявляют ошибки, что позволяет не палить устройство. Некая подстраховка разработчиков всегда полезна.
Sergey-Pro
20.10.2018 23:22Много сейчас статей про Altium. Неужели он так хорош, по сравнению с Cadence Allegro, например? Если у кого есть опыт работы в обоих пакетах, поделитесь впечатлениями пожалуйста. Я в Аллегре рисую, и всем доволен.
NordicEnergy Автор
20.10.2018 23:25Надо пробовать, на вкус и цвет фломастеры разные. Я работал и в том, и в том пакете (в кейдансе правда не очень долго) и под мои проекты удобнее использовать AD. Если бы работал со сложной цифрой, то выбрал бы наверное уже cadence.
nafikovr
21.10.2018 20:28+1cadence все таки занимает несколько другую нишу. ну и порог вхождения выше. при том что у альтиума тоже далеко не самый низкий порог (привет диптрейсам)
nerudo
Кстати, глядя на КДПВ, хочется спросить: во времена когда в сеть утекло все что можно, чуть ли не ДНК Цукерберга — не встречал ли кто схем/pcb относительно современных материнских плат (PC)? В качестве референса ну и просто из любопытства.
NordicEnergy Автор
Материнки обычно делают в Cadence, можно в англоязычном гугле поискать. Думаю наверняка есть. Еще можно посмотреть на пример в AD с первой картинки, там SoC Arria 10 + DDR4 + прочие интересные интерфейсы.
Inanity
Уже, наверное, не самый свежий, но тем не менее впечатляющая работа: habr.com/post/185810
Исходники этой матери в altium: www.kosagi.com/w/index.php?title=Novena_PVT_Design_Source
NordicEnergy Автор
Годнота! Эх, статье 6 лет, а ни разу не попадалась.