Kicad Library Convention. Символы УГО

Данная статья будет посвящена разбору Kicad Library Convention (KLC), полный текст данного соглашения можно найти здесь. Что же такое KLC?

KLC — это свод правил от разработчиков Kicad и стандартной библиотеки компонентов о том, как необходимо вносить изменения в эту библиотеку. И в целом как правильно создавать библиотеки компонентов. Будет две части. Эта — первая, целиком посвящена общим принципам и символам условно-графического обозначения (УГО). Вторая будет про посадочные места компонентов.

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

Разработчики Kicad постарались максимально облегчить жизнь контрибьютерам и разработали несколько скриптов для проверки соответствия библиотек компонентов данному соглашению. При запросе на включение в основной репозиторий, библиотеки проверяются этими скриптами автоматически, так что неплохо перед pull request проверять свои библиотеки данными скриптами самостоятельно. Для примера, чтобы запустить проверку футпринта, переходим в kicad-library-utils/pcb и запускаем скрипт ./check_kicad_mod.py path_to_fp1.kicad_mod path_to_fp2.kicad_mod -vv.

G1 Общие принципы
G2 Символы (УГО)
S1 Библиотеки символов УГО
S2 Именование символов УГО
S3 Общие требования к символам УГО
S4 Требования к выводам символов УГО
S5 Связь символа УГО с посадочным местом
S6 Метаданные символов УГО
S7 Специальные символы

G1 Общие принципы

G1.1 Использование стандартных символов в именовании библиотек и компонентов

Данные принципы охватывают все элементы библиотек (symbols / footprints / models). Именования файлов, УГО, посадочных мест должно быть ограничено следующими символами: A-Z, a-z, 0-9, _, -, ., ,, +.

G1.2 Ограничения по количеству компонентов

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

G1.3 Организация библиотек

Компоненты в Kicad группируются не по производителю, а по функциональности. Организация библиотеки должна следовать следующему описанию, где каждый элемент отделен от другого символом _:

  1. Функция библиотеки
  2. Подфункция библиотеки
  3. Третичный классификатор
  4. Имя производителя
  5. Имя серии компонента
  6. Дополнительные дескрипторы

Некоторые элементы могут быть опущены, если не нужны.

G1.4 Использование только английского языка

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

G1.5 Следует избегать множественных имен

При именовании следует избегать множественных имен существительных, к примеру, называть библиотеку Sensor_Temperature вместо Sensors_Temperature.

G1.6 Соглашение о заглавных буквах

Акронимы следует писать заглавными буквами: MCU, FPGA.

Имена производителей следует писать, так как они пишутся: Microchip, ROHM, Texas, NEC.

Если не используются разделители слов, то слова должны писаться в соответствии с соглашением CamelCase: TestPoint, BatteryHolder.

G1.7 Строки файлов библиотек должны оканчиваться в Unix style

Перед коммитом в Github строки файлов должны оканчиваться символом LF (перевод строки), а не символами CR+LF, как в DOS. Данная рекомендация может быть выполнена добавлением ко всем библиотекам Kicad .gitattributes файла. Пример данного файла для символов УГО:

* text=auto

G1.8 Использование версий Kicad

Добавление в официальный репозиторий должно производиться с использованием последней стабильной версии Kicad.

G1.9 Единицы измерения

При указании размера (например в имени футпринта), должны быть также указаны единицы измерения: 3mm, 1in. Если используется размеры вида length x width x height, единицы измерения указываются единожды: 3x4x7mm. Также предпочтительны метрические единицы измерения.

G2 Символы (УГО)

G2.1 Терминология

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

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

kicad general components symbols

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

kicad atomic library

Полностью описанный компонент с посадочным местом, соответствующим его part номеру, называется атомарным компонентом (atomic symbol).

S1 Библиотеки символов УГО

S1.1 Библиотеки символов должны быть классифицированы по функциональному назначению

Библиотеки символов состоят из файлов .lib и .dcm, имена которых совпадают и именование состоит из следующих элементов разделенных символом _ :

  1. Функция (Sensor, Amplifier, MCU)
  2. Sub-функция (Temperature, CurrentSense)
  3. Третичный классификатор (CMOS)
  4. Название производителя (Atmel, Infineon)
  5. Серия (PIC24, STM32)
  6. Дополнительная информация (Deprecated )

Примеры: Sensor_Humidity, MCU_ST_STM32.

S2 Именование символов УГО

S2.1 Общие правила именования символов УГО

  1. Имена библиотек не должны совпадать с именами символов УГО.
  2. Если имеется два символа УГО с одинаковыми именами от разных производителей, то добавляется имя производителя.
  3. Если несколько производителей выпускают совместимые компоненты, отличающиеся только суффиксами в part номере, то общий базовый компонент должен иметь футпринт вида L78L05_TO92.
  4. Тип устройства для общих компонентов может быть сокращен (к примеру Conn для Connector), в имени может использоваться символ позиционного обозначения (к примеру С, D).
  5. Для массивов элементов необходимо указывать количество элементов в имени символа УГО.
  6. Любые модификации исходного компонента должны отражаться в имени нового символа УГО (Q_NPN_CBE, Q_NPN_BCE).

S2.2 Вариации part номеров компонентов

Существуют вариации part номеров компонентов, которые не несут функциональной нагрузки, к примеру, информация об упаковке (reel, tray), RoHS, температурный диапазон и т.д. Так вот данную информацию лучше не использовать в имени символа УГО, заменив на символ x или, если информация находится в конце имени, то просто опустить как ненужную.

S2.3 Отдельный символ УГО для каждого посадочного места компонента

Многие компоненты бывают в нескольких видах корпусов, не всегда они совместимы по пинам. Псевдонимы Kicad не позволяют задать разные типы корпусов одному символу УГО. Поэтому для таких компонентов необходимо задавать один символ УГО на каждое посадочное место. К примеру, LTC4357 имеет 2 корпуса, каждый из них требует свое посадочное место, к тому же пины не совместимы.

Для каждого следует нарисовать свой символ УГО.

Еще один вариант, компаратор MCP6566, доступен в 3 корпусах SOT-23-5 и у каждого своя распиновка. Для такого компонента необходимо 3 символа УГО. Именуются они согласно даташиту на компонент.

S3 Общие требования к символам УГО

S3.1 Начало координат по центру компонента

Симметричные компоненты должны быть отцентрированы относительно начала координат (0, 0) в редакторе символов УГО. Для несимметричных символов УГО следует распологать его как можно ближе к началу координат, но так чтобы не сдвинуть пины компонента с сетки 100mil.

S3.2 Текстовые поля должны использовать размер текста 50mil

Все текстовые поля символа УГО должны иметь размер в 50mil. Разрешается уменьшать размер текста имен и номеров выводов до 20mil, если этого требует геометрия символа УГО.

S3.3 Обводка символа и заливка

  1. Толщина линий символа УГО должна равняться 10mil (0.254мм).
  2. Микросхемы и другие компоненты со скрытым функционалом должны заливаться фоновым цветом.
  3. Дискретные компоненты не должны заливаться фоновым цветом.

S3.4 Символы УГО со сложной функциональностью

Для символов УГО компонентов с некоторой сложной функциональностью допускается внутри тела символа рисовать функциональную схему, если она размещается в небольшом пространстве УГО.

S3.5 Выводы компонентов должны распологаться вне символа УГО

Пример неверного символа УГО

Примеры правильного расположения выводов УГО

S3.6 Смещение позиции имени вывода

  1. Смещение позиции имени вывода не должно превышать 50mil (1.27мм).
  2. Смещение позиции имени вывода не должно быть меньше 20mil (0.508мм).
  3. 20mil предпочтительное значение смещения.

S3.7 Нумерация выводов

Для микросхем, имеющих выводы отвода тепла (Exposed Pad), подключаемые к земле, нумерация начинается с числа на один больше, чем количество выводов микросхемы.

Для SOIC-8 с одним выводом теплоотвода его номер равен 9.

Экранируемые компоненты должны использовать в качестве номера выводов, к которым подключается экран, «SH». Монтажные выводы без электрических соединений должны получать номер вывода «MP».

S3.8 Символы УГО из нескольких частей

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

S4 Требования к выводам символов УГО

S4.1 Общие требования к выводам

  1. Следует использовать сетку 100mil (2.54мм) при размещении выводов (IEC-60617).
  2. Длина вывода должна быть не менее 100mil (2.54мм)
    • Длина вывода может быть увеличена с шагом 50mil (1.27мм)
    • Длина вывода определяется количеством символов в номере вывода. Если 2 символа — длина 100mil, 3 — 150mil и т.д.
    • Длина вывода не должна превышать 300mil (7.62мм).
    • Более короткие выводы разрешены для дискретных компонентов, таких как резисторы, конденсаторы и т.д.
    • Все выводы символа УГО должны быть одной длины.
  3. Номера выводов должны быть уникальными. Недопустимо, чтобы два вывода имели один и тот же номер.

S4.2 Группировать выводы следует по функциям

Конечно, только там где это возможно, лучше следовать этому правилу, нежели группировать их по расположению на посадочном месте компонента.

  1. Пример выводов одной функциональности:
    • SPI_MISO, SPI_MOSI, SPI_CS, SPI_CLK
    • UART_TX, UART_RX
  2. Нумерация портов должна следовать сверху вниз.
  3. Выводы положительного питания размещаются сверху символа УГО
    • Vcc, Vdd, Vin, V+ и т.д.
  4. Выводы отрицательного питания и земли размещаются снизу символа УГО
    • GND, Vss, V- и т.д.
  5. Входы / Выводы контроля / Логики должны располагаться слева
  6. Выходы / Выводы управления / Драйверы должны располагаться справа

S4.3 Правила размещения выводов

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

Сделать это можно разместив выводы одной цепи в одной и той же позиции в символе УГО. Каким условиям должны соответствовать выводы, чтобы быть объединены в одной позиции:

  1. Выводы не должны быть типа No Connect, т.к. такие выводы никогда не должны соединяться на плате.
  2. Выводы питания должны быть размещены таким образом, если только в даташите не сказано, что каждый вывод питания должен иметь свои развязывающие конденсаторы.
  3. Выводы должны быть логически соединены в символе УГО.
  4. Выводы должны иметь одно и то же имя.
  5. Выводы должны иметь один и тот же электрический тип.
  6. Один вывод из стека должен быть видимым (все остальные делаются невидимыми).

S4.4 Электрический тип вывода

Электрический тип вывода должен быть установлен так, чтобы совпадать с соответствующей функцией

  1. Питание и земля устанавливаются как Вход питания (Power Input) и Выход питания (Power Output) соответственно.
  2. Логические выводы устанавливаются в соответствии с рекомендациями даташита на компонент.
  3. Выводы с программируемой функциональностью должны быть установлены как Двунаправленный (Bidirectional).
  4. Выводы с инверсией следует устанавливать с использование символа инверсии и чертой над именем вывода.

S4.5 Выводы, не подключаемые к посадочному месту могут быть опущены в символе УГО

Условия:

  1. Выводы могут быть проигнорированы в символе УГО, если они никогда не будут подключены в схеме ни при каких условиях.
  2. Не подключенные выводы делают символ УГО неоправданно большим и плохо читаемым.
  3. Если выводы маркируются по даташиту как NC (Not Connected), но сказано, что они должны быть подтянуты к питанию или земле, то такие выводы должны быть размещены на символе УГО.
  4. Также фильтр посадочного места компонента должен содержать информацию о количестве выводов компонента
    • BGA?144
    • QFN?28

В противном случае выводы делаются скрытыми и не могут исключены из символа УГО.

S4.6 Скрытые выводы

Как правило, скрытые символы не допускаются в символе УГО, все выводы должны быть видимы, в противном случае возможны непредвиденные соединения на схеме.

Исключения
  1. Выводы питания, которые связаны с глобальными метками символов питания.
  2. Выводы, которые не предназначены для подключения в схеме. В этом случае тип вывода также должен быть установлен в Не подсоединен (Not Connected). Подключаемый конец такого вывода следует разместить внутри графического обозначения символа, как показано на скриншоте ниже.
  3. Невидимые выводы могут группироваться как было описано в пункте S4.2.

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

Сделать это можно специальными символами ~ в имени вывода, пример ~SPD_LED~/GPIO2.

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

S5 Связь символа УГО с посадочным местом

S5.1 Символы УГО с посадочным местом по умолчанию связываются с соответствующим файлом

  1. Для атомарных символов УГО должен быть указан футпринт по умолчанию в формате <footprint_library>:<footprint_name>.
  2. Для символов, у которых может быть несколько посадочных мест, поле Посадочное место (Footprint) следует оставить пустым.

S5.2 Настройка фильтров посадочных мест

Фильтры посадочных мест должны быть настроены так, чтобы охватывать все необходимые посадочные места, исключая ложные предложения. Этот важно и для элементов, которые имеют только одно посадочное место, т.к. возможны различные варианты этого посадочного места (например, _HandSoldering, _Heatsink, _ThermalVias).

Фильтры посадочных мест используют сопоставление шаблонов с подстановочными знаками, допускаются следующие подстановочные знаки:

  • * — подстановка множества символов
  • ? — подстановка одного символа

Имя библиотеки посадочных мест может использоваться в качестве критерия фильтра, разделителем между именем библиотеки и именем посадочного места является символ :

Соглашение о фильтрах:

  1. Фильтры должны заканчиваться подстановочным символом * , чтобы разрешить сопоставление измененных суффиксов посадочных мест.
  2. Фильтры должны включать информацию о размере (там где необходимо):
    • DIP*W7.62mm* соответствует DIP-22_W7.62mm , но не DIP-22_W9.3mm
    • Ни размеры теплоотводящих выводов, ни размеры выреза маски не включаются в фильтр.
  3. Фильтры не должны содержать количество выводов, если число выводов символа УГО совпадает с количеством пинов посадочного места. Если в символе УГО есть NC выводы, то в фильтре посадочного места следует указать количество выводов, например, SOT?23?5.
    • Специальные пины, такие как EP (Exposed Pads), MP (Mounting Pads), SH (Shield), указываются в фильтре посадочных мест. Например, фильтр для посадочного места QFN-16-1EP_3x3mm_P0.5mm_EP1.8×1.8mm может выглядеть следующим образом QFN*1EP*3x3mm*P0.5mm*
  4. По умолчанию поиск посадочного места не включает имя библиотеки посадочного места. Для включения необходимо прописать фильтр, отделив имя библиотеки символом : , как тут Connector*:*Pitch?1.25mm*

S6 Метаданные символов УГО

S6.1 Буквенное обозначение компонента на схеме (Reference Designator)

Буквенное обозначение символа УГО определяется соответствующим образом для конкретного типа компонента.

Буквенное обозначение (Designator)Тип компонента
ASub-assembly or plug-in module
BTBattery
CCapacitor
DDiode
DSDisplay
FFuse
FBFerrite bead
FDFiducial
FLFilter
HHardware (mounting screws, etc)
JJack, fixed part of a connector pair
JPJumper / link
KRelay
LInductor, coil, ferrite bead
LSLoudspeaker or buzzer
MMotor
MKMicrophone
PPlug, movable part of a connector pair
QTransistor
RResistor
RNResistor network
RTThermistor
RVVaristor
SWSwitch
TTransformer
TCThermocouple
TPTest point
UIntegrated circuit (IC)
YCrystal / oscillator
ZZener diode

S6.2 Поля метаданных и псевдонимов заполняются по необходимости

  1. Reference соответствует буквенному обозначению компонента на схеме.
  2. Value имя компонента.
  3. Footprint ссылка на посадочное место.
  4. Datasheet ссылка на документацию компонента.
  5. Desription описание компонента.
  6. Keywords слова для быстрого поиска компонента.

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

S7 Специальные символы

S7.1 Символы питания

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

  1. Reference Designator устанавливается в #PWR
  2. Символ питания может содержать лишь один вывод, который делается невидимым.
  3. Электрический тип вывода Power Input
  4. Имя вывода должно совпадать с именем символа УГО.

S7.2 Графические символы

Графические символы используются только для аннотации схем и не имеют связанного посадочного места.

  1. Reference Designator устанавливается как #SYM и делается невидимым.
  2. Имя символа должно быть невидимым.
  3. Не должно содержать никаких выводов.
  4. Не должно быть ассоциативных посадочных мест.
  5. Не должно быть фильтров посадочных мест.

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

4 Ответов в “Kicad Library Convention. Символы УГО

  1. А как эту черту над именем инверсного вывода поставить? тильда раньше работала, а нынче нет

    1. Я на версии 5.1.10 еще сижу, вроде работает тильда нормально.

    2. Нашёл, надо тильду и затем в фигурные скобки слово. Пример:
      ~{RESET}

Комментарии отключены.