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

KiCad для начинающих. §4 Создаем свой компонент. Часть 3

Пора переходить к более сложной задаче - созданию компонента состоящего из нескольких частей. Почти все необходимое мы уже знаем, осталось разобраться с некоторыми особенностями таких компонентов. Этим сегодня и займемся. Но сначала нужно определиться, что это вообще такое "компонент состоящий их нескольких частей". Прежде всего, такой компонент можно представить как объединение нескольких отдельных компонентов в едином корпусе. Причем эти отдельные компоненты могут быть как независимыми, так и взаимосвязанными. Не менее важно, что каждый из отдельных компонентов может быть размещен на схеме самостоятельно, независимо от других. Наиболее популярным примером компонента состоящего из нескольких частей является микросхема 4х2И-НЕ (например, классика жанра К155ЛА3). Эта микросхема состоит из 4 независимых элементов 2И-НЕ. Объединенные цепи питания, в данном случае, роли не играют. Электромагнитное реле является примером компонента с зависимыми частями. Контактная группа (группы) реле связ
Оглавление

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

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

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

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

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

Некоторые особенности реализации

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

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

Согласно ГОСТ, катушка реле обозначается буквой K с последующим порядковым номером. Например K1. А контакты реле обозначаются буквой К с последующим порядковым номером катушки и следующим через точку номером контактной группы. Например, К1.1

Но KiCad присвоит обозначение К1.1 именно катушке, а контактная группа будет обозначаться К1.2. То есть, обозначение не будет соответствовать ГОСТ. И изменить это нельзя.

Во вторых, включить/выключить отображение номеров и имен (и расположение имен) выводов можно только для компонента в целом. Если это по какой либо причине не устраивает, то возможно придется отказаться от отображения имен и номеров выводов, а в нужных местах использовать текстовые элементы. Как вариант, можно для некоторых выводов не указывать имена, но номера задавать обязательно в любом случае.

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

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

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

Создаем компонент с взаимозаменяемыми частями. Классика К155ЛА3

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

Здесь вам уже практически все знакомо. Имя компонента задаем латинскими буквами, я говорил об этом в предыдущих статьях. В данном случае параметр "Кол-во частей на корпус" уже является важным. К155ЛА3 содержит 4 одинаковых элемента 2И-НЕ в корпусе. Количество частей можно изменить уже после (или во время) создания компонента. Но я советую сразу задавать необходимое.

Поскольку мы решили, что части будут взаимозаменяемыми, параметр "Все части не взаимозаменяемы" оставляем не отмеченным. Номера выводов нам нужны, а вот имена нет. Все, теперь можно нажимать "ОК".

А теперь посмотрим на инструменты редактора, с которыми мы раньше не работали

-2

Как я уже сказал, редактирование состоящего из нескольких частей компонента реализовано неудобно. Мы не можем "окинуть взглядом" компонент в целом. Мы можем рассматривать лишь каждую часть по отдельности. Выбор редактируемой части осуществляется селектором со списком всех частей. В данном случае части обозначены номерами, но могут быть обозначены и буквами A, B, C, D. Это определяется настройками. В данном случае тип обозначения не важен.

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

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

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

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

Теперь разместим три вывода, как делали это и раньше. Два входа, с номерами 1 и 2 и именами A и B. И один выход, с номером 3 и именем Y. Переключим сетку на шаг 0.635 мм. Добавим текстовый элемент "&", которым обозначают логические элементы И. Добавим кружок показывающий инверсию выхода. Должно получиться примерно так

-3

А теперь посмотрим, что у нас получилось с другими частями. Переключимся на вторую часть. А там увидим такое

-4

Не совсем то, что мы ожидали увидеть! KiCad неправильно работает? Не пугайтесь, все работает правильно, и мы никаких ошибок не допустили. Просто вспомните, что в синхронном режиме редактирования номера выводов задаются для каждой части отдельно. А для второй части мы их пока не задавали. Просто KiCad заполнил поле "Номер вывода" номером заданным нами при создании вывода, но добавил к нему информацию о части. U - от unit, а В соответствует второй части.

Такое копирование заданной при создании вывода информации было не всегда. А будет ли оно теперь всегда, никто не знает.

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

-5

После исправления номеров выводов все станет таким, каким и должно быть

-6

Теперь вы можете выбрать первую часть и убедиться, что там все осталось таким, как было.

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

-7

Однако, у нас пока не хватает выводов питания. Эти выводы являются общими для всех частей компонента. Давайте их добавим. Для этого переключимся на сетку с шагом 1.27 мм. Какая именно часть выбрана сейчас совершенно не важно. Добавим вывод "земли", отрицательно полюса источника питания.

-8

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

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

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

Напоминаю, что это применимо только к выводам с типом "вход питания".

Разместим вывод так

-9

Самостоятельно добавьте вывод Vcc с номером 14, который соответствует положительному полюсу источника питания. Он тоже должен являться входом питания и быть невидимым. Результат

-10

Можете убедиться, что теперь выводы питания, причем с уже правильными номерами, появились во всех частях компонента. Посмотрите таблицу выводов и увидите, что и там все правильно.

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

Сложности со скрытыми выводами. Добавляем выводы питания как отдельную часть компонента

Скрытые выводы питания это общепринятая практика, но они могут доставить и неприятности. Вспомните, что они подключаются к соответствующим цепям автоматически, по именам. А если у разных компонентов имена выводов питания тоже разные? Например, вывод "Vcc" вполне может иметь и имя "Vdd", и "+5V". А вывод "Gnd" может называться и"Vss".

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

Или включить отображение скрытых выводов в редакторе схем.

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

Снова открываем его в окне редактора. Убеждаемся, что включен синхронный режим редактирования. Выбранная часть не важна. Удалим выводы 7 и 8. Они удалятся из всех частей.

Теперь откроем свойства компонента и увеличим число частей с 4 до 5. Переключимся на новую, пятую, часть. Мы увидим, что на самом деле новая часть это просто копия первой части. Это, конечно, неправильно. Давайте все исправим.

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

-11

На иллюстрации показаны свойства вывода Vcc. Обратите внимание, что мы теперь сняли отметку с параметра "Общий для всех частей компонента", так как теперь вывод у нас относится только к одной, пятой, части компонента. И теперь это видимый вывод.

Добавим прямоугольник, что бы обозначить часть компонента. Получится примерно так

-12

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

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

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

Теперь в нашем компоненте есть не взаимозаменяемые части. И не имеет значения, что на самом деле такая часть лишь одна. В текущей версии KiCad (5.1.10) у нас есть только один выход, в свойствах компонента отметить параметр "Все части не взаимозаменяемы". Сделайте это.

Теперь наш компонент готов и мы можем сохранить его в библиотеке.

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

Создание компонента с не взаимозаменяемыми частями

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

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

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

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

Заключение

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

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