Найти тему
Разумный мир

KiCad для начинающих. §1 Общий взгляд. САПР, CAD, EDA

Оглавление

Времена, когда схемы и чертежи печатных плат рисовали на бумаге, давно прошли. Сегодня практически все этапы проектирования электронных устройств выполняются с помощью компьютеров. От первых набросков идеи до готовой печатной платы с установленными компонентами. Исключением является, пожалуй, только макетирование с использованием реальных компонентов, если математическое моделирование оказывается недостаточным.

Это позволило значительно сократить сроки разработки и существенно облегчить процесс. Но вместе с тем и повысило сложность обучения новичков, затруднило начало практического использования средств автоматизации проектирования. И дело тут не только в сложности программ, даже любительского уровня. Новичку бывает сложно освоиться и в тех основах и подходах, которые лежат в основе построения систем автоматизации.

И если руководства по работе с программами часто входят в комплект поставки, а с коммерческими и профессиональными программами они поставляются обязательно, то вот с описанием основ и подходов возникают затруднения. Зачастую считается, что они уже должны быть известны и поэтому или не описываются вообще, или описываются очень кратко, лишь особенности для конкретной программы.

Что бы помочь новичкам освоить одну из популярных программ - KiCad я и решил написать этот небольшой цикл статей. А сегодняшняя статья будет посвящена основным принципам, которые помогут новичкам понять, почему KiCad и программы подобные ему устроены именно так.

Не смотря на то, что в статье рассказывается большей частью о KiCad, она носит достаточно общий характер. В той, или иной, степени все сказанное в статье будет верным и для других систем.

САПР, CAD, EDA

Термин САПР знаком всем - Система Автоматизированного ПРоектирования. Именно автоматизированного, а не автоматического. Причем без детализации, как именно эта автоматизация обеспечивается.

Международное название таких систем CAD - Computer-aided design. Дословный перевод - компьютерная помощь в разработке. И здесь уже четко говорится, что в основе автоматизации лежит использование компьютера, ЭВМ. Нетрудно заметить, что в слове KiCad присутствует и собственно CAD.

Ни термин САПР, ни термин CAD не выделяют, проектирование чего именно помогает осуществить система. Это могут быть как электронные устройства, так и механические узлы, или строительные блоки.

Системы автоматизации проектирования именно электронных устройств носят международное обозначение EDA - electronic design automation. Таким образом, становится понятными и полное название

Откуда взялось название комплекса программ Kicad EDA. Иллюстрация моя
Откуда взялось название комплекса программ Kicad EDA. Иллюстрация моя

Системы автоматизации проектирования электронных устройств обычно обеспечивают:

  • Создание и редактирование принципиальных схем
  • Создание и редактирование библиотек компонентов
  • Создание и редактирование печатных плат
  • Проверку на наличие ошибок в принципиальных схемах и печатных платах
  • Подготовку данных для производства печатных плат
  • Формирование списков для заказа электронных компонентов используемых в устройстве

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

Соответствие мира реального и мира EDA

В реальном мире человек может нарисовать на бумаге, или в любой графической программе и распечатать, схему. Просверлить в кусочке текстолита отверстия, нарисовать дорожки. Протравить получившуюся плату и установить на нее компоненты.

Отдельные этапы могут быть мало связанными между собой. Схема может быть нарисована совсем другим человеком. В ней могут использоваться другие комплектующие, или в других корпусах. Можно что-нибудь изменить на схеме и это не обязательно приведет к изменению печатной платы. Изменение печатной платы не обязательно будет отражено на схеме.

В мире систем автоматизации, полноценных систем, все немного по иному. Процесс проектирования является сквозным, то есть, охватывает все этапы и объединяет их в единое целое. Любое изменение схемы отражается на печатной плате, и наоборот. Теперь мы работаем с проектом, а не с разрозненными сущностями. Все этапы существуют не сами по себе, а в рамках проекта, как части единого целого.

И смысловое наполнение отдельных терминов и этапов тоже изменяется. Давайте сначала посмотрим на схему процесса проектирования, а затем перейдем к рассмотрению ее основных этапов

Упрощенная схема основных этапов проектирования электронных устройств в САПР (EDA). Иллюстрация моя
Упрощенная схема основных этапов проектирования электронных устройств в САПР (EDA). Иллюстрация моя

Красным цветом показаны основные этапы проектирования, а синим дополнительные данные, которые используются при проектировании. Если собственно этапы, в большинстве своем, понятны и привычны, то с дополнительными данными уже могут возникать вопросы. Поэтому давайте разбираться.

Компоненты и библиотеки компонентов

Не всегда очевидно, что УГО (условное графическое обозначение), которое мы используем для рисования схем, и занимаемое на печатной плате место на самом деле неразрывно связаны между собой, являются составляющими единой сущности. Размещая элемент на схеме мы тем самым определяем и то, как он будет выглядеть и как разместится на печатной плате.

И это весьма важное отличие от проектирования устройства без использования САПР. Теперь мы не просто рисуем или размечаем места под отверстия, теперь мы используем компоненты. Что же включает в себя компонент? Если кратко, то:

  • УГО. Именно этот символ и будет нарисован на принципиальной схеме когда мы выберем компонент. Важно понимать, что это лишь рисунок, графическое изображение, и не более того! А значит, мы можем использовать компоненты, которые не являются реальными деталями. Например, надписи и логотипы.
  • Список выводов с указанием их имени и типа. Без списка выводов компонент может быть отображен на схеме, но не может быть подключен к схеме! Выводы отображаются на схеме в дополнение к УГО, поверх его. Можно нарисовать сколь угодно сложное УГО и добавить к нему лишь необходимое количество выводов. Каждый вывод имеет имя и/или номер. Каждый вывод относится к одному из предусмотренных системой типов, например, вход цифровой, выход цифровой, аналоговый, выход питания, и т.д.
  • Посадочное место. Изображение и тип контактных площадок, которые используются для размещения компонента на печатной плате. Для выводных компонентов площадка не только имеет форму, но и задает диаметр отверстия или его форму и размеры. Кроме того, отверстие может быть как с металлизацией, так и без. Дополнительно могут задаваться форма и размеры устанавливаемого на плату элемента, тип монтажа (вертикальный, горизонтальный, перевернутый, и т.д.), расположение крепежных отверстий, и прочие атрибуты.
  • Дополнительные атрибуты. Могут быть самыми разными. Например, ссылка на документацию, адрес предпочтительного поставщика, 3-х мерную модель корпуса, дополнительные указания для монтажников, и т.д.

Как хорошо видно, компонент это целостная сущность, которая содержит исчерпывающую информацию о реальном электронном компоненте, которая нужна на всех этапах проектирования. Каждый компонент имеет имя, которое и используется для работы с ним. Кроме того, компонент может быть как простым, например, транзистором, так и сложным, состоящим из нескольких составных частей. Например, микросхема 4х(2И-НЕ), электромагнитное реле (обмотка и контакты), и т.п.

Отдельные элементы объединяются в библиотеки для удобства работы с ними. Например, могут существовать библиотеки компараторов, ОУ, полевых транзисторов, стабилитронов, и т.д.

KiCad

В KiCad компоненты не являются неделимым объектом. В отличии от некоторых других систем и программ, например, Eagle (более недоступен в РФ). Насколько это удобно, каждый решает сам. Я считаю, что не очень удобно. В KiCad каждый компонент состоит из трех частей:

  1. Символ (symbol). Включает в себя УГО, список выводов, ссылку на посадочную площадку
  2. Посадочное место (footprint). Самостоятельный элемент, может использоваться на печатной плате без добавления к схеме. Включает в себя ссылку на 3-х мерную модель корпуса
  3. 3-х мерная модель корпуса. Самостоятельный элемент, но сама по себе использоваться не может. Только будучи связанной с посадочным местом. Может отсутствовать

Такая организация разрушает семантическую целостность, хотя и позволяет получить определенную гибкость, иногда ценной повышения риска ошибки. Например, можно заменить посадочное место элемента на плате не изменяя элемент на схеме. При этом новое посадочное место может иметь совсем другую цоколевку (связь имен выводов элемента с номерами выводов корпуса).

Давайте посмотрим на пример описания компонента в KiCad. Будет использоваться версия 5.1.10. Вот символ, который используется в схемах

Пример символа в KiCad с указанными именами, номерами, типами выводов. Иллюстрация моя (символ создан тоже мной)
Пример символа в KiCad с указанными именами, номерами, типами выводов. Иллюстрация моя (символ создан тоже мной)

Здесь мы видим графическое изображение символа, в первую очередь. Кроме того, созданы и расставлены выводы. Их точки присоединения обозначены окружностями, отрезки прямых от точки присоединения до УГО являются лишь графическими дополнительными элементами. Для выводов видны их имена (голубым цветом), номера (коричневые цифры), тип (синим цветом).

Часть обозначения символа уже задана, в данном случае это DD (цифровой элемент), к которому в схеме будет добавлен порядковый номер. Задано и наименование символа - DS1629S.

Кроме того, видна и ссылка на посадочное место, она показана светло-серым цветом под символом. Пусть вас не смущает перекрестие в центре символа, так показана точка привязки элемента на графическом рисунке схемы.

А теперь посадочное место для этого символа

Пример посадочного места в KiCad. Видны контактные площадки с номерами и элементы маркировки места на плате и документации. Символ взят из библиотеки KiCad
Пример посадочного места в KiCad. Видны контактные площадки с номерами и элементы маркировки места на плате и документации. Символ взят из библиотеки KiCad

Контактные площадки показаны бардовым цветом. Голубым цветом показаны наносимые на печатную плату элементы маркировки. Вместо REF** будет нанесено обозначение, которое присвоено компоненту в схеме.

Наименование посадочного места, видно, что оно совпадает с тем, которое было указано для символа, на плату нанесено не будет. Это часть информации для документации на устройство. Как и второе REF** показанное серым цветом. Вокруг посадочного места показан прямоугольник, который ограничивает его размеры. Такая граница должна быть у каждого посадочного места, создается она вручную. Границы посадочных мест на плате не должны пересекаться, это средство контроля ошибок.

Ну и наконец 3-х мерное изображение корпуса, для которого это посадочное место и создано

Пример 3-х мерного отображения корпуса соответствующего посадочному месту. Из библиотеки KiCad
Пример 3-х мерного отображения корпуса соответствующего посадочному месту. Из библиотеки KiCad

3-х мерное изображение есть не для всех посадочных мест. По большому счету, оно вообще не обязательно. Но оно позволяет более наглядно увидеть "виртуальный макет" печатной платы.

Подробнее о компонентах и их создании будет рассказано в отдельных статьях.

Принципиальная схема, создание и редактирование

Теперь мы можем размещать компоненты на принципиальной схеме и соединять их между собой. Обратите внимание, что мы не можем просто нарисовать на схеме, например, транзистор. Мы должны выбрать соответствующий компонент из библиотеки. И это будет не абстрактный транзистор, а совершенно определенный. Например, КТ315Б, BC847, или любой другой.

И выбирая компонент мы автоматически (если библиотеки построены правильно) обеспечиваем и всю необходимую для последующих этапов разработки информацию. Да, возможно существование недоопределенных компонентов, например, без связи с посадочным местом. В этом случае нам потребуется добавить необходимую информацию вручную позже.

Пример выбора компонента (символа) для размещения на схеме. Библиотеки компонентов и сами компоненты созданы мной
Пример выбора компонента (символа) для размещения на схеме. Библиотеки компонентов и сами компоненты созданы мной

Выбрав компонент мы размещает его на схеме в любом нужном нам месте. И мы можем впоследствии перемещать его, поворачивать, копировать. Каждый размещенный на схеме компонент имеет свое условное обозначение (Reference) и наименование/значение (Value). Здесь нет ничего непривычного. Например, резистор может получить обозначение R5 и значение 10 кОм. Причем значение сопротивления мы сможем изменять без влияния на посадочное место. А транзистор может, например, получить обозначение VT2 и наименование 2N7002, причем изменить наименование мы не сможем.

Разместив компонент мы можем соединить его с другими компонентами. Для этого используются проводники/связи (wire). Причем мы соединяем именно выводы компонента, которые и являются точками присоединения, с другими выводами или связями.

Пример схемы с несколькими размещенными символами компонентов и соединенными связями выводами. Видно размещенный, но еще не подсоединенный, компонент C6 (в верхней части). Некоторые связи имеют заданные имена (Vpp, PGD, PGC, справа внизу). Фрагмент одной из моих схем.
Пример схемы с несколькими размещенными символами компонентов и соединенными связями выводами. Видно размещенный, но еще не подсоединенный, компонент C6 (в верхней части). Некоторые связи имеют заданные имена (Vpp, PGD, PGC, справа внизу). Фрагмент одной из моих схем.

Каждая связь имеет собственное имя (имя цепи), даже если оно не отображается на схеме. Если нас не устраивает автоматически присвоенное программой имя мы всегда можем задать свое. Причем такое имя уже будет отображаться на схеме. Причем одно и тоже имя может быть присвоено разным связям. Такие связи будут автоматически объединены в одну, даже если их видимое соединение отсутствует.

С помощью шин (bus) можно сгруппировать связи. Точно так же, как это делается в схемах на бумаге. Однако, во многих системах шины являются лишь графическим средством, и KiCad здесь не является исключением. Я не буду сегодня приводить пример изображения шин, это будет сделано в последующих статьях.

Простые схемы могут умещаться на одном листе. Для больших и сложных схем можно использовать иерархическое разбиение на более простые подсхемы, каждая из которых будет размещаться на отдельном листе. Построение иерархических схем будет рассматриваться в последующих статьях. Сегодня только отмечу, что и связи в иерархических схемах будут иерархическими. То есть, в пределах листа, в пределах всей схемы, с ручной связью между листами. Мы все это со временем увидим.

Проставление порядковых номеров компонентов (аннотацию) я сегодня затрагивать не буду.

Правила проектирования (электрические)

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

Например, нельзя соединить два выхода, но можно соединить два двунаправленных вывода. При этом контроль за состояниями этих выводов возложен на разработчика, система его проверить не может. Нельзя оставлять не подключенными входы, за исключением специально помеченных как "не подключено". Нельзя соединить два выхода питания. Нельзя оставить не подключенным вход питания.

Контроль ошибок (электрических)

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

Еще раз отмечу, что проверки довольно просты и могут выявить только явные ошибки, но не логические ошибки разработчика.

Построения списка цепей

На данном этапе наша схема является всего лишь рисунком, хоть и построенным из специальных элементов в специальном графическом редакторе. Построение списка цепей создает описание, с которым может работать программа редактирования печатных плат. Включая автоматический трассировщик, если он есть в системе.

Создание списка цепей очень простое, для пользователя программы. В результате просто создается еще один файл, который и будет использоваться в дальнейшем.

Но в современных программах, и современных версиях KiCad, построение списка цепей зачастую прячется за кнопкой "запустить редактор плат". Это не означает, что список цепей не строится, как некоторые думают. Просто это теперь делается "за кулисами" видимых пользователю действий.

Технологические правила

А вот это уже набор правил, который разработчик настраивает под требования своей задачи и изготовителя печатных плат, который будет впоследствии выполнять заказ.

Эти правила тоже могут называться правилами проектирования, только они уже не электрические, а механически, геометрические, технологические. Например, задается минимальная ширина дорожки печатной платы и минимальное расстояние между двумя дорожками. Расстояние от дорожек и контактных площадок до границ платы. Размеры переходных отверстий и нужно ли закрывать их маской.

В KiCad в настоящий момент настраиваемых технологических правил так не много, а изменение некоторых их них и очень неочевидно расположены.

Технологические правила используются и в процессе работы с платой, например, при прокладывании дорожки соблюдается зазор до других дорожек, и при последующей проверке платы на ошибки.

Печатная плата, создание и редактирование

Исходными данными для создания печатной платы является список цепей, который мы создали из принципиальной схемы. Вся необходимая информация в нем уже есть. Не считая размеров печатной платы и взаимного расположения компонентов. Задать размеры платы и расположить компоненты (они уже есть на плате, но не размещены, как надо) должен разработчик.

Печатные платы могут быть и простейшими односторонними, и более сложными двухсторонними. И даже многослойными. Разумеется, компоненты размещаются на двух (или одной) наружных сторонах (наружных слоях). А вот дорожки, которыми соединяются контактные площадки посадочных мест, могут располагаться в любом слое, включая внутренние.

Для соединения дорожек в разных слоях используются переходные отверстия (via) Причем они могут быть как сквозными, проходящими через всю толщину платы, так и затрагивать только внутренние слои.

Прокладывание дорожек платы, трассировка, процесс трудоемкий. Автоматический трассировщик, несмотря на привлекательность, далеко не всегда оказывается успешен. Поэтому ручного труда избежать удается не часто. В процессе трассировки можно изменить расположение посадочных мест на плате, но сами посадочные места изменить нельзя.

Иногда все таки можно, но сегодня об этом не будем.

Программа редактирования печатных плат оказывает помощь разработчику не только позволяя передвинуть посадочные места, но и автоматически соблюдая технологические правила. Если дорожку нельзя проложить так, как ее ведет разработчик, программа может передвинуть или разорвать уже проложенные дорожки (автоматически) или обогнуть препятствие.

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

Что бы облегчить отслеживание еще не соединенных контактных площадок, они показываются "воздушными линиями" (тонкими белыми прямыми).

Фрагмент печатной платы с незавершенной трассировкой. Кроме "воздушных линий" видны имена связей (сигналов). Фрагмент печатной платы, на которой я обучал друга работе с KiCad
Фрагмент печатной платы с незавершенной трассировкой. Кроме "воздушных линий" видны имена связей (сигналов). Фрагмент печатной платы, на которой я обучал друга работе с KiCad

То есть, трассировать печатную плату с САПР гораздо удобнее, а количество ошибок будет меньше.

При включенном автоматическом соблюдении технологических правил программа просто не даст соединить контактные площадки, которые не должны соединяться по схеме. Если соблюдение правил отключить, станет возможным соединять любые площадки и дорожки. При этом внесенные несоответствия могут отразиться и на схеме.

Более того, можно работать с платой и вообще без схемы. Так же, как в простейших любительских программах. Но придется вручную выбирать посадочные места для размещения на плате. Кроме того, теперь не будет поддержки со стороны программы в виде отображения не соединенных площадок, и запрета ошибочных соединений.

Контроль ошибок (технологических)

После того, как трассировка платы завершена, можно (нужно!) выполнить проверку на допущенные ошибки. Просто не все технологические правила можно проверять "на лету". Проверка позволит обнаружить ошибочно соединенные дорожки, или ошибочно не соединенные, найти слишком близко расположенные дорожки и слишком тонкие, и т.д.

Как и проверка на электрические ошибки, проверка технологических правил не является абсолютной гарантией того, что все ошибки найдены и исправлены. Но вероятность получить плату без ошибок значительно увеличивается.

Формирование данных для производства

На самом деле, "производить" плату можете и вы сами. Только "данными для производства" в этом случае будет распечатанная на бумаге (для ЛУТ) или пленке (для фоторезиста) печатная плата (дорожки) в масштабе 1:1.

Если же плата будет заказываться, например, на JLCPCB (популярный у любителей сервис), то потребуется сформировать набор файлов в специальном формате. И отправить эти файлы производителю (загрузит на сайте JLCPCB).

Пожалуй, самым распространенным форматом будет Gerber. В этом формате для каждого слоя печатной платы создается отдельный файл. Причем слоями считаются и маска, и шелкография (надписи на плате). Для двухсторонней платы потребуется 6 Gerber файлов:

  • Два слоя меди (дорожки), так как две стороны платы
  • Два слоя маски
  • Два слоя шелкографии (надписи)

Кроме того, потребуется файл с границами печатной платы и файлы для сверления и металлизации отверстий (обычно в формате Excellon).

Разумеется, любая более менее серьезная EDA позволяет сформировать все эти необходимые файлы. А заодно, и распечатать плату для самостоятельного изготовления. Ведь при этом Gerber файлы просто не нужны.

Формирования списка для закупки (BOM)

Любителям требуется не часто, но тоже бывает полезен. Формирование такого списка возможно в различных вариантах. В основном такой список содержит полное перечисление использованных компонентов с указанием их наименования/значения и количества. В некоторых случаях, если для компонентов указаны поставщики, возможна и автоматическая отправка заказа на закупку поставщику.

Заключение

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

В последующих статьях мы будем гораздо подробнее рассматривать и эти, и не затронутые сегодня моменты. Если конечно читатели не потеряют к этому интерес. В конечном итоге, вы, надеюсь, научитесь использовать KiCad для своих самоделок. А возможно, и в своей работе.

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

До новых встреч!