gEDA
  1. Общие сведения

Итак, gEDA — это набор программ для автоматизации разработки и моделирования электронных средств (GPL’d suite and toolkit of Electronic Design Automation tools). Проще говоря, P-CAD для Linux :). gEDA бесплатна.

  1. Состав
Основные инструменты gEDA такие:
  • gschem — программа для разработки электронных принципиальных схем и компонентов
  • gattrib — редактор атрибутов
  • gnetlist — генератор списка соединений
  • gsch2pcb — преобразователь принципиальной схемы в топологическую
  • pcb — редактор печатных плат
  • различные утилиты
  1. Установка

Установка стандартная для Linux: из менеджера пакетов вашего дистрибутива, загрузка с сайта программы (есть пакеты rpm и deb) или сборка из исходников.

  1. Документация

До недавнего времени документации по gEDA на русском почти не было, пока за дело не взялся человек по имени Владимир Жбанов, за что ему большое спасибо! Переводы документации (пока не все статьи) можно найти здесь: http://wiki.geda-project.org/geda:documentation.ru

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

Термины, характерные для gEDA (и систем проектирования электроники вообще) можно найти здесь: http://wiki.geda-project.org/geda:glossary.ru

  1. Этапы проектирования

Мы попробуем пройти по процессу создания печатной платы от начала и до конца Возьмем для примера USB программатор AVR — USBAsp (http://easyelectronics.ru/usb-programmator-avr-usbasp.html). Итак:

  • чертим принципиальную схему (gschem, файлы *.sch)
  • преобразовываем ее в топологическую (gsch2pcb, файлы *.pcb, *.net)
  • разводим и редактируем топологию (pcb, файлы *.pcb)
  • печатаем
gschem
  1. Общие сведения

Программа gschem, как было сказано, нужна для черчения принципиальной схемы нашего устройства. Она работает с файлами *.sch — собственно файл схемы и *.sym — файлы символов (представление конкретного компонента в принципиальной схеме).

Лучше всего запускать gschem прямо из каталога, где находится файл со схемой (почему — объясню позднее) для этого можно настроить ваш менеджер файлов на запуск gschem при двойном клике на файлах *.sch.

Создадим каталог usbasp и запустим в нем gschem. Получим такое окно:

1

Создана пустая схема untitled-1.sch. Сохраним ее: Файл — Сохранить как…, сохраняем под именем usbasp.sch.

Вид самой программы стандартен: меню, панель инструментов, главное окно, строка состояния, только горячие клавиши не такие, как везде, вы можете увидеть для каждого пункта в меню его горячие клавиши. Например, сохранение файла — fs (то есть надо сначала нажать f, а потом s). Список всех клавиш можно посмотреть в меню Помощь — Горячие клавиши.

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

  1. Добавление элементов

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

В комплекте gEDA идет множество символов зарубежных компонентов, все они сгруппированы в библиотеки.

Для вставки символа в схему нажмите ‘i’, появится окно библиотеки:

2

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

Можно кидать на схему элементы. Сразу же возникает вопрос, какие элементы брать из библиотеки? Для стандартных, вроде конденсаторов, резисторов, диодов есть их стандартные компоненты в нескольких вариантах, можно брать любой. Для микросхем нужно брать конкретный компонент (лучший вариант — использовать фильтр по названию). Обязательно нужно поместить «землю» (компонент gnd) и питание (vcc). Для перемычек используйте jumper, разъемов — connector (на схеме выводы идут в один ряд) или header (в два ряда). Стабилитроны — компонент zener. Вот компоненты, которые использовал я:

3

У вас должно получиться примерно такое:

4

Бывают случаи, когда нужных элементов в базе нет. Тогда есть несколько вариантов. Во-первых, в базе http://www.gedasymbols.org/. Во-вторых, можно погуглить «имя_элемента geda symbol». И, наконец, можно создать элемент самому (рассмотрим в конце статьи).

  1. Атрибуты

Атрибуты — это пара «параметр-значение». У каждого элемента и проводника в gEDA есть несколько атрибутов. Редактор атрибутов вызывается двойным кликом по элементу, из контекстного меню — пункт «правка», или клавишами «ее»:

5

Список всех атрибутов можно посмотреть здесь: http://wiki.geda-project.org/geda:master_attributes_list.ru

Основные атрибуты, которые нас интересуют:

  • device. Имя компонента (устройства)
  • footprint. Название корпуса или его обозначение.
  • refdes. Обозначение элемента в схеме. Например D1, может содержать знаки вопроса, как в только что вставленных компонентах, например D?. Позднее эти знаки будут заменены на порядковый номер элемента.
  • netname. Задает имя проводника. Проводники с одинаковыми именами будут физически соединены при разводке.
  • slot. Номер элемента в многосекционном устройстве (например, в некоторых микросхемах логики по нескольку одинаковых секций)
  • value. Значение элемента. Используется для моделирования, но не лишне задать значения для резисторов, конденсаторов для отображения на схеме, например «10К», «5V» и т.д.

Атрибут можно сделать видимым или невидимым, причем можно выводить только имя, только значение, или и то, и другое (в редакторе атрибутов колонки «Видимый», «И» для имени, «З» для значения).

  1. Связи

Элементы готовы, можно их соединять. Для соединений можно использовать несколько вариантов:

  1. Проводники. Добавляются кнопкой на панели инструментов, соединяем несколько выводов при помощи левой кнопки мыши. Можно использовать клавишу «n». По умолчанию включено «магнитное соединение», то есть привязка к выводам. Ее можно отключить из меню «Настройка». Проводники можно редактировать, левой кнопкой «таская» их концы. Если у вас включено «резиновое соединение» в меню «Настройка», проводники не будут разрываться при перемещении элементов.
  2. Шины. Опять же, есть кнопка на панели или «Shift+B». Рисуем конфигурацию шины, после чего подключаем к ней проводники обычным способом.
  3. Именование. Проводники с одинаковыми именами (атрибут netname) физически соединяются. Поэтому проводники, подключенные к шине надо обязательно проименовать.

Соединяем наши элементы проводниками. Вот что вышло у меня. Пришлось слегка переместить элементы. Обратите внимание на именованные проводники. Чтобы не вести проводник через всю схему достаточно двум проводникам задать одинаковое имя. Также видно, что к микроконтроллеру питание не подается, однако зайдите в редактор атрибутов и увидите такие атрибуты: «net — Vcc:7» и «net — GND:8,22», это значит, что вывод 7 будет связан с проводником или выводом с именем Vcc, а выводы 8 и 22 — с GND.

6

  1. Автонумерация.

Нашей схеме не хватает пронумерованных элементов. Gschem может сделать это автоматически. В меню «Атрибуты» выберите «Автонумеровать текст»:

7

«Автонумерация текста» — ставим «Вся иерархия», нажимаем «Применить» и все, готово:

8

  1. Посадочные места

Следующий этап — назначение каждому элементу его посадочного места. Посадочное место (footprint) — это изображение элемента на печатной плате.

Задать элементу его посадочное место можно из редактора атрибутов, добавив новый атрибут «footprint» с необходимым значением, или с помощью программы gattrib.

Запустите gattrib и выберите в нем ваш файл со схемой (usbasp.sch). Вы увидите таблицу с элементами и значениями их атрибутов. Можно заполнять колонку с именем «footprint» и сохранять изменения (некоторые значения посадочных мест могут быть уже заполнены):

9

Откройте затем схему в gschem и снимите видимость атрибутов «footpprint», если хотите, чтобы они не мешали. Для этого в меню «Атрибуты» — «Скрыть текст…», в поле ввода наберите «footprint=» и нажмите «Применить».

12

Самое сложное во всем этом — собственно выбор посадочного места для конкретного элемента. Дам несколько советов:

  • запускайте редактор печатных плат pcb (см. далее), нажимайте «i», и вы увидите библиотеку всех посадочных мест, в ней сразу можно увидеть, как они выглядят.

    10

  • библиотек символов есть две: старая (pcblib) и новая (pcblib-newlib), лучше брать из новой библиотеки, если нет в ней, брать из старой.
  • вы знаете, какой у вашего элемента тип корпуса (например, TO92, DIP14 и т.д). В таком случае в поле поиска вбиваете название корпуса и выбираете подходящий.
  • у вас smd-компонент. Есть посадочные площадки соответствующих типов (0805, 1206 и т.д)
  • выводные элементы: резисторы, конденсаторы, диоды. Для цилиндрических элементов, у которых два вывода находятся на разных концах цилиндра (резисторы, конденсаторы, диоды), есть посадочные места ACYxxx, где ххх — расстояние между выводами в милах (1 мил = 0,001 дюйма, 100 мил — 2,54 мм, стандартное расстояние между ножками микросхемы в DIP-корпусе). Для бочкообразных элементов (электролиты и др.) берите RCYxxx, для светодиодов есть LED3 и LED5 — размером 3 и 5 мм соответственно, обычные диоды (или стабилитроны) — ALFxxxx.
  • коннекторы двухрядные — HEADERxxxx, однорядные — JUMPERxxxx
  • обращайте внимание на нумерацию выводов, в библиотеке могут быть несколько одинаковых посадочных мест с разной нумерацией.

Если вы не смогли найти посадочное место в библиотеке, у вас такие варианты: искать на сайте http://www.gedasymbols.org/, гуглить или самому начертить посадочное место (см.далее).

Итак, вот что получилось у меня:
11
  1. Проверка схемы.

С помощью утилиты gnetlist вы можете проверить схему на наличие некоторых распространенных ошибок:

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

1
gnetlist -g drc2 -o usbasp.drc usbasp.sch

и получим в файле usbasp.drc список ошибок в схеме:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Checking non-numbered parts...
Checking duplicated references...
Checking nets with only one connection...
Checking pins without the 'pintype' attribute...
Checking type of pins connected to a net...
Checking unconnected pins...
ERROR: Unconnected pin J3:3
ERROR: Unconnected pin U2:5
ERROR: Unconnected pin U2:6
ERROR: Unconnected pin U2:11
ERROR: Unconnected pin U2:12
ERROR: Unconnected pin U2:13
ERROR: Unconnected pin U2:26
ERROR: Unconnected pin U2:27
ERROR: Unconnected pin U2:28
Checking slots...
Checking duplicated slots...
Checking unused slots...
No warnings found.
Found 9 errors.
Видим, что есть неподключенные выводы у микроконтроллера и вывод №3 на разъеме ISP.

  1. Получение топологии (gsch2pcb).

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

1
gsch2pcb usbasp.sch -f

следим, чтобы не было ошибок, если все нормально, получаем файлы:

  • usbasp.net — список соединений
  • usbasp.cmd — скрипт для переименования выводов
  • usbasp.pcb — печатная плата

Ключ -f заставит gsch2pcb использовать посадочные места из новой библиотеки (pcblib-newlib).

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

Можно редактировать печатную плату с помощью pcb.

PCB
  1. Общие сведения

pcb — программа для разработки топологии печатных плат. Ее возможности:

  • по умолчанию работа с 16 слоями печатной платы (можно увеличить, но для этого придется пересобирать программу из исходников)
  • вывод в форматах ps, gerber, nc-drill, png
  • автотрассировщик, оптимизатор
  • проверка соответствия проектным нормам (DRC)

На русском документации по pcb пока нет, но отличный FAQ на русском языке можно найти здесь: http://wiki.geda-project.org/geda:pcb_tips.ru

Для начала необходимые термины:
  • Слой (layer) — это совокупность объектов, находящихся в одной плоскости печатной платы, отображаются одним цветом. Наиболее важные для нас слои:
    1. Component — верхний слой платы, слой компонентов
    2. Solder — нижний слой, слой пайки
    3. Шелкография — слой с изображением контуров компонентов
    4. Соединения — слой с еще не разведенными соединениями
    5. Выводы/площадки — слой с выводами и контактными площадками
    6. Переходы — слой с переходными отверстиями
  • Переход (via) — металлизированное отверстие, физически соединяющее слои печатной платы.
  • Вывод (pin) — металлизированное отверстие для монтажа выводного элемента.
  • Контактная площадка (pad) — место для вывода компонента для поверхностного монтажа.
  • Дорожка (line) — проводник, соединяющий выводы.
  • Соединение (net) — электрическое соединение нескольких выводов.

Запустите pcb (опять же, лучше прямо из каталога с вашим проектом):

Окно программы состоит из нескольких частей:

  • меню
  • справа от меню координаты курсора и единицы измерения
  • панель слоев. Активный слой обозначается точкой, слои можно включать/выключать, нажав на кнопку с названием слоя.
  • панель инструментов
  • панель стилей трассировки.
  • строка состояния
  • область редактирования. В ней мы смотрим на печатную плату сверху, как бы «сквозь» слои.

Кроме главного окна есть еще окно сообщений, библиотеки, списка соединений и т.д.

  1. Начнем с размещения элементов

Загрузим файл с печатной платой (Файл — Загрузить трассировку) и увидим, что все элементы сбились в одну кучу:

13

Их можно распределить автоматически (Выбрать — Распределить все элементы). Совсем другое дело. Теперь загрузим список соединений (Файл — Загрузить файл списка соединение) и нажмем клавишу «о». Все соединения показаны линиями в слое «Соединения»:

14

Наберите также такое: «:ExecuteFile(usbasp.cmd)» для переименования выводов на печатной плате.

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

После того, как вы разместили элементы, задайте размер печатной платы в окне настроек (Файл — Настройки, вкладка «Размеры»:

Вот что вышло у меня:
15
  1. Трассировка

Трассировка в pcb может осуществляться в автоматическом режиме или вручную. Конечно, результат автоматической редко устраивает. Рассмотрим оба варианта.

В левом нижнем углу окна программы есть панель стилей трассировки. Можно создавать новые стили и редактировать имеющиеся. Стиль включает в себя: название, ширину дорожки, диаметр отверстия перехода, диаметр перехода, ширину зазора. Перед началом трассировки обязательно задайте желаемые параметры. Обычно я использую три стиля: Power — самые широке дорожки для питания, Signal — обычные дорожки, Skinny — тонкие дорожки для труднодоступных мест.

    1. Автоматическая трассировка
  • Отключите все слои, в которых запрещено размещать дорожки
  • Меню «Соединения» — «Автотрассировка выбранных соединений» или «Автотрассировка всех соединений». Немного подождите и увидите результат. Неразведенные соединения останустя в слое «Соединения». Все дорожки разводятся текущим стилем, поэтому лучше трассировать по частям, сначала питание, затем остальное.
  • Затем можно попробовать оптимизировать трассировку: «Соединения» — «Оптимизировать трассы»

Но результат обычно меня не устраивает и я трассирую почти все вручную.

    1. Ручной режим
  • дорожки чертятся инструментом «Line» (F2) текущим стилем в активном слое (в основном в solder). Если при черчении одной дорожки переключать слои, автоматически будут вставлены переходные отверстия.
  • можно развести отдельную дорожку автоматически. Выберите соединение и нажмите «Alt-R».
  • если результат не устраивает — нажимаем «u» для отмены
  • периодически нажимаем «о» для оптимизации и перерисовки линий соединений
  • перемещайте компоненты и дорожки левой кнопкой мыши. Включите «Режим резиновой ленты» в меню «Настройки», тогда при перемещении дорожки не будут разрываться.
  • клавиша «F», нажатая над дорожкой, показывает все дорожки, подключенные к выбранной:

    16

  • сделать дорожку толще можно клавишей «S», тоньше — «Shift-S», те же клавиши для увеличения/уменьшения контактных площадок/выводов.
  • меню «Выбрать» пункт «Изменить размер выбранных объектов» — уменьшает/увеличивает размеры. Обычно размеры выводом маловаты, поэтому их лучше увеличить.
  • меню «Выбрать» пункт «Изменить отверстия выбранных объектов» — изменяет диаметр отверстий для выводов или переходов.
  • клавишей «К» можно сделать вывод квадратным/круглым.
  • клавиша «D» над выводом компонента показывает его название.
  • в конце полезно оптимизировать ваши дорожки.

Вот что вышло у меня (учтите, я ничего не проверял, поэтому прошу не пинать ногами!):

17

Если хотите, можно сделать металлизацию. Для этого воспользуйтесь инструментом «RECT», нарисуйте прямоугольник на всю плату в слое пайки. Пусть он будет у нас заземлен, поэтому с помощью инструмента «THRM» подключите один из выводов, который на схеме соединен с «землей», к нему. Нажмите «F» на прямоугольнике, и вы увидите, какие дорожки и выводы нужно к нему подключить. Чтобы дорожка слилась с металлизацией, нажмите над ней «J», чтобы расстояние от дорожки/вывода увеличилось, нажимайте над ними «К»:

22

Также можно провести проверку проектных норм, которые задаются в меню «Файл» — «Настройки» — «Размеры». Укажите здесь минимальные необходимые размеры. Затем «Окно» — «Проверка проектных норм», увидите список:

18

Двойнок клик на строке перенесет курсор в проблемную позицию.

  1. Изменение схем

Если вы после редактирования топологии изменили схему нужно проделать следующие шаги (по тексту http://wiki.geda-project.org/geda:gsch2pcb_tutorial.ru):

  • запускайте gsch2pcb usbasp.
  • gsch2pcb всегда создаёт новый список соединений usbasp.net. Если соединения изменились, загрузите этот файл после запуска pcb.
  • Если вы добавили в схему компоненты (с атрибутами footprint), gsch2pcb создаст файл usbasp.new.pcb, содержащий все новые pcb-элементы, соответствующие этим атрибутам. Затем запустите pcb usbasp.pcb и загрузите usbasp.new.pcb с новыми элементами в существующую топологию с помощью «Файл» — «Загрузить топологию в буфер обмена». Разместите новые элементы, загрузите новый список соединений и проведите новые дорожки.
  • Если вы удалили компоненты из схемы, gsch2pcb удалит соответствующие pcb-элементы из usbasp.pcb. Вам нужно только запустить pcb usbasp.pcb и убрать висящие дорожки, оставшиеся от удалённых элементов.
  • Если вы изменили атрибут footprint существующего компонента, gsch2pcb удалит соответствующий ему старый элемент из board.pcb и добавит новый элемент к board.new.pcb.
  • Если вы изменили атрибуты value компонентов схемы, изменённые значения будут внесены непосредственно в файл board.pcb.

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

Вроде все, можно печатать.

  1. Печать

Обычно я не печатаю сразу из программы, а делаю экспорт в один из форматов: png или ps. Png дает нам графический файл, а ps — многостраничный документ со всеми слоями, маской, отверстиями и шелкографией на отдельных страницах.

  • png

Отключите все ненужные слои. Например, для ЛУТа оставьте только слой пайки, выводов и переходных отверстий, для нанесения надписей на верхнюю сторону платы оставьте только шелкографию. Меню «Файл» — «Экспортировать трассировку» — «png»:

19

Задайте имя файла, разрешение при печати в dpi (лучше родное для вашего принтера), поставьте флажки «as-shown», «monochrome» и нажмите «ОК».

20

Теперь файл можно печатать на принтере

  • ps

Меню «Файл» — «Экспортировать трассировку» — «ps»:

21

Задайте имя файла, drill-helper печатает перекрестья в центре больших отверстий, align-marks — метки для выравнивания распечаток, outline — контуры слоев, auto-mirror — автоматически отзеркаливает нужные слои, drill-copper печатает отверстия в центре каждого вывода, scale — масштабный коэффициент (если реальные размеры и размеры распечатки расходятся).

Создание собственных элементов и посадочных мест

  1. Создание элементов

Создать элемент можно вручную с нуля или, что лучше, изменить существующий похожий элемент (находятся в /usr/share/gEDA/sym). Вот ссылка на инструкцию: http://wiki.geda-project.org/geda:gschem_symbol_creation.ru

Еще один вариант (хорошо подходит для создания символов многовыводных компонентов) — утилита tragesym. Подробная инструкция: http://wiki.geda-project.org/geda:tragesym_tutorial.ru

Для того, чтобы ваши символы были доступны вам, сложите их в подкаталог symbols вашего проекта и создайте файл gafrc в каталоге проекта с таким содержимым:

(component-library «./symbols»)

  1. Создание посадочных мест

Лучший вариант для создания посадочного места — это взять готовое похожее и изменить его (локальная библиотека посадочных мест находится в /usr/share/pcb/pcblib-newlib). Вот перепечатка из FAQ:

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

  1. Выделите элемент.
  2. Скопируйте выделенный элемент в буфер обмена ([Ctrl-c]).
  3. Разбить элементы в буфере на части. Выводы станут переходами, а контактные площадки — дорожками. К сожалению часть информации при этом потеряется. А именно, флаги установки прямоугольной формы выводов и контактных площадок. Эту информацию позже придётся воссоздать.
  4. Вставить из буфера.

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

Создайте в каталоге своего проекта подкаталог packeges, и все посадочные места, которые вы туда поместите, будут доступны pcb, если вы запускаете pcb из каталога проекта.

Файлы проекта: 
Usbasp
Usbasp
usbasp-new.tar.gz
153.4 KiB
207 Downloads
Детали

Вот, вкратце, и все. Задавайте вопросы.

Страница просмотрена 1770 раз(а)