Эта страница доступна также на следующих языках: English

# Руководство по посадочным местам для pcb

- Руководство по посадочным местам от Stuart Brorson
- Руководство пользователя pcb
- Ответы на часто задаваемые вопросы по pcb: Советы по pcb.
- В краткой справке по pcb есть информация по посадочным местам
- Соглашения по именованию посадочных мест: прочтите эту страницу, чтобы узнать, как называть файлы своих посадочных мест.

### Основы

- Есть два типа файлов посадочных мест: M4 и newlib.
- Наилучшими средствами для создания посадочных мест являются pcb (WYSIWYG), текстовый редактор (быстрое, точное), скрипты (мощное).
- Черчение посадочных мест в pcb описано в разделе о создании библиотеки в руководстве по pcb, смотрите часть «Creating Newlib Footprints» («Создание посадочных мест Newlib») в подразделе «New Style Libraries» («Библиотеки нового типа»).
- Создание посадочных мест в текстовом виде приведено в руководстве Footprint Creation for the Open-Source Layout Program "PCB", которое написал и поддерживает Stuart Brorson.
- Создание посадочных мест с помощью скриптов рассматривается на странице Генераторы посадочных мест.
- Другие вещи, которые могут вам пригодиться: калькулятор, бумага+карандаш, спецификации, штангенциркуль, электронная таблица.

### Рекомендации производителей по созданию посадочных мест

- http:www.nxp.com/package * http:focus.ti.com/general/docs/packaging.jsp
- http:www.maxim-ic.com/design/packaging/ * http:www.national.com/packaging/folders/pkg_index.html
- http:www.irf.com/package/ * http:www.onsemi.com/PowerSolutions/supportTechDoc.do?id=1165
- http:www.analog.com/Analog_Root/Packages/Packages_Home/ * http:www.linear.com/designtools/PkgInfo.jsp

### Обмен посадочными местами для pcb

- Место размещения пользовательских символов и файлов посадочных мест: gedasymbols.org

- Много файлов посадочных мест для pcb можно найти на странице по посадочным местам от John Luciani

- Делиться своими файлами посадочных мест можно на сайте Посадочные места для gEDA на Open Circuits.

### Часто задаваемые вопросы по посадочным местам для pcb

#### Как pcb работает с посадочными местами?

pcb поддерживает два абсолютно разных формата библиотек посадочных мест:

1. Первый из них называют oldlib, pcblib или библиотека M4. В этой системе для создания посадочных мест "на лету" используется макроязык M4. Библиотека M4 довольно велика. Она имеет мощную возможность быстрого определения целых семейств посадочных мест с помощью соответствующего базового макроса. В pcblib имеются определения для нескольких семейств корпусов. Начиная со среза pcb-20070208 вся эта библиотека доступна в формате newlib (см. следующий параграф) под названием pcblib-newlib.
2. Вторая библиотека посадочных мест для pcb называется newlib. Посадочные места newlib определяются в текстовых файлах, в которых прописывается вызов каждого графического примитива в отдельности, из которых и составляется посадочное место. Посадочные места newlib могут создаваться или графически в pcb, или другими методами, производящими текстовые файлы (в текстовом редакторе, с помощью скриптов на awk/perl/ruby и т. д.). Особенно мощным является применение скриптов или языков программирования, так как с их помощью можно создавать посадочные места для больших корпусов или для целых семейств компонентов.

Поэтому, при разработке топологической схемы платы вы можете либо использовать посадочные места, поставляемые в комплекте с pcb, либо найти их в сети интернет, либо создать свои собственные и поместить в предназначенный для них каталог. В Руководстве пользователя pcb есть полная и современная документация по формату файлов элементов. На сайте gedasymbols.org имеется некоторое количество посадочных мест, предоставленных пользователями. Несколько неполное, но полезное руководство доступно на веб-странице http://www.brorson.com/gEDA/ (ищите по ключевому слову «newlib»).

#### Где найти готовые посадочные места для pcb?

- Поищите на своём жёстком диске каталоги `newlib` и `pcblib-newlib`. В них находятся библиотеки, используемые в pcb по умолчанию.
- Наилучшее место, где ещё можно найти посадочные места, --- это Веб-сайт символов gEDA. Если у вас есть свои посадочные места, вы можете помочь проекту и предоставить их в общее пользование.
- На веб-сайте у John Luciani есть большое количество посадочных мест и инструментария.
- Прекрасный скрипт для создания посадочных мест предложил на своём веб-сайте Darrell Harmon.
- Наконец, вы можете спросить в списке рассылки geda-user, и может быть кто-нибудь сжалится над вами и пошлёт вам посадочное место.

#### Я хочу развести плату в pcb. Как узнать, какое значение задать атрибуту footprint?

Этот вопрос является общим для новых пользователей gEDA. В самом деле вопрос помощи новичкам в определении названий нужных им посадочных мест компонентов лежит в основе продолжающихся дебатов о лёгких символах против тяжёлых. В текущей версии gEDA/gaf, содержащей лёгкие символы, вам надо прикреплять атрибуты `footprint` на этапе редактирования схем (то есть в gschem или gattrib). Какое название использовать для посадочного места, зависит от того, какой вы пользуетесь библиотекой --- newlib или M4 (pcblib).

#### newlib

В библиотеке newlib каждое посадочное место лежит в отдельном файле и имя данного файла является его названием.

Определить названия нужных посадочных мест в newlib можно разными способами:

- Можно пролистать имеющиеся посадочные места корпусов в окне библиотеки посадочных мест pcb (доступном из меню Окно -> Библиотека). Щёлкните по группе newlib и выберите вложенный раздел, чтобы посмотреть в нём элементы. Названия корпусов появятся в окне Elements справа от перечня библиотек7). Значение атрибута `footprint` в gschem или gattrib должно в точности соответствовать указанному в перечне названию.
- Поставляемые с pcb посадочные места newlib сохраняются в подкаталогах каталога `${PREFIX}/share/pcb/newlib`. (`${PREFIX}` --- это каталог установки, задаваемый при конфигурировании/сборке pcb.) В качестве значения атрибута `footprint` нужно задать имя файла нужного вам посадочного места.
  Посадочное место 0805 (для поверхностно монтируемых резисторов или конденсаторов) находится в файле, путь доступа к которому
  `/usr/local/geda/share/pcb/newlib/generic_SMD_packages/0805_reflow_solder`.
  Поэтому, чтобы задать для компонента этот корпус, я устанавливаю в gschem или gattrib значение атрибута `footprint` для него равным 0805_reflow_solder.
  Учтите, что если нужный вам элемент newlib находится в нестандартном каталоге, вам нужно указать путь доступа к этому каталогу для gsch2pcb либо в своём файле проекта (если вы используете таковой), либо с помощью ключа `--elements-dir` (из командной строки).
- И наконец, так как для любого нового проекта обычно приходится чертить по крайней мере пару новых посадочных мест, скорее всего для них вам понадобится локальный каталог. Как уже сказано выше, названия посадочных мест корпусов будут определяться именами этих свежеиспечённых файлов. И ещё раз: не забудьте добавить в свой файл проекта строку, указывающую программе gsch2pcb, где искать ваши локальные корпуса. Или же gsch2pcb можно запускать с ключом `--elements-dir`, задавая в качестве параметра локальный каталог с файлами посадочных мест.

#### Библиотека M4

В библиотеке M4 посадочные места сохраняются в виде макросов M4; обычно в каждом файле определяется несколько (много) посадочных мест. Различные посадочные места в одном и том же файле --- это, как правило, вариации одного и того же шаблона (например, DIP-8, DIP-14, DIP-16 и т. д.). Легче всего найти подходящее значение для атрибута `footprint`, пролистав библиотеку pcblib в окне библиотек pcb. Этот атрибут отображается в описании элемента в квадратных скобках. Кроме того, список посадочных мест из pcblib можно найти на веб-странице символов gEDA.

Следующим библиотекам M4 уделялось больше внимания и в них вносилось больше улучшений, нежели в прочие:

- ~amp, содержащая соединители Amp;
- ~amphenol, содержащая соединители Amphenol;
- ~geda, содержащая много разнообразных приборов для базовых проектов в gEDA (резисторы, конденсаторы и пр.);
- ~bourns, содержащая такие изделия, как подстроечные резисторы от Bourns;
- ~cts, содержащая такие изделия, как наборы резисторов от CTS;
- ~johnstech, содержащая разъёмы Johnstech;
- ~minicircuits, содержащая специфические корпуса Minicircuits;
- ~panasonic, содержащая специфические корпуса Panasonic.

И в заключение добавим, что и для библиотеки newlib, и для M4, чрезвычайно важно проверять, что для используемого вами названия посадочного места при помещении элемента в pcb будет вставлено именно то посадочное место, которое вам нужно. Поэтому очень важно внимательно проверить посадочное место перед его использованием. Проверить посадочное место можно щёлкнув по нему в окне библиотеки посадочных мест и поместив его на пустое место в рабочей области pcb. Внимательно рассмотрите посадочное место и убедитесь в правильности количества выводов/контактных площадок, размеров и прочего.

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

#### Как быть с различными посадочными местами для одного типа прибора?

Например, операционный усилитель может быть в корпусе DIP8 или SO8. Резистор может быть одним из 0603, 0805, 1208 или для выводного монтажа. Как узнать, какие использовать корпуса и посадочные места, и как дальше работать с выбранными вариантами?

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

Что касается дальнейшей работы с выбранными посадочными местами (и с действительно большим количеством атрибутов компонентов, которые вам, вероятно, придётся использовать): пользуйтесь программой gattrib. Это как раз то, для чего она и нужна.

#### Как начертить новое посадочное место?

Все делают это по-разному. Кто-то чертит посадочные места целиком в pcb. Кто-то сначала делает в pcb заготовку и затем доводит её вручную (например, в emacs). Кто-то пишет скрипты на Perl или Python для автогенерации посадочных мест.

- Воспользуйтесь текстовым редактором. Подробности смотрите в руководстве по созданию посадочных мест от Stuart Brorson.
- Начертите компонент в pcb и сохраните его как посадочное место. Смотрите HOWTO от Karel Kulhavy.
- Или воспользуйтесь скриптом на Python от Darrel Harmon для типоразмеров с двумя выводами, SOxx, tabbed и QFP.
- Или воспользуйтесь скриптом на Perl от Stuart Brorson для двухвыводных компонентов для поверхностного монтажа.
- Или воспользуйтесь скриптом на Perl от John Luciani, который можно приспособить для корпусов DIL, различных SOxx, QFP или даже для кругового расположения контактных площадок.
- Или используйте веб-приложение dilpad от DJ Delorie для посадочных мест вида SOxx.

#### Как мне изменить/отредактировать имеющееся посадочное место?

Можно преобразовать посадочное место в обычную топологию, отредактировать её части и обратно преобразовать в посадочное место. В следующем перечне жирным наклонным шрифтом выделены действия из меню Буфер (если не указан иной пункт меню).

1. Выделите элемент.
2. Правка -> Копировать выделенное в буфер (`Ctrl`+`C`).
3. Разбить элементы в буфере на части. Выводы станут переходами, а контактные площадки --- дорожками. К сожалению, часть информации при этом потеряется. А именно, флаги установки прямоугольной формы выводов и контактных площадок. Эту информацию позже придётся воссоздать.
4. Вставить из буфера
5. Произведите нужные изменения. Учтите, что можно работать только с переходами, дорожками и прямоугольниками. Не должно быть никакого текста, никаких дуг8), никаких полигонов.
6. Выделите все объекты, являющиеся частями посадочного места.
7. Правка -> Копировать выделенное в буфер (`Ctrl`+`C`). Положение перекрестия курсора будет определять точку привязки результирующего посадочного места. Эта точка будет отмечена маленьким ромбиком.
8. Преобразовать буфер в элемент. Переходы будут преобразованы в выводы. Дорожки и прямоугольники станут контактными площадками для поверхностного монтажа.
9. Вставить из буфера.
10. Наводя указатель мыши на контактные площадки, которые стали скруглёнными при выполнении шага 4, нажимайте `Q`, чтобы снова сделать их прямоугольными.
11. Пройдитесь по всем контактным площадкам и, нажимая `N`, задайте для каждой название.
12. Переместив указатель мыши в то место, где нет ни площадок, ни выводов, задайте элементу название.
13. Переместите название в то место, в котором, по вашему мнению, должно отображаться позиционное обозначение или значение компонента (тип или номинал).
14. Выделите всё и скопируйте в буфер (Правка -> Копировать выделенное в буфер или `Ctrl`+`C`).
15. Сохранить элементы из буфера в файл.

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

#### Как переместить ромбик посадочного места?

Точка привязки посадочного места отмечается маленьким ромбиком. Чтобы переместить её в другое место по отношению к изображению посадочного места, нужно изменить координаты всех объектов. Это можно сделать вручную в текстовом редакторе. Если же вы хотите сделать это из графического интерфейса pcb, нужно разбить посадочное место на части, а затем собрать его снова. Подробный перечень шагов указан выше. Обратите внимание, что положение ромбика определяется положением перекрестия курсора при копировании в буфер.

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

#### pcb не сохраняет слой шелкографии, когда я пытаюсь начертить посадочное место

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

#### Как правильно сделать двухстороннее посадочное место?

Для помещения контактных площадок на противоположную сторону платы можно использовать флаг `onsolder`. Для определения двухстороннего соединителя вам понадобится что-то вроде этого:

    Pad[-40000 -7000 -40000 7000 2700 2400 3000 "B1" "B1" "square"]
    Pad[-40000 -7000 -40000 3000 2700 2400 3000 "A1" "A1" "square,onsolder"]

Если вы начертите посадочное место в pcb и выберете Преобразовать буфер в элемент, линии на втором слое станут контактными площадками с флагом `onsolder`. Да, имеется в виду именно второй слой, независимо от того, как он называется.

#### Как добиться того, чтобы некоторые контактные площадки были без паяльной пасты?

Иногда открытые участки проводников не должны покрываться паяльной пастой. Общеизвестным примером являются контактные площадки соединителя непосредственного сочленения (концевые контакты печатной платы). Этого можно добиться установкой флага `nopaste`. В настоящее время из графического интерфейса pcb этот флаг установить невозможно. Его можно добавить для контактных площадок посадочного места в текстовом редакторе.

#### Как добавить библиотеку посадочных мест для pcb?

Библиотеки посадочных мест можно добавить из графического интерфейса:
Файл -> Настройки... -> Библиотека -> `КАТАЛОГ_ПОСАДОЧНЫХ_МЕСТ`
Или можно отредактировать файл `$HOME/.pcb/preferences`. Убедитесь, что не запущен ни один процесс pcb. Поищите строку, начинающуюся с `library-newlib`. Не забудьте подключить новый каталог в файле `gsch2pcbrc` или в локальном `gafrc` (имеется в виду при использовании gsch2pcb).

#### Как обновить посадочное место в моей топологии?

Автоматического способа заместить все экземпляры посадочного места новой версией пока нет. Но есть специальный режим вставки из буфера, который поможет уменьшить количество щелчков мышью при ручной замене.
Откройте диалоговое окно с помощью Окно -> Библиотека и выберите новое посадочное место. Рабочим инструментом станет инструмент вставки из буфера BUF и в буфер будет загружено новое посадочное место. Если надо, поверните его с помощью Буфер -> Повернуть буфер. Расположите новое посадочное место над старым и, нажав [Shift], щёлкните левой кнопкой мыши, чтобы заместить старое посадочное место новым. Следите, чтобы не перевернуть его на 180 градусов, проверьте подключение линий связи нажатием `O` и, если вдруг оказалось, что посадочное место расположено задом наперёд, отмените операцию.

#### pcb не находит моих посадочных мест. Почему?

Путь доступа к посадочным местам, который использует программа pcb, определяется переменной `Pcb.elementPath` в файле ресурсов app-defaults, называющемся `PCB`9). Путь к этому файлу задаётся с помощью переменной окружения `XAPPLRESDIR`, обычно задаваемой из скрипта-обёртки pcb.

#### Вот я набрал себе посадочных мест. Куда их теперь складывать?

Я предпочитаю «готовые для производства» посадочные места складывать в один каталог, расположенный отдельно от каталога установки pcb. Когда выходит новая версия pcb, я не меняю файлы проектов или библиотеки. Если в библиотеке pcb есть посадочные места в формате newlib, которые я хочу использовать, я копирую их в этот каталог посадочных мест, «готовых для производства».

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

Чтобы использовать скрипт sch2pcb, вместо `FOOTPRINT_DIR` задайте свой каталог посадочных мест. Вот его содержимое:

    #!/bin/bash
    gsch2pcb --elements-dir FOOTPRINT_DIR $@

Или версия другого пользователя:

    #!/bin/bash
    #Этот скрипт написал John Luciani
    gsch2pcb --elements-dir /home/user/pcb/footprints/user --use-files $@

Или можно использовать файл проекта, из которого gsch2pcb читает свои параметры. Например, файл `myproject` может выглядеть так:

    schematics myschematic.sch myschematic2.sch
    elements-dir /myfootprintdir
    output-name mypcb
    skip-m4

В файле примера задаётся поиск посадочных мест, используемых в `myschematic.sch` и `myschematic2.sch`, в каталоге `myfootprintdir`, пропуск посадочных мест типа M4 и создание `mypcb.pcb`. Затем при запуске gsch2pcb в качестве аргумента нужно задать имя файла проекта:

    gsch2pcb myproject

#### Можно ли задать двум контактным площадкам или двум выводам одинаковые номера?

«Да, без вопросов. Как раз так --- перекрытием двух и более штук --- и создаются овальные обрамления вокруг выводов или контактные площадки чудной формы (например, квадратная с одной стороны и круглая с другой).»

#### Как сделать овальную контактную площадку вокруг вывода посадочного места?

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

#### Как сделать двухстороннюю контактную площадку?

«Звучит странно, но это может быть необходимо для некоторых соединителей непосредственного сочленения. ... Но как это сделать???»

Это можно сделать, добавив две контактных площадки в одном и том же месте, с одинаковым номером вывода, но вторую с флагом "onsolder", как в следующем фрагменте:

    Pad[ 10mm -3mm  10mm 3mm  2.0mm 0.5mm 0.2mm "1" "1" "square" ]
    Pad[ 10mm -3mm  10mm 3mm  2.0mm 0.5mm 0.2mm "1" "1" "square,onsolder" ]

#### Соединители непосредственного сочленения

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

    Pad[  0   -3mm   0   3mm  2.0mm 0.5mm 0.2mm "1" "1" "square" ]
    Pad[  0   -3mm   0   5mm  2.0mm 0.5mm 0.2mm "1" "1" "" ]

    Pad[  0   -3mm   0   3mm  2.0mm 0.5mm 0.2mm "1" "1" "square,onsolder" ]
    Pad[  0   -3mm   0   5mm  2.0mm 0.5mm 0.2mm "1" "1" "onsolder" ]

7)
В более новых версиях pcb вложенные разделы раскрываются, там же отображаются элементы, а справа находится окно предпросмотра посадочных мест. --- Прим. перев.
8)
В слое шелкографии дуги использовать можно. --- Прим. перев.
9)
Речь здесь идёт о ресурсах pcb с Xaw-интерфейсом, который заменён на GTK-интерфейс в 2005-ом году, поэтому для более свежих версий данный ответ неактуален. --- Прим. перев.