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

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

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

В качестве подопытного кролика сегодня выступит полевой транзистор IRLMS2002PbF. Это N-канальный полевой транзистор с изолированным затвором. Максимальное напряжение сток-исток 20 В. Максимальный ток стока (при 70 градусах) 5.2 А (при напряжении затвор-исток 4.5 В). Максимальная рассеиваемая мощность (при 70 градусах) 1.3 Вт. Максимальное напряжение затвор-исток 12 В.

Сопротивление канала не превышает 0.03 Ом, при напряжении затвор-исток 4.5 В, и 0.045 Ом при напряжении затвор-исток 2.5 В. Входная емкость, типовая, 1310 пФ. То есть, это весьма неплохой транзистор, которым можно управлять логическими уровнями, например, микроконтроллера питающегося и от напряжения 5 В, и от напряжения 3.3 В. И корпус у него небольшой, SOT23-6.

В документации этот транзистор показан так

Цоколевка транзистора IRLMS2002PbF. Из документации
Цоколевка транзистора IRLMS2002PbF. Из документации

Создаем новый компонент

Безусловно, в стандартных библиотеках KiCad можно найти готовый компонент N-MOSFET и использовать его в качестве заготовки. Но сегодня наша цель не использовать готовое, а научиться создавать свое.

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

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

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

-2
Буквы PbF в конце имени обозначают "вариант без свинца". У других производителей это обозначение может быть иным. Но суть одна - компонент может существовать в двух вариантах - обычном (IRLMS2002) и безсвинцовом (IRLMS2002PbF). Является ли это важным для вас, стоит ли выделять этот факт, можете решить только вы сами.
Другим, еще менее важным, признаком является указание типа упаковки. Например, TR будет означать поставку на рейке, а без TR россыпью.
Таким образом, возможны варианты IRLMS2002, IRLMS2002TR, IRLMS2002PbF, IRLMS2002TRPbF, IRLMS2002PbFTR. При этом внутри это один и тот же транзистор!

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

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

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

Поле "Смещение текста вывода" оставляем без изменений. А с трех последних полей снимаем отметки. Отображать номера выводов для транзисторов не принято. Даже в случае нашего корпуса SOT23-6. Так же принято отображать и названия исток, сток, затвор. "Имя вывода внутри" влияет на расположение имени относительно символа, а мы имена выводов отображать не будем.

Вы можете самостоятельно поэкспериментировать с управлением отображения номеров и имен выводов. Это можно сделать не только при создании компонента, но и позже.

Теперь можно нажать "ОК". И мы увидим что по похожее на такое

-3

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

-4

Мы может переместить поля "Значение" и "Обозначение" в сторону, что бы они не мешали рисовать символ. Перемещение осуществляется командой MOVE (горячая клавиша М), подробнее в документации (да, читать ее обязательно). А можем просто начать рисовать в любом другом месте, а начало координат позднее перенести. Для примера я перенесу поля.

Создаем выводы

Почему сначала стоит создать и разместить, хотя бы примерно, выводы, а не начинать с рисования УГО? Дело в том, что, как мы уже знаем, выводы должны располагаться на сетке с шагом 1.27 мм, а для рисования УГО мы можем выбрать гораздо меньший шаг (вплоть до 0.0254 мм). И мы должны рисовать УГО с учетом ограничений на расположение выводов.

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

Обратите внимание, в отличии от других редакторов (схем, посадочных мест, печатных плат) в редакторе компонентов нет слоев.

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

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

-5

Только теперь здесь нет заполненных полей имени и номера вывода. Давайте начнем с вывода затвора. Заполнять поле "Имя вывода", в данном случае не обязательно, так как мы отключили отображение имен. Но все таки задать имена выводов транзистора стоит. А вот для резистора это уже излишне. Поэтому укажем имя вывода G (Gate - затвор). В нашем случае затвор подключен к выводу 3, вспомните показанную выше цоколевку транзистора из документации. Поэтому в поле "Номер вывода" указываем 3.

Следующие два поля, "Электр. тип" и "Графический стиль" нам уже знакомы по статье

KiCad для начинающих. §3 Электронный компонент в KiCad "под микроскопом"

У рассматриваемого в предыдущей статье

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

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

Позиция по X и Y определяется автоматически по координатам курсора мыши при клике. Мы не будем их изменять вручную. Поле "Ориентация" определяет направление линии вывода относительно точки подключения вывода (точки размещения вывода). В случае ориентация "вправо", это видно и в окне предварительного просмотра, линии идет вправо. И для затвора это правильное направление, поэтому оставляем его.

Вы всегда можете не только переместить вывод, но и сменить его ориентацию. Перемещение вывода выполняет команда MOVE (горячая клавиша M). Смена ориентации, вращение вывода вокруг точки подключения, выполняется командой ROTATE (горячая клавиша R).

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

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

Все, теперь можно нажать "ОК". И здесь нас ждет небольшая неожиданность... Вывод не разместился на чертеже компонента, а "приклеился" к курсору мыши. Это не совсем логичное поведение, но оно является стандартным в Kicad. Во всяком случае, до текущего момента. Наш первый щелчок мышкой фактически соответствовал "начать создавать вывод", а не разместить вывод.

Что бы действительно разместит только что созданный вывод, разместите курсор мышки с "приклеенным" выводом в нужном месте и снова щелкните левой кнопкой мыши. Или нажмите клавишу "Enter". Получится примерно так

-6

Я разместил вывод на оси Х, на 7.6 мм левее оси Y. О координатах, которые отображаются в строке статуса (внизу) мы уже говорили ранее, в предыдущей статье. Обратите внимание, выбрана действительно сетка с шагом 1.27 мм, это видно в строке статуса.

Теперь давайте создадим вывод истока. Все действия точно такие же. Но теперь в диалоговом окне свойств вывода поле "Электр. тип" уже будет содержать "Пассивный". То есть, редактор запомнил наш предыдущий выбор. Точно так же редактор запомнит и графический стиль и ориентацию. Зададим имя вывода S (source - исток) и номер 4 (из цоколевки).

Ориентацию я менять не буду, что бы показать, как ее можно изменить уже после создания вывода. Вывод разместим по оси Y, ниже оси Х. И получим примерно такое

-7

Теперь давайте исправим ориентацию вывода истока. Для этого можно снова обратиться к окну свойств вывода, но это не наглядно. Можно щелкнуть по выводу правой кнопкой мыши и выбрать "Повернуть", но это долго. А можно просто навести курсор мыши на вывод (кнопки мыши не нажимать) и нажать на клавиатуре клавишу R. Поворот (вращение) вывода будет наглядным. Кроме того, это самый быстрый и удобный способ.

В результате у нас получится такое

-8

Теперь создадим четыре вывода стока, их имена будут одинаковы, а номера выводов будут различаться (1, 2, 5, 6). Один вывод разместим по оси Y выше оси Х, ориентация вниз. А три оставшихся так, что бы их линия вывода касалась оси Y, ориентация влево. Должно получиться примерно так

-9

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

Создаем УГО

Теперь мы можем приступать к созданию УГО. Точнее, к рисованию. Выбор инструментов небольшой, но вполне достаточный.

  • Добавить контур. На самом деле, это рисование прямоугольника по двух вершинам. Первый щелчок левой кнопкой мыши начинает рисование задавая первую вершину. Второй щелчок левой кнопкой мыши завершает рисование. Нажатие клавиши Esc отменяет рисование (это работает для всех графических примитивов).
  • Добавить окружность. Рисование окружности по ее центру и точке, лежащей на окружности. Первый щелкой левой кнопкой мыши задает расположение центра окружности. Второй, положение точки на окружности. При этом окружность в процессе рисования отображается, что наглядно.
  • Добавить дугу. Рисование дуги, половинки окружности. Да, всегда рисуется именно половина окружности, но это мешает создавать и меньшие части окружности. Первый щелчок левой кнопкой мыши задает положение первой точки, через которую должна проходить дуга. После этого половинка окружности будет отображаться при перемещении курсора мыши. Второй щелчок левой кнопкой мыши задает вторую точку, через которую должна проходить дуга. После этого движение курсора мыши будет изменять крутизну дуги, фактически, радиус образующей ее окружности. И третий щелчок левой кнопкой мыши завершает рисование дуги.
  • Добавить линии и полигоны. Фактически, это рисование отрезков и ломаных линий. Первый щелчок левой кнопкой мыши начинает рисование. Каждый последующий задает очередную узловую точку (точку перелома). На последней точке нужно сделать двойной щелчок левой кнопкой мыши, это завершит рисование линии. Если очередная узловая точка располагается на другом отрезке, то мы получаем замкнутый полигон. Любая ломаная образует незамкнутый полигон.
  • Добавить текст. Позволяет добавить любой текст к УГО. Размер шрифта можно изменять. Таким образом можно изобразить и номера выводов, и их имена, если стандартный способ их отображения в KiCad чем то не устраивает. Например, если не устраивает, что номер вывода поворачивается вместе с вращением вывода.

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

Как именно выполнять рисования подробно, по шагам, расписывать не буду. Тут нет особых хитростей. Просто попробуйте, изучайте инструменты рисования. При этом рекомендуется уменьшить шаг сетки, так как 1.27 мм это довольно грубая сетка. У меня получилось вот так. Для рисования УГО была выбрана сетка 0.254 мм

-10

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

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

Но даже при требовании соблюдения ГОСТ часто делаются поправки в случае использования машинных средств проектирования. Например, может допускаться использование машинного шрифта с начертанием не соответствующим ЕСКД. Может допускаться небольшое отклонение в размерах УГО, так как программное обеспечение использует метрические сетки.

Споры о том, насколько необходимо соблюдать ГОСТ давайте оставим в стороне. Каждый будет решать для себя самостоятельно. Я считаю, что УГО должны быть близки к требованиям ГОСТ по начертанию. Но без фанатизма. Поэтому нарисованный УГО полевого транзистора допустим, хоть и не соответствует ГОСТ в точности. Так вывод затвора расположен не на одной линии с выводом истока. А выводы истока и стока расположены вертикально, а не горизонтально.

Кроме того, диаметр окружности, обозначающей корпус транзистора, равен не 12 мм, как оговаривается ГОСТ, а 6 мм. Все таки в любительской практике обычно используются листы бумаги формата А4. Кстати, именно диаметр 5-6 мм использовался при публикации схем в журналах "Радио".

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

Вернемся к нашему компоненту. Глядя на иллюстрацию трудно не заметить, что выводы не соединены с УГО. Мы их размещали лишь как ориентиры для рисования УГО. И в процессе рисования выводы можно было немного подвигать (но только переключившись на сетку 1.27 мм!).

Позиционируем выводы

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

-11

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

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

Теперь изменим масштаб колесом мыши, что бы было лучше видно область с выводом затвора. Измерим необходимую длину вывода. Для это установим курсор мыши на точку подключения вывода и нажмем клавишу ПРОБЕЛ. Переместим курсор на точку, где линия вывода должна соединяться с УГО.

-12

В строке статуса найдем искомое расстояние по оси Х. В данном случае оно равно 3.56 мм. Теперь остается отредактировать вывод. Задаем длину вывода 3.56 мм и получаем

-13

Достигнут нужный результат для вывода затвора.

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

-14

Остается дорисовать точки в местах соединения выводов стока.

-15

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

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

-16

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

Настраиваем свойства компонента

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

Здесь у нас уже почти задано. Остается задать "Описание". Можете написать все, что посчитаете нужными. И задать, выбрать, посадочное место.

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

-17

Откроется окно "Обозреватель библиотек посадочных мест". Это не редактор, а именно обозреватель. Он позволяет выбрать посадочное место. Найдите в списке библиотек "Package_TO_SOT_SMD" и щелкните по ней левой кнопкой мыши. Во втором столбце появится список посадочных мест библиотеки. В списке найдите "SOT-23-6" и щелкните по нему

-18

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

Мы можем заполнить список псевдонимов и перечислить все возможные варианты (IRLMS2002, IRLMS2002TR, IRLMS2002PbF, IRLMS2002TRPbF, IRLMS2002PbFTR и т.д.) если это для вас важно. Но более полезным будет задание фильтра посадочных мест. Вы де видели в списке посадочных мест "SOT-23-6_Handsoldering". Я даже почти не сомневаюсь, что вы посмотрели, чем же эти два посадочных места отличаются.

Что бы было возможно легко выбирать вариант посадочного места при работе со схемой и печатной платой и используется фильтр посадочных мест. Перейдите на вкладку "Посад. места" в окне свойств компонента и нажмите "Добавить" (кнопка со знаком + внизу окна). Введите SOT-23-6_* в появившемся окне и нажмите "ОК".

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

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

Теперь можно сохранить нашу работу. Как это сделать тоже написано в предыдущей статье. Все? Победа? Не совсем...

Почему созданный нами компонент неудачен

Давайте посмотрим на наш компонент критическим взглядом. Он полностью соответствует документации на реальный транзистор. Что может быть не так?

KiCad считает, что у нашего компонента 6 выводов и все они различны. Мы нарисовали, что 4 вывода стока объединены, но KiСad так не считает. Дело в том, что мы изобразили объединение графически, но никак не отразили в описании компонента.

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

Исправляем недочеты

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

KiCad. Хитрости. Объединяем выводы элемента.

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

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

-19

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

-20

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

-21

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

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

-22

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

Заключение

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

В следующий раз научимся создавать компонент состоящий из нескольких частей.

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