1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./style.css" />
6 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./design.css" />
7 <link rel=
"stylesheet" media=
"print" type=
"text/css" href=
"./print.css" />
9 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8" />
14 <em>Эта страница доступна также на следующих языках:
</em>
15 <a href=
"geda-gsch2pcb_tutorial.html" class=
"wikilink1" title=
"geda-gsch2pcb_tutorial.html">English
</a>
18 <h1 class=
"sectionedit1" id=
"gschem_-_gsch2pcb_-_pcb">gschem -
> gsch2pcb -
> pcb
</h1>
22 Это учебник по использованию
<strong>gsch2pcb
</strong> как интерфейса между
<strong>gschem
</strong> и
23 <strong>pcb
</strong>. Мы предполагаем, что пакеты
<strong>gEDA
</strong>,
<strong>pcb
</strong> и
<strong>gsch2pcb
</strong> у вас
24 уже установлены и готовы к работе. Начиная с
<strong>gEDA
20030901</strong>, программа
25 <strong>gsch2pcb
</strong> находится в одном пакете с другими программами gEDA и не
26 нуждается в отдельной установке. Настоящий учебник функционален и нацелен на
27 получение как можно более быстрых результатов. Хотя он и не является полным
28 справочным руководством по
<strong>gschem
</strong> или
<strong>pcb
</strong>, но на примере простого
29 проекта показывает все шаги, которые вы могли бы предпринять.
33 Цель учебника — научиться пользоваться
<strong>gsch2pcb
</strong> как мостом между
34 <strong>gschem
</strong> и
<strong>pcb
</strong>, для того чтобы все добавления или удаления элементов
35 на
<a href=
"geda-glossary.ru.html#принципиальная_схема" class=
"wikilink1" title=
"geda-glossary.ru.html">принципиальной схеме
</a> в
36 <strong>gschem
</strong> приводили бы к соответствующим автоматическим изменениям в
37 <a href=
"geda-glossary.ru.html#топология" class=
"wikilink1" title=
"geda-glossary.ru.html">топологической схеме
</a> в
<strong>pcb
</strong>, то есть чтобы
38 топология печатной платы всегда соответствовала принципиальным
39 схемам. Обратное аннотирование изменений из
<strong>pcb
</strong> в
<strong>gschem
</strong> в настоящее
44 История изменений настоящего документа находится в
45 <a href=
"geda-gsch2pcb_tutorial_releasenotes.ru.html" class=
"wikilink1" title=
"geda-gsch2pcb_tutorial_releasenotes.ru.html">замечаниях по выпуску
</a>.
49 <!-- EDIT1 SECTION "gschem -> gsch2pcb -> pcb" [126-2181] -->
50 <h2 class=
"sectionedit2" id=
"терминология">Терминология
</h2>
54 В
<strong>gschem
</strong> в принципиальную схему добавляют символы, изображающие
55 электронные компоненты.
<em class=
"u"><a href=
"geda-glossary.ru.html#символ" class=
"wikilink1" title=
"geda-glossary.ru.html">Символ
</a></em> — это группа из
56 выводов, атрибутов и линий, представляющая небольшое графическое изображение
57 <a href=
"geda-glossary.ru.html#компонент" class=
"wikilink1" title=
"geda-glossary.ru.html">электронного компонента
</a> в электрической
58 схеме. Выводы разных символов соединяют друг с другом, вычерчивая между
60 <a href=
"geda-glossary.ru.html#соединение" class=
"wikilink1" title=
"geda-glossary.ru.html">соединения
</a>.
61 <a href=
"geda-glossary.ru.html#атрибут" class=
"wikilink1" title=
"geda-glossary.ru.html">Атрибуты
</a> — это именованные переменные,
62 прикрепляемые к символам и предназначенные для хранения некоторой
63 информации. Есть три атрибута, непосредственно относящихся к переводу
64 принципиальной схемы в топологическую, и они должны быть заданы. Каждый
65 добавляемый в схему символ должен иметь атрибуты
<code>footprint
</code>,
<code>value
</code>, и
70 Значение атрибута
<code>footprint
</code> (посадочное место) в принципиальной схеме
71 определяет для символа название pcb-элемента, которым данный экземпляр
72 символа должен быть представлен в топологии платы.
<em class=
"u">pcb-элемент
</em> — это
73 группа из выводов, контактных площадок и контуров
<a href=
"geda-glossary.ru.html#слой_шелкографии" class=
"wikilink1" title=
"geda-glossary.ru.html">шелкографии
</a>, соответствующая форме электронного
74 компонента. Есть два типа pcb-элементов и это, наверно, сбивает с толку
75 новичков в
<strong>pcb
</strong>. Есть исходные pcb-элементы, генерируемые макросами
76 <strong>m4
</strong>, и, начиная с версии
<strong>pcb
</strong> 1.7, есть ещё и файловые элементы типа
77 <strong>newlib
</strong>.
<em class=
"u">Файловый элемент
</em> — это один фиксированный элемент в одном
78 файле. В одном же файле
<em class=
"u">m4-элементов
</em> макроопределений элементов может
79 быть много. Чтобы получать программируемые элементы с разным количеством
80 выводов или изменяемыми размерами, для макросов могут задаваться
81 аргументы. В настоящем руководстве будет раскрыто использование этих двух
82 типов элементов и далее я так и буду называть их
<em>m4-элементами
</em> и
83 <em>файловыми элементами
</em>.
87 При работе в
<strong>pcb
</strong>, если в меню
<strong><em>Вид
</em></strong> →
<strong><em>Отображаемое название
88 элемента
</em></strong> выбрать
<strong>Описание
</strong>, то как название элемента будет
89 отображаться значение атрибута
<strong>gschem
</strong> <code>footprint
</code>. Дело в том, что
90 запись для каждого конкретного pcb-элемента в файле топологии содержит поле
91 <code>Описание
</code> (
<code>Description
</code>), которое должно соответствовать посадочному
92 месту (
<code>footprint
</code>), и это соответствие отслеживается программой
93 <strong>gsch2pcb
</strong>.
97 Значение атрибута
<strong>gschem
</strong> <code>refdes
</code> — это
<strong>позиционное обозначение
</strong>
98 в схеме, такое как
<em>Q1
</em>,
<em>U1
</em>,
<em>R1
</em> и т. д. Если в
<strong>pcb
</strong> в меню
99 <strong><em>Вид
</em></strong> →
<strong><em>Отображаемое название элемента
</em></strong> выбрать
<strong>Позиционное
100 обозначение
</strong>, то как название элемента будет отображаться значение атрибута
105 Значение атрибута
<strong>gschem
</strong> <code>value
</code> — это
<strong>значение
</strong> (тип или
106 значение физической величины) конкретного компонента, такое как, например,
107 <em>BC546
</em>,
<em>7400</em>,
<em>1K
</em> и т. д. Если в
<strong>pcb
</strong> в меню
<strong><em>Вид
</em></strong> →
108 <strong><em>Отображаемое название элемента
</em></strong> выбрать
<strong>Значение
</strong>, то как название
109 элемента будет отображаться значение атрибута
<code>value
</code>.
113 <!-- EDIT2 SECTION "Терминология" [2182-7132] -->
114 <h2 class=
"sectionedit3" id=
"настройка">Настройка
</h2>
118 При организации проектов разработки нужно учитывать структуру каталогов.
119 Пакеты
<strong>gEDA
</strong> и
<strong>pcb
</strong> по умолчанию предоставляют вам наборы символов
120 <strong>gschem
</strong> и pcb-элементов, но можно создать и свои собственные библиотеки.
123 <li class=
"level1"><div class=
"li"> Где-нибудь, может быть в своём домашнем каталоге, создайте структуру каталогов для своих проектов. Для своих каталогов вы можете придумать имена сами, в данном же учебнике я буду ссылаться на структуру каталогов, используемую мной:
<pre class=
"code">gaf/
124 gaf/gschem-sym/ Сюда я кладу свои символы gschem.
125 gaf/gschem-sym/transistors/ Можете организовать подкаталоги для своих символов.
126 gaf/pcb-elements/ Сюда я кладу свои элементы pcb.
127 Их также можно организовать с помощью подкаталогов.
128 gaf/myproject1/ И, наконец, отдельные каталоги для каждого
129 gaf/myproject2/ проекта.
133 При такой организации любые ваши символы
<strong>gschem
</strong> и pcb-элементы могут быть общими для всех ваших проектов и это достаточно хорошо для начала работы. Однако, я упомяну и другие возможности, которые будут описаны ниже: у вас могут быть подкаталоги
<em>файловых элементов
</em> или файлы
<em>m4-элементов
</em> <strong>pcb
</strong> для конкретных проектов; кроме того, администраторы САПР могут настроить для общего пользования и локальные каталоги
<em>файловых элементов
</em>, и файлы
<em>m4-элементов
</em>.
137 <li class=
"level1"><div class=
"li"> <strong>Настройка gEDA:
</strong> программы
<strong>gschem
</strong>,
<strong>gnetlist
</strong> и может быть другие, используемые вами, как например
<strong>gattrib
</strong>, должны иметь возможность найти любые создаваемые вами символы, поэтому этим программам нужно сказать, где лежат каталоги ваших символов для
<strong>gschem
</strong>, добавив строки
<code>component-library
</code> в файл
<em><code>gafrc
</code></em> — либо в файл, общий для проектов пользователя,
<em><code>${HOME}/.gEDA/gafrc
</code></em>, либо в файл
<em><code>gafrc
</code></em> в каталоге конкретного проекта. Есть ещё системный файл
<em><code>${GEDADATA}/system-gafrc
</code></em>, который могут настроить администраторы. Чтобы данные файлы можно было найти, должны быть соответственно установлены переменные окружения
<code>HOME
</code> и
<code>GEDADATA
</code>. Для описанной нами выше структуры каталогов в
<em><code>${HOME}/.gEDA/gafrc
</code></em> можно добавить следующие строки (а также строки и для других подкаталогов, которые вы бы хотели создать в
<em><code>gschem-sym
</code></em>):
<pre class=
"code">(component-library
"${HOME}/gaf/gschem-sym
")
138 (component-library
"${HOME}/gaf/gschem-sym/transistors
")
</pre>
141 Или же файлы
<em><code>gafrc
</code></em> можно добавить в каталоги каждого из проектов (в такие как
<em><code>myproject1
</code></em> и
<em><code>myproject2
</code></em>, указанные выше) и прописать в них:
143 <pre class=
"code">(component-library
"../gschem-sym
")
144 (component-library
"../gschem-sym/transistors
")
</pre>
147 Более современные версии gEDA (с
1.7.2) позволяют указать только одну команду для достижения этого:
149 <pre class=
"code">(component-library-search
"../gschem-sym
")
</pre>
152 которая рекурсивно просканирует все подкаталоги для символьных библиотек. Дальнейшие подробности настройки программ gEDA см. в
<a href=
"geda-gschem_ug-config.ru.html" class=
"wikilink1" title=
"geda-gschem_ug-config.ru.html">Руководстве пользователя gEDA gschem
</a>.
156 <li class=
"level1"><div class=
"li"> Если хочется более детальной настройки
<strong>gschem
</strong> и
<strong>gnetlist
</strong>, можно переопределить и другие начальные установки, заданные в глобальных rc-файлах. В Debian, чтобы узнать, что можно настроить, посмотрите rc-файлы в
<em><code>/etc/gEDA/
</code></em>. Мне, например, нравится светлый фон в
<strong>gschem
</strong>, поэтому я прописываю в свой
<em><code>~/.gEDA/gschemrc
</code></em> строку:
<pre class=
"code">(load (build-path geda-rc-path
"gschem-colormap-lightbg
")) ; light background
</pre>
159 <li class=
"level1"><div class=
"li"> <strong>Настройка pcb:
</strong> обычно пакет
<strong>pcb
</strong> настроен так, что
<strong>pcb
</strong> автоматически смотрит в подкаталог
<em><code>packages
</code></em> в рабочем каталоге. Поэтому, для того чтобы эта программа находила все элементы, лежащие у меня в каталоге
<em><code>gaf/pcb-elements
</code></em>, в каждом из каталогов своих проектов я делаю на него ссылку. Заметьте, что на самом деле эта ссылка при использовании
<strong>gsch2pcb
</strong> не обязательна, потому что, как будет показано ниже, альтернативно каталог
<em><code>pcb-elements
</code></em> можно прописать в
<em>файле проекта
</em>. Но если вы хотите такую ссылку сделать, перейдите в каталог
<em><code>gaf/myproject1
</code></em> и введите команду:
<pre class=
"code">ln -s ../pcb-elements packages
</pre>
162 <li class=
"level1"><div class=
"li"> <strong> Настройка gsch2pcb:
</strong> В каждом из каталогов своих проектов создайте для
<strong>gsch2pcb
</strong> файл проекта, который можно называть как угодно, лишь бы имя не оканчивалось на
<em>.sch
</em>. Файл проекта мы создадим в примере ниже.
</div>
167 Вот и все настройки, которые нужны после исходной установки пакетов
168 <strong>gschem
</strong>,
<strong>gsch2pcb
</strong> и
<strong>pcb
</strong>.
172 <!-- EDIT3 SECTION "Настройка" [7133-14136] -->
173 <h2 class=
"sectionedit4" id=
"простой_пример">Простой пример
</h2>
177 Давайте настолько быстро, насколько это возможно, разработаем простой
178 проект, начиная с принципиальной схемы и заканчивая созданием топологии
179 печатной платы, и затем его можно будет использовать как основу для более
180 серьёзных вещей. Я сразу немного усложню этот проект, используя в нём две
181 принципиальных схемы.
185 Предположим, вы уже настроили структуру каталогов, как описано выше. Теперь
186 перейдите в каталог
<em><code>gaf/myproject1
</code></em> и создайте файл
<em><code>project
</code></em>,
187 содержащий следующее:
189 <pre class=
"code">schematics one.sch two.sch
190 output-name board
</pre>
193 <!-- EDIT4 SECTION "Простой пример" [14137-15101] -->
194 <h3 class=
"sectionedit5" id=
"создание_схемы_onesch">Создание схемы one.sch
</h3>
198 Если вы в
<strong>gschem
</strong> впервые, попробуйте сделать простую
199 <a href=
"geda-gschem_warmup.ru.html" class=
"wikilink1" title=
"geda-gschem_warmup.ru.html">разминку в gschem
</a>.
203 <a href=
"media/geda/one-sch-1.png" class=
"media" target=
"_blank" title=
"geda:one-sch-1.png"><img src=
"media/geda/one-sch-1.png" class=
"medialeft" title=
"one.sch" alt=
"one.sch" /></a> Запустите
<strong><code>gschem one.sch
</code></strong> и создайте эту схему (на самом деле второй операционный усилитель здесь лишний, но ведь это просто учебник):
206 <li class=
"level1"><div class=
"li"> Откройте диалоговое окно выбора компонентов (нажмите клавишу
<kbd>I
</kbd>)
</div>
208 <li class=
"level1"><div class=
"li"> Убедитесь, что в выпадающем меню внизу диалогового окна установлено
<strong>Поведение по умолчанию – ссылка на компонент
</strong>.
</div>
210 <li class=
"level1 node"><div class=
"li"> Добавьте компоненты:
</div>
212 <li class=
"level2"><div class=
"li"> Из библиотеки
<strong>Basic devices
</strong> три символа
<em><code>resistor-
1.sym
</code></em> и два
<em><code>dual-opamp-
1.sym
</code></em>.
</div>
214 <li class=
"level2"><div class=
"li"> Из библиотеки
<strong>Input/Output
</strong> один
<em><code>output-
2.sym
</code></em>.
</div>
216 <li class=
"level2"><div class=
"li"> Из библиотеки
<strong>Power rails
</strong> один
<em><code>gnd-
1.sym
</code></em>, два
<em><code>vcc-
1.sym
</code></em> и два
<em><code>vee-
1.sym
</code></em></div>
220 <li class=
"level1"><div class=
"li"> Разместите компоненты средней кнопкой мыши и поверните некоторые из них, выделив и нажав клавиши
<kbd>E
</kbd><kbd>R
</kbd>, чтобы всё выглядело красиво. Поверните нижний операционный усилитель и зеркально отразите его, нажав
<kbd>E
</kbd><kbd>I
</kbd>.
</div>
222 <li class=
"level1"><div class=
"li"> С помощью клавиши
<kbd>N
</kbd> и мыши начертите соединения.
</div>
227 Большая рамка основной надписи также является компонентом. Для удобства она
228 заблокирована, чтобы предотвратить постоянный захват её мышью. Чтобы
229 разблокировать рамку, выделите её перемещением мыши, удерживая левую кнопку
230 нажатой, а затем нажмите
<kbd>E
</kbd> -
<kbd>Shift
</kbd>+
<kbd>L
</kbd>. В библиотеке
231 <strong>Titleblocks
</strong> можно найти рамки основной надписи различных
232 размеров. Запомните, чтобы заблокировать новую рамку, её нужно выделить и
233 нажать
<kbd>E
</kbd><kbd>L
</kbd>.
237 <!-- EDIT5 SECTION "Создание схемы one.sch" [15102-17617] -->
238 <h3 class=
"sectionedit6" id=
"редактирование_атрибутов_компонентов_в_схеме">Редактирование атрибутов компонентов в схеме
</h3>
242 <a href=
"media/geda/one-sch-2.png" class=
"media" target=
"_blank" title=
"geda:one-sch-2.png"><img src=
"media/geda/one-sch-2.png" class=
"mediaright" title=
"one.sch" alt=
"one.sch" /></a> Для каждого из компонентов нужно сделать следующее: выделить его и вызвать окно атрибутов нажатием клавиш
<kbd>E
</kbd><kbd>E
</kbd>. Атрибут
<code>refdes
</code> здесь менять не надо, а сделайте вот что:
245 <li class=
"level1"><div class=
"li"> Для резисторов и операционных усилителей добавьте видимые атрибуты
<code>value
</code> и установите для них подходящие значения (
<em>10K
</em>,
<em>TL072
</em>). Расставьте их средней кнопкой мыши покрасивее. Если трудно их выбрать, увеличьте масштаб и опять действуйте средней кнопкой.
</div>
247 <li class=
"level1"><div class=
"li"> Для резисторов добавьте атрибуты
<code>footprint
</code> и установите их значения в
<em>R025
</em> — это
<em>m4-элемент
</em> в
<strong>pcb
</strong> для
0,
25-ваттных резисторов. Сделайте эти атрибуты невидимыми.
</div>
249 <li class=
"level1"><div class=
"li"> Для операционных усилителей измените уже существующие атрибуты
<code>footprint
</code> на
<em>DIL
8 300</em>. Да, пробелы здесь нужны, так как
<em>DIL
</em> является
<em>m4-элементом
</em>, принимающим два аргумента. Мы говорим ему сделать двухсторонний корпус DIL с
8 выводами шириной
300 милов. Измените атрибут
<code>slot
</code> второго операционного усилителя на
<em>2</em>. Номера его выводов для входов/выходов должны измениться с (
1,
2,
3) на (
5,
6,
7).
</div>
251 <li class=
"level1"><div class=
"li"> Для символа выходного
<a href=
"geda-glossary.ru.html#порт" class=
"wikilink1" title=
"geda-glossary.ru.html">порта
</a> установите атрибут
<code>net
</code> в
<em>vmixer:
1</em> и сделайте его видимым. Атрибут
<code>value
</code> для него установите в
<em>Vmixer
</em>.
</div>
256 Может быть вам показалось, что вот так редактировать схемы с большим
257 количеством компонентов, не имеющих приемлемых исходных значений атрибутов,
258 очень тяжело. Но есть пара способов облегчить этот труд, по крайней мере в
259 отношении посадочных мест. Можно создать свою библиотеку символов с такими
260 исходными значениями атрибутов
<code>footprint
</code> (и даже
<code>value
</code>), которые
261 подходят для большинства ваших задач. Или при добавлении первого компонента
262 для него сразу надо задавать подходящий корпус, а затем копировать его
263 (выделить компонент и нажать
<kbd>E
</kbd><kbd>C
</kbd>), а не добавлять
264 остальные компоненты из библиотеки.
268 Так или иначе, пока мы закончили со схемой
<em><code>one.sch
</code></em>, так что
269 сохраните её, выбрав в меню
<strong><em>Файл
</em></strong> →
<strong><em>Сохранить страницу
</em></strong>, и
270 выйдите из
<strong>gschem
</strong>.
274 <!-- EDIT6 SECTION "Редактирование атрибутов компонентов в схеме" [17618-21156] -->
275 <h3 class=
"sectionedit7" id=
"создание_схемы_twosch">Создание схемы two.sch
</h3>
279 Это будет на самом деле просто и глупо, так как здесь она нужна только для
280 демонстрации возможности работы с несколькими схемами.
281 <a href=
"media/geda/two-sch-1.png" class=
"media" target=
"_blank" title=
"geda:two-sch-1.png"><img src=
"media/geda/two-sch-1.png" class=
"medialeft" title=
"two.sch" alt=
"two.sch" /></a> Запустите
<strong><code>gschem two.sch
</code></strong>:
284 <li class=
"level1"><div class=
"li"> Добавьте компонент
<em><code>title-B.sym
</code></em> таким же образом, как добавляли в
<em><code>one.sch
</code></em>.
</div>
286 <li class=
"level1 node"><div class=
"li"> Добавьте компоненты:
</div>
288 <li class=
"level2"><div class=
"li"> Из библиотеки
<strong>Input/Output
</strong> один
<em><code>input-
2.sym
</code></em>.
</div>
290 <li class=
"level2"><div class=
"li"> Из библиотеки
<strong>Basic Devices
</strong> один
<em><code>resistor-
1.sym
</code></em>.
</div>
292 <li class=
"level2"><div class=
"li"> Из библиотеки
<strong>Transistors
</strong> один
<em><code>2N3904-
1.sym
</code></em>.
</div>
294 <li class=
"level2"><div class=
"li"> Из библиотеки
<strong>Power rails
</strong> один
<em><code>gnd-
1.sym
</code></em>, один
<em><code>vcc-
1.sym
</code></em> и один
<em><code>vee-
1.sym
</code></em>.
</div>
296 <li class=
"level2"><div class=
"li"> Из библиотеки
<strong>Connectors
</strong> один
<em><code>BNC-
1.sym
</code></em>.
</div>
300 <li class=
"level1"><div class=
"li"> Разместите компоненты и начертите соединения как и прежде.
</div>
302 <li class=
"level1 node"><div class=
"li"> Отредактируйте атрибуты компонентов:
</div>
304 <li class=
"level2"><div class=
"li"> Входной порт: измените атрибут
<code>net
</code> так, чтобы он был невидимым и имел значение
<em>vmixer:
1</em>, так что это соединение будет подключено к
<em>vmixer
</em> в
<em><code>one.sch
</code></em>. Установите атрибут
<code>value
</code> в
<em>Vmixer
</em>.
</div>
306 <li class=
"level2"><div class=
"li"> Резистор: установите для него невидимый атрибут
<code>footprint
</code> в
<em>R025
</em> и видимый атрибут
<code>value
</code> в
<em>10K
</em>.
</div>
308 <li class=
"level2"><div class=
"li"> Транзистор: добавьте атрибут
<code>value
</code> со значением
<em>2N3904
</em> и невидимый атрибут
<code>footprint
</code> со значением
<em>TO92
</em>.
</div>
310 <li class=
"level2"><div class=
"li"> BNC-коннектор: добавьте невидимый атрибут
<code>footprint
</code> <em>CONNECTOR
2 1</em>, что определяет
<em>m4-элемент
</em>, принимающий аргументы, и мы говорим ему сделать соединитель с двумя рядами и одним столбцом. Хотя в принципиальной схеме у нас BNC-коннектор, но на самом деле пусть он будет смонтирован на панели, а на плате будет фронтальный соединитель, с которого мы и кинем на него провода.
</div>
317 К сожалению, неотъемлемой частью добавленного нами символа
<em><code>2N3904
</code></em>
318 является видимый текст «
2N3904». Поэтому, когда мы добавляем атрибут
319 <code>value
</code> (нужный нам для того, чтобы на топологической схеме отображались
320 соответствующие значения), на нашей принципиальной схеме видны два
321 обозначения, если не сделать атрибут
<code>value
</code> невидимым. Это нехорошо и в
322 данном примере нам придётся смириться с этим, но учтите, что в большинстве
323 случаев намертво прибивать информацию к символам — не очень хорошая
324 идея. Кроме того, атрибут
<code>device
</code> по умолчанию ошибочен и должен иметь
325 значение
<em>NPN_TRANSISTOR
</em>, но это не влияет на наше изложение. Это так,
326 для сведения, что сейчас в
<strong>gschem
</strong> есть символы, переносящие из старых
327 версий
<strong>gschem
</strong> в новые устаревшие методы работы с атрибутами. Если вам
328 придётся работать с этими схемами в
<a href=
"geda-glossary.ru.html#spice" class=
"wikilink1" title=
"geda-glossary.ru.html">SPICE
</a>, символы
329 должны иметь правильные атрибуты
<code>device
</code>.
333 Теперь мы закончили с принципиальными схемами, лишь не определили атрибуты
334 <code>refdes
</code>, и можем воспользоваться командой
<strong>refdes_renum
</strong>, чтобы сделать
335 это для обеих схем сразу. Итак, сохраните
<em><code>two.sch
</code></em>, выйдите из
336 <strong>gschem
</strong> и запустите:
338 <pre class=
"code">refdes_renum --pgskip one.sch two.sch
</pre>
341 Откройте схемы в
<strong>gschem
</strong> снова и посмотрите, какие значения теперь заданы атрибутам
<code>refdes
</code> компонентов. Ключ
<code>--pgskip
</code> устанавливает начало нумерации в
101 для
<em><code>one.sch
</code></em> и в
201 для
<em><code>two.sch
</code></em>. Вам следует знать однако, что запуск
<strong>refdes_renum
</strong> на самом деле полезен только для первоначальной нумерации. Если позже вы станете менять свои схемы, добавлять или удалять компоненты, никто не даст гарантии, что при повторном запуске
<strong>refdes_renum
</strong> компоненты сохранят существующие значения
<code>refdes
</code>. Если тем временем вы с помощью
<strong>gsch2pcb
</strong> уже создали печатную плату, эта путаница с номерами позиционных обозначений приведёт к несоответствию ваших принципиальных схем топологии печатной платы. Поэтому после того как вы один раз запустите
<strong>refdes_renum
</strong> и начнёте заниматься разработкой топологии печатной платы, для безопасности (уникальные) атрибуты
<code>refdes
</code> для каждого из добавляемых компонентов лучше задавать вручную. Также учтите, что
<strong>refdes_renum
</strong> может пронумеровать ваши резисторы не так, как получилось здесь в моём примере, это зависит от порядка их добавления. Имейте это в виду, сравнивая свою окончательную топологию с той, которую увидите на приведённых ниже рисунках.
345 <!-- EDIT7 SECTION "Создание схемы two.sch" [21157-27817] -->
346 <h3 class=
"sectionedit8" id=
"создание_pcb-файлов_из_принципиальных_схем">Создание pcb-файлов из принципиальных схем
</h3>
350 Прежде чем мы сможем продолжить, в
<em><code>one.sch
</code></em> нужно кое-что исправить.
351 Запустите
<strong><code>gschem one.sch
</code></strong> и обратите внимание, что программа
352 <strong>refdes_renum
</strong> установила для наших операционных усилителей значения
353 <code>refdes
</code> в
<em>U101
</em> и
<em>U102
</em>, не подумав, да и откуда она знает, что на
354 самом деле мы хотим использовать два операционных усилителя в одном корпусе
355 <em>TL072
</em>. Для того-то мы и редактировали атрибут
<code>slot
</code> второго
356 операционного усилителя. Нам нужно вернуться и исправить атрибут
<code>refdes
</code>
357 второго усилителя на
<em>U101
</em>, чтобы у обоих усилителей он был одинаков и на
358 нашей печатной плате был только один корпус
<em>TL072
</em>.
362 Теперь, когда файл
<em><code>project
</code></em> для
<strong>gsch2pcb
</strong> уже настроен, всё что
363 нам надо сделать для создания исходного набора pcb-файлов, это запустить
364 <strong>gsch2pcb
</strong>:
366 <pre class=
"code">~/gaf/myproject1$ gsch2pcb project
367 0 file elements and
7 m4 elements added to board.pcb.
</pre>
370 Сообщение гласит: «
0 файловых элементов и
7 m4-элементов добавлено к board.pcb».
371 Так как в файле проекта
<code>output-name
</code> установлено в
<em>board
</em>, то создаваемые pcb-файлы называются
<em><code>board.pcb
</code></em> и
<em><code>board.net
</code></em>.
375 Внимание: более современный совет — сначала создать пустую плату в
376 <strong>pcb
</strong>, а затем при каждом запуске
<strong>gsch2pcb
</strong> в топологии будут
377 производиться изменения, как описано ниже (в разделе
<a href=
"#изменение_схем" title=
":geda:gsch2pcb_tutorial.ru.txt ↵" class=
"wikilink1">Изменение схем
</a>).
378 Смысл в том, что в настоящее время установки по умолчанию для
<strong>gsch2pcb
</strong>
379 совершенно отличаются от таковых для
<strong>pcb
</strong>, и по общему мнению для
380 большинства случаев умолчания
<strong>pcb
</strong> лучше. Но есть одно «но»: если вы с
381 помощью
<strong>pcb2panel
</strong> компонуете из нескольких топологических схем одну на
382 одной плате, то если платы создавались с винегретом из умолчаний
383 <strong>gsch2pcb
</strong> и (современной) программы
<strong>pcb
</strong> без редактирования стека
384 слоёв, которое может требовать дополнительной работы, вы получите
385 непригодные результаты. (mjm, Aug
2008)
389 Если
<strong>gsch2pcb
</strong> говорит вам что-то вроде:
<em>2 unknown elements added to
390 board.pcb.
</em> (
2 неизвестных элемента добавлено к board.pcb), запустите
391 программу с флагом
<code>-v
</code>:
<strong><code>gsch2pcb -v project
</code></strong> и вывод
<strong>gsch2pcb
</strong>
392 подскажет вам, какие компоненты в схеме не имеют известного
<code>footprint
</code>.
393 Либо вы забыли добавить данный атрибут, либо его значение неправильно, либо
394 pcb-элемент для него отсутствует в установленных библиотеках. Но если
395 <strong>gsch2pcb
</strong> вообще не может найти ни одного элемента и все
7 неизвестны,
396 то, вероятно,
<strong>gsch2pcb
</strong> не может найти каталог установки ваших
397 <em>m4-элементов
</em> для
<strong>pcb
</strong>. В таком случае посмотрите первую часть раздела
398 <a href=
"#нестандартные_m4-элементы" title=
":geda:gsch2pcb_tutorial.ru.txt ↵" class=
"wikilink1">Нестандартные m4-элементы
</a>.
402 <!-- EDIT8 SECTION "Создание pcb-файлов из принципиальных схем" [27818-32050] -->
403 <h3 class=
"sectionedit9" id=
"разработка_топологии_в_pcb-файлах">Разработка топологии в pcb-файлах
</h3>
408 <h4 id=
"установка_умолчаний">Установка умолчаний
</h4>
412 <a href=
"media/geda/board-1.png" class=
"media" target=
"_blank" title=
"geda:board-1.png"><img src=
"media/geda/board-1.png" class=
"medialeft" title=
"pcb, шаг 1" alt=
"pcb, шаг 1" /></a>Запустите
<strong><code>pcb board.pcb
</code></strong>. Вы увидите
413 большую кучу pcb-элементов, заданных в атрибутах
<code>footprint
</code> компонентов
414 схемы. Это нормально, позже мы приведём всё это в порядок.
418 Когда вы открываете pcb-файл в
<strong>pcb
</strong> первый раз, нужно настроить разные
419 исходные значения. Обычно для большей части работы по разводке я сначала
420 устанавливаю шаг сетки в
25 милов из меню
<strong><em>Вид
</em></strong> →
<strong><em>Шаг сетки
</em></strong>
421 →
<strong><em>25 милов
</em></strong>, а затем, если где-нибудь понадобится более плотная
422 компоновка, изменяю его на меньшие значения. Обратите внимание, что если
423 единицами измерения сделать миллиметры с помощью
<strong><em>Вид
</em></strong> →
<strong><em>Единицы
424 измерения сетки
</em></strong> →
<strong><em>мм
</em></strong>, то вместо милов в меню
<strong><em>Вид
</em></strong> →
425 <strong><em>Шаг сетки
</em></strong> будет ряд вариантов размеров в миллиметрах. Между
426 миллиметрами и милами можно переключаться в любое время.
430 Ещё нужно задать умолчания для размеров линий и отверстий в
431 <a href=
"geda-glossary.ru.html#стиль_трассировки" class=
"wikilink1" title=
"geda-glossary.ru.html">стилях разводки
</a> <strong>Сигналы
</strong>,
432 <strong>Питание
</strong>,
<strong>Толстый
</strong> и
<strong>Тонкий
</strong>. Чтобы задать эти размеры, надо просто
433 выбрать один из этих стилей в нижнем левом углу окна
<strong>pcb
</strong> и нажать кнопку
434 <strong>Стиль трассировки
</strong>. Размер своей платы можно установить сейчас, а можно
435 отложить на потом, занявшись работой над топологией. Чтобы изменить размер
436 платы, откройте окно
<strong><em>Файл
</em></strong> →
<strong><em>Настройки…
</em></strong> и выберите
437 страницу
<strong>Размеры
</strong>. В этом окне можно поменять и другие значения,
438 например, приращения и значения для
<a href=
"geda-glossary.ru.html#проверка_соответствия_проектным_нормам" class=
"wikilink1" title=
"geda-glossary.ru.html">проверки на соответствие проектным нормам
</a>. Чтобы узнать,
439 что это такое, вам следует просмотреть документацию по
<strong>pcb
</strong>. И может
440 быть вам покажется полезной установка
<strong><em>Вид
</em></strong> →
<strong><em>Отображать
446 <h4 id=
"распределение_компонентов">Распределение компонентов
</h4>
450 <a href=
"media/geda/board-2.png" class=
"media" target=
"_blank" title=
"geda:board-2.png"><img src=
"media/geda/board-2.png" class=
"mediaright" title=
"Шаг 2" alt=
"Шаг 2" /></a> Берите элементы средней кнопкой мыши и
451 расставляйте по одному, пока их все не разнесёте.
455 Можно и самой программе
<strong>pcb
</strong> позволить разнести элементы с помощью
456 <strong><em>Выделение
</em></strong> →
<strong><em>Распределить все элементы
</em></strong>, а потом уже вручную
457 подкорректировать их положение.
462 <h4 id=
"загрузка_списка_соединений">Загрузка списка соединений
</h4>
466 <a href=
"media/geda/board-3.png" class=
"media" target=
"_blank" title=
"geda:board-3.png"><img src=
"media/geda/board-3.png" class=
"medialeft" title=
"Шаг 3" alt=
"Шаг 3" /></a>
469 <li class=
"level1"><div class=
"li"> Откройте
<strong><em>Файл
</em></strong> →
<strong><em>Загрузить список соединений
</em></strong> и выберите
<em><code>board.net
</code></em></div>
471 <li class=
"level1"><div class=
"li"> Запустите
<strong><em>Соединения
</em></strong> →
<strong><em>Оптимизировать линии связи
</em></strong>. Теперь выводы и контактные площадки компонентов должны соединяться прямыми линиями —
<a href=
"geda-glossary.ru.html#линии_связи" class=
"wikilink1" title=
"geda-glossary.ru.html">линиями связи
</a> — в соответствии со схемой.
</div>
476 Для уменьшения беспорядка
<strong>pcb
</strong> пытается начертить линии связи для сложных
477 соединений так, чтобы их суммарная длина была наименьшей. Попробуйте
478 перетащить элемент на другую сторону рабочей области. Линии связи будут
479 следовать за ним как резиновые, но их концы не будут перепрыгивать на другие
480 узлы, хотя при этом общая длина и могла бы стать меньше. Перепрыгнуть линии
481 связи, для получения «лучшей» геометрии, заставит
482 <a href=
"geda-glossary.ru.html#действие" class=
"wikilink1" title=
"geda-glossary.ru.html">действие
</a> <strong><em>Оптимизировать линии связи
</em></strong>. В любое
483 время его легко запустить, нажав клавишу
<kbd>O
</kbd>.
488 <h4 id=
"компоновка">Компоновка
</h4>
492 <a href=
"media/geda/board-4.png" class=
"media" target=
"_blank" title=
"geda:board-4.png"><img src=
"media/geda/board-4.png" class=
"mediaright" title=
"Шаг 4" alt=
"Шаг 4" /></a>Теперь линии связи нужно заменить дорожками,
493 которые можно будет протравить на медной поверхности платы. Обычно после
494 <strong><em>Распределить все элементы
</em></strong> линии связи расположены беспорядочно и
495 часто пересекаются. Попробуйте распутать как можно больше этих линий
496 перемещением и поворотом компонентов. Ключ к хорошо разведённой печатной
497 плате — правильное размещение компонентов. Хотя
<strong>pcb
</strong> и пытается
498 приводить линии связи в порядок, будет хорошо, если вы привыкнете при
499 размещении компонентов время от времени их оптимизировать, нажимая клавишу
504 Выберите инструмент
<strong>ROT
</strong> (
<kbd>F9
</kbd>), позволяющий средней кнопкой
505 мыши перемещать элементы, а левой — поворачивать. Правой кнопкой при
506 увеличенном масштабе можно смещать область просмотра в пределах рабочей
507 области окна. Попробуйте увеличить и уменьшить масштаб колёсиком мыши или
508 клавишами
<kbd>Z
</kbd> и
<kbd>Shift
</kbd>+
<kbd>Z
</kbd>. Наведите курсор мыши на вывод и
509 нажмите клавишу
<kbd>F
</kbd>, чтобы подсветить объекты, касающиеся этого
510 вывода и получше рассмотреть дорожки. Попробуйте убрать подсветку, нажав
511 <kbd>Shift
</kbd>+
<kbd>F
</kbd>. В любое время изменения можно отменить, нажав
516 Обратите внимание: вместо того, чтобы вручную размещать компоненты (или
517 разносить с помощью команд
<strong><em>Выделение
</em></strong> →
<strong><em>Распределить …
</em></strong>),
518 как описано выше, можно использовать возможность авторазмещения в
519 <strong>pcb
</strong>. Для этого нужно загрузить список соединений, выбрать компоненты для
520 автоматического размещения (если это первый запуск
<strong>pcb
</strong>, просто
521 <strong><em>Выделение
</em></strong> →
<strong><em>Выделить все видимые объекты
</em></strong>), затем выбрать
522 <strong><em>Выделение
</em></strong> →
<strong><em>Авторазмещение выделенных элементов
</em></strong>. После
523 этого можно снова подкорректировать созданную программой расстановку
524 вручную. Функция авторазмещения должна расставить элементы более разумно,
525 чем функция распределения, но когда топология разрастается, она работает
531 <h4 id=
"замещение_линий_связи_дорожками">Замещение линий связи дорожками
</h4>
535 <a href=
"media/geda/board-5.png" class=
"media" target=
"_blank" title=
"geda:board-5.png"><img src=
"media/geda/board-5.png" class=
"medialeft" title=
"Шаг 5" alt=
"Шаг 5" /></a> Теперь можно начать
536 <a href=
"geda-glossary.ru.html#трассировка" class=
"wikilink1" title=
"geda-glossary.ru.html">трассировку
</a> — разводку дорожек между
537 выводами, соединёнными линиями связи. На левой панели инструментов
<strong>pcb
</strong>
538 выберите инструмент
<strong>LINE
</strong>, выберите слой, на котором хотите чертить
539 (
<strong>solder
</strong> – слой пайки,
<strong>component
</strong> – слой компонентов, и т. д.), и
540 начните чертить линии, выбирая конечные точки левой кнопкой мыши. Отметим
541 ещё раз, клавиша
<kbd>F
</kbd> поможет вам найти дорожки, которые нужно
542 соединить. Если вы хотите остановить текущую дорожку, чтобы начать чертить
543 новую где-то в другом месте, закончите её щелчком средней кнопки мыши.
544 Можно поиграться здесь и с автотрассировкой.
548 Очень полезное действие инструмента
<strong>SEL
</strong> — выделение нескольких
549 объектов с последующим вырезанием или копированием их в буфер обмена из меню
550 <strong><em>Правка
</em></strong> →
<strong><em>Вырезать выделение в буфер
</em></strong> (или
<strong><em>Правка
</em></strong> →
551 <strong><em>Копировать выделение в буфер
</em></strong>). Содержимое буфера можно тотчас же
552 вставить или отменить текущую вставку выбором другого
553 инструмента. Содержимое буфера можно вставить потом в любое время из меню
554 <strong><em>Буфер
</em></strong> →
<strong><em>Вставить из буфера
</em></strong>. Таким образом можно перемещать
555 области топологии или переходить в другое место и повторять общие шаблоны
556 дорожек. Чтобы выбрать несколько объектов инструментом
<strong>SEL
</strong>, надо нажав
557 кнопку мыши выделить нужную область, потом нажав
<kbd>Shift
</kbd> и щёлкая
558 мышью можно добавлять объекты к уже выделенным.
562 Когда разводка дорожек закончена (если при очередной оптимизации линий связи
563 все дорожки разведены,
<strong>pcb
</strong> вас поздравит с этим), плата может выглядеть
564 примерно так, как показано здесь. Для такого вида я выбрал
<strong><em>Вид
</em></strong> →
565 <strong><em>Отображаемое название элемента
</em></strong> →
<strong><em>Значение
</em></strong>).
569 Вам, вероятно, хочется иметь больше информации по использованию
<strong>pcb
</strong> и в
570 tar-архиве исходных текстов
<strong>pcb
</strong> есть комплект документации в формате
571 <abbr title=
"HyperText Markup Language">HTML
</abbr>. Я не знаю, на что здесь сослаться, но со страницы
572 <a href=
"http://sourceforge.net/projects/pcb/" class=
"urlextern" title=
"http://sourceforge.net/projects/pcb/" rel=
"nofollow">Разработка pcb
</a> можно скачать
573 последний tar-архив. Файлы документации могут быть установлены где-то и в
574 вашей системе. В Debian они устанавливаются из пакета в
575 <em><code>/usr/share/doc/pcb/html/
</code></em>. В
<strong>pcb
</strong> есть ещё и удобная «активная»
576 документация, с помощью которой можно познакомиться с назначением клавиш или
577 вводимыми с клавиатуры командами. Откройте меню
<strong><em>Информация
</em></strong> →
578 <strong><em>Назначение клавиш
</em></strong> и вы, вероятно, обнаружите, что просто читая об
579 имеющихся привязках клавиш можно научиться многому из того, что можно делать
580 в
<strong>pcb
</strong>. Если в окне
<strong><em>Файл
</em></strong> →
<strong><em>Настройки…
</em></strong> вы выбрали
581 <em>Использовать отдельное окно для ввода команд
</em>, то затем, когда откроете
582 окно команд через
<strong><em>Окно
</em></strong> →
<strong><em>Ввод команды
</em></strong> (или клавишей
583 <kbd>:
</kbd>), вы увидите стрелку и надпись
<strong>Справка по
584 командам
</strong>. Щёлкните на стрелку и откроется справка по некоторым командам,
585 которые здесь можно набрать и для которых могут отсутствовать пункты меню
590 Скажем, например, вы задали на странице
<strong><em>Настройки…
</em></strong> →
591 <strong><em>Приращения
</em></strong> размер приращений равный
5 милов. С такой настройкой
592 можно выбрать несколько линий и затем увеличить их ширину на
5 милов из меню
593 <strong><em>Выделение
</em></strong> →
<strong><em>Изменить размер выделенных объектов
</em></strong> →
594 <strong><em>Линии +
5 милов
</em></strong>. Но предположим, значения ширины хочется менять
595 произвольно, а каждый раз
<strong>Настройки…
</strong> менять неудобно. Тогда можно
596 выбрать несколько линий, открыть окно команды (нажатием
<kbd>:
</kbd>) и
599 <pre class=
"code">changesize(selectedlines, +
3, mils)
</pre>
602 и выбранные линии увеличатся на
3 мила. Эта команда теперь в списке истории, её можно вызвать повторно и быстро отредактировать в окне команды, подставив нужные значения размеров.
607 <h4 id=
"посмотрим_на_другую_сторону_платы">Посмотрим на другую сторону платы
</h4>
611 Для некоторых разработок важно располагать компоненты на обеих сторонах
612 платы, хотя в предшествующем примере это нам и не нужно. В таких случаях
613 клавишей
<kbd>Tab
</kbd> плату можно перевернуть сверху вниз и посмотреть на
614 неё сзади, в то время как клавишей
<kbd>B
</kbd> выделенный компонент можно
615 переместить на противоположную сторону платы. Для двухсторонних плат также
616 важно учитывать, на какой стороне находится конкретный слой дорожек. Это
617 можно посмотреть и настроить в диалоговом окне
<strong><em>Файл
</em></strong> →
618 <strong><em>Настройки…
</em></strong> →
<strong><em>Слои
</em></strong> →
<strong><em>Группы
</em></strong>. Слои стороны
619 <strong>component
</strong> будут находиться наверху платы, слои стороны
<strong>solder
</strong> —
620 внизу. В этом окне нужно обеспечить, чтобы все слои, которые будут
621 производиться за один шаг (т. е. протравливаться фотолитографическим
622 методом), были сгруппированы вместе.
626 <!-- EDIT9 SECTION "Разработка топологии в pcb-файлах" [32051-48489] -->
627 <h2 class=
"sectionedit10" id=
"изменение_схем">Изменение схем
</h2>
631 Процесс переноса изменений принципиальной схемы в топологию
<strong>pcb
</strong> с
632 помощью
<strong>gsch2pcb
</strong> очень прост. После того как с помощью
<strong>gsch2pcb
</strong>
633 создан исходный файл
<em><code>board.pcb
</code></em>, всякий раз, когда в схемы вносятся
634 изменения в
<strong>gschem
</strong>, нужно запускать
<strong><code>gsch2pcb project
</code></strong>. Затем надо
635 будет запустить
<strong><code>pcb board.pcb
</code></strong> и выполнить необходимые шаги в
636 зависимости от действий программы
<strong>gsch2pcb
</strong>. Каждый раз при запуске
637 <strong>gsch2pcb
</strong> происходит следующее:
640 <li class=
"level1"><div class=
"li"> <strong>gsch2pcb
</strong> всегда создаёт новый список соединений
<em><code>board.net
</code></em>. Если соединения изменились, загрузите этот файл после запуска
<strong>pcb
</strong>.
</div>
642 <li class=
"level1"><div class=
"li"> Если вы добавили в схему компоненты (с атрибутами
<code>footprint
</code>),
<strong>gsch2pcb
</strong> создаст файл
<em><code>board.new.pcb
</code></em>, содержащий все новые pcb-элементы, соответствующие этим атрибутам. Затем запустите
<strong><code>pcb board.pcb
</code></strong> и загрузите
<em><code>board.new.pcb
</code></em> с новыми элементами в существующую топологию с помощью
<strong><em>Файл
</em></strong> →
<strong><em>Загрузить топологию в буфер обмена
</em></strong>. Разместите новые элементы, загрузите новый список соединений и проведите новые дорожки.
</div>
644 <li class=
"level1"><div class=
"li"> Если вы удалили компоненты из схемы,
<strong>gsch2pcb
</strong> удалит соответствующие pcb-элементы из
<em><code>board.pcb
</code></em>. Вам нужно только запустить
<strong><code>pcb board.pcb
</code></strong> и убрать висящие дорожки, оставшиеся от удалённых элементов.
</div>
646 <li class=
"level1"><div class=
"li"> Если вы изменили атрибут
<code>footprint
</code> существующего компонента,
<strong>gsch2pcb
</strong> удалит соответствующий ему старый элемент из
<em><code>board.pcb
</code></em> и добавит новый элемент к
<em><code>board.new.pcb
</code></em>.
</div>
648 <li class=
"level1"><div class=
"li"> Если вы изменили атрибуты
<code>value
</code> компонентов схемы, изменённые значения будут внесены непосредственно в файл
<em><code>board.pcb
</code></em>.
</div>
653 Итак, при использовании
<strong>gsch2pcb
</strong> все изменения pcb-элементов приводятся
654 в действие изменениями в принципиальных схемах и элементы для компонентов
655 никогда не нужно добавлять или удалять вручную.
659 Однако pcb-элементы, не являющиеся частью схем, такие как отверстия для
660 крепежа печатной платы, всё же придётся добавлять вручную. При этом надо
661 обеспечить, чтобы таким, добавленным вручную, pcb-элементам никогда не
662 задавалось
<code>Название на плате
</code>, так как оно зарезервировано для значений
663 атрибутов
<code>refdes
</code> компонентов принципиальной схемы и
<strong>gsch2pcb
</strong> захочет
664 удалить элементы с непустым
<code>Названием на плате
</code>, не соответствующие ни
665 одному из значений
<code>refdes
</code> компонентов схемы.
669 До сих пор для нашей платы мы использовали только
<em>m4-элементы
</em>, теперь
670 давайте изменим схему и попробуем работать с
<em>файловыми элементами
</em>. Но
671 сначала хорошо бы познакомиться с элементами, предлагаемыми в
<strong>pcb
</strong> по
672 умолчанию. В зависимости от места установки вашей
<strong>pcb
</strong> у вас будет
673 каталог
<em><code>/usr/local/share/pcb/newlib
</code></em>,
<em><code>/usr/share/pcb/newlib
</code></em>
674 или возможно какой-то ещё (это зависит от
<em>префикса
</em>, указанного при
675 установке
<strong>pcb
</strong>). В версиях
<strong>pcb
</strong> до
<strong>20031113</strong> вместо библиотеки
676 <strong>newlib
</strong> использовалась
<strong>pcb_lib
</strong>, путь доступа к которой
677 <em><code>/usr/local/pcb_lib
</code></em> или
<em><code>/usr/lib/pcb_lib
</code></em>. Когда вы найдёте у
678 себя каталог
<em><code>newlib
</code></em>, взгляните на имена файлов в его
679 подкаталогах. Каждое из этих имён может использоваться как значение атрибута
680 <code>footprint
</code> для компонентов в принципиальной схеме. Например, имеется
681 файл
<em><code>xxx/newlib/
2_pin_thru-hole_packages/
0.125W_Carbon_Resistor
</code></em>, так
682 что если бы мы на своей плате захотели использовать
0,
125-ваттные резисторы,
683 атрибут
<code>footprint
</code> резистора можно было бы установить в
684 <em>0.125W_Carbon_Resistor
</em> вместо
<em>R025
</em>. Попробуйте изменить, скажем,
685 резистор
<em>R101
</em> в
<em><code>one.sch
</code></em>, задав для него
686 <em>0.125W_Carbon_Resistor
</em>, а затем запустите
<strong><code>gsch2pcb project
</code></strong>.
687 Если
<strong>gsch2pcb
</strong> не находит такого элемента, значит в свой файл
688 <em><code>project
</code></em> вам нужно добавить путь доступа к каталогу
<em><code>newlib
</code></em>
689 примерно такой строкой:
691 <pre class=
"code">elements-dir /usr/lib/newlib
</pre>
694 Если
<strong>gsch2pcb
</strong> найдёт его, вы получите:
696 <pre class=
"code">~/gaf/myproject1$ gsch2pcb project
697 board.pcb is backed up as board.pcb.bak1.
698 1 elements deleted from board.pcb.
699 1 file elements and
0 m4 elements added to board.new.pcb.
</pre>
702 Теперь нужно запустить
<strong><code>pcb board.pcb
</code></strong>. Вы увидите, что элемент для резистора
<em>R101
</em> пропал
<sup><a href=
"#fn__5" id=
"fnt__5" class=
"fn_top">5)
</a></sup> и при загрузке
<em><code>board.new.pcb
</code></em> из меню
<strong><em>Файл
</em></strong> →
<strong><em>Загрузить топологию в буфер обмена
</em></strong> появится новый элемент.
706 <!-- EDIT10 SECTION "Изменение схем" [48490-55497] -->
707 <h2 class=
"sectionedit11" id=
"нестандартные_символы_для_gschem">Нестандартные символы для gschem
</h2>
711 Обычным способом создания своих нестандартных символов является изменение
712 существующих. Что мне не нравится в используемом нами
713 <em><code>dual-opamp-
1.sym
</code></em>, так это то, что выводы питания повторяются на
714 каждом символе. Хотя кому-то может это и нравится, мне кажется, что при этом
715 страница, полная операционных усилителей, выглядит слегка хаотично. Это
716 предоставляет нам неплохую возможность изучить атрибуты
<code>net
</code> в данном
717 руководстве. К символам в
<strong>gschem
</strong> можно прикреплять атрибуты
<code>net
</code>,
718 которые привязывают выводы к конкретным соединениям. Вместо подключения
719 выводов
<em>8</em> каждого операционного усилителя к
<em><code>Vcc
</code></em>, а выводов
<em>4</em>
720 к
<em><code>Vee
</code></em> в схеме, можно сделать так, что это будет производиться
721 автоматически, и эти выводы из схемы убрать. Для этого просто скопируйте
722 файл исходного символа в каталог своих символов для
<strong>gschem
</strong>, задав ему
723 новое имя, и отредактируйте его. Выполните шаги, описанные ниже. (Каталог
724 установки символов gEDA может быть у вас другим, например,
725 <em><code>/usr/local/share/gEDA/sym/
</code></em>):
730 <h5 id=
"установка_видимости_атрибутов">Установка видимости атрибутов
</h5>
734 <a href=
"media/geda/gschem-sym-1.png" class=
"media" target=
"_blank" title=
"geda:gschem-sym-1.png"><img src=
"media/geda/gschem-sym-1.png" class=
"medialeft" title=
"Шаг 1" alt=
"Шаг 1" /></a>
736 <pre class=
"code">cd /usr/share/gEDA/sym/analog/
737 cp dual-opamp-
1.sym ~/gaf/gschem-sym/opamp-dual.sym
739 gschem opamp-dual.sym
</pre>
741 <li class=
"level1"><div class=
"li"> Нажмите клавиши
<kbd>E
</kbd><kbd>N
</kbd>, чтобы атрибуты было видно.
</div>
743 <li class=
"level1"><div class=
"li"> Нажмите клавиши
<kbd>V
</kbd><kbd>E
</kbd>, чтобы увидеть всю схему целиком.
</div>
745 <li class=
"level1"><div class=
"li"> Выделите вывод
<em>8</em> щелчком левой кнопки мыши по нему.
</div>
751 <h5 id=
"удаление_видимых_выводов_питания">Удаление видимых выводов питания
</h5>
755 <a href=
"media/geda/gschem-sym-2.png" class=
"media" target=
"_blank" title=
"geda:gschem-sym-2.png"><img src=
"media/geda/gschem-sym-2.png" class=
"medialeft" title=
"Шаг 2" alt=
"Шаг 2" /></a>
758 <li class=
"level1"><div class=
"li"> Удалите вывод
<em>8</em> нажатием клавиши
<kbd>Delete
</kbd>.
</div>
760 <li class=
"level1"><div class=
"li"> Подобным образом выделите и удалите вывод
<em>4</em>.
</div>
762 <li class=
"level1"><div class=
"li"> Дважды щелкните по строкам
<code>slotdef
</code>, чтобы выбрать и изменить их. Удалите из них выводы
<em>4</em> и
<em>8</em>.
</div>
768 <h5 id=
"добавление_глобальных_соединений_в_числовом_виде">Добавление глобальных соединений в числовом виде
</h5>
772 <a href=
"media/geda/gschem-sym-3.png" class=
"media" target=
"_blank" title=
"geda:gschem-sym-3.png"><img src=
"media/geda/gschem-sym-3.png" class=
"medialeft" title=
"Шаг 3" alt=
"Шаг 3" /></a>Из меню
<strong><em>Добавить
</em></strong> →
<strong><em>Атрибут…
</em></strong>:
775 <li class=
"level1"><div class=
"li"> Добавьте атрибут
<code>net
</code> со значением
<em>Vcc:
8</em>. Выберите
<strong>Показать имя и значение
</strong> и сделайте его невидимым.
</div>
777 <li class=
"level1"><div class=
"li"> Добавьте атрибут
<code>net
</code> со значением
<em>Vee:
4</em>. Установите
<strong>Показать имя и значение
</strong> и сделайте его невидимым.
</div>
779 <li class=
"level1"><div class=
"li"> Атрибут
<code>device
</code> установите просто в
<em>OPAMP
</em>.
</div>
784 Упорядочьте новые атрибуты, как показано на рисунке.
788 Если хотите, можете изменить значение атрибута
<code>footprint
</code>, которое будет
789 устанавливаться по умолчанию. При редактировании символов очень важно после
790 внесения всех изменений выполнять
<strong><em>Правка
</em></strong> →
<strong><em>Смещение
791 символа…
</em></strong>, устанавливая смещение в ноль перед сохранением. Сделайте это
792 и сохраните символ из меню
<strong><em>Файл
</em></strong> →
<strong><em>Сохранить
</em></strong>. Я установил
793 значение атрибута
<code>footprint
</code> по умолчанию в
<em>DIP8
</em>, так как это мой
799 <h5 id=
"запуск_gschem_с_новым_символом">Запуск gschem с новым символом
</h5>
803 <a href=
"media/geda/one-sch-3.png" class=
"media" target=
"_blank" title=
"geda:one-sch-3.png"><img src=
"media/geda/one-sch-3.png" class=
"medialeft" title=
"one.sch" alt=
"one.sch" /></a> Запустите
<strong><code>gschem one.sch
</code></strong>. Выделите и
804 удалите клавишей
<kbd>Delete
</kbd> оба операционных усилителя. Удалите также
805 подключенные к ним символы
<em><code>Vcc
</code></em> и
<em><code>Vee
</code></em>. Откройте окно
806 <strong><em>Добавить
</em></strong> →
<strong><em>Компонент…
</em></strong> и из библиотеки
<em><code>gschem-sym
</code></em>,
807 которая теперь должна содержать ваш новый символ, выберите и поместите на
808 схему два символа
<em><code>opamp-dual.sym
</code></em>. Переместите их в подходящее место
809 на схеме и не забудьте зеркально отразить и повернуть нижний операционный
810 усилитель как и прежде. Измените атрибуты каждого из операционных
811 усилителей, задав им те же значения, которые они имели раньше,
812 т. е. установите
<code>footprint
</code> в
<em>DIL
8 300</em>, добавьте атрибут
<code>value
</code>
813 со значением
<em>TL072
</em> и установите
<code>refdes
</code> для обоих усилителей в
814 <em>U101
</em>. Установите
<code>slot
</code> для второго операционного усилителя в
815 <em>2</em>. Если не установить значения атрибутов в те, что были раньше,
816 <strong>gsch2pcb
</strong> подумает, что это другой компонент и удалит существующий корпус
817 <em>DIL
</em> с топологической схемы. Если всё сделано верно, запуск
<strong>gsch2pcb
</strong>
820 <pre class=
"code">~/gaf/myproject1$ gsch2pcb project
821 Found a cpinlist head with a netname! [Vcc]
822 Found a cpinlist head with a netname! [Vee]
823 Found a cpinlist head with a netname! [Vcc]
824 Found a cpinlist head with a netname! [Vee]
825 Found a cpinlist head with a netname! [Vcc]
826 Found a cpinlist head with a netname! [Vee]
827 Found a cpinlist head with a netname! [Vcc]
828 Found a cpinlist head with a netname! [Vee]
829 No elements to add so not creating board.new.pcb
</pre>
832 откуда видно, что программа gEDA
<strong>gnetlist
</strong> кажется немножко «разволновалась», обнаружив добавленные нами только что новые атрибуты
<em>Vcc
</em> и
<em>Vee
</em><sup><a href=
"#fn__6" id=
"fnt__6" class=
"fn_top">6)
</a></sup>, и создала новый список соединений. Теперь, я думаю, схема выглядит опрятнее. И если вы запустите
<strong><code>pcb board.pcb
</code></strong>, загрузите новый список соединений, а затем оптимизируете линии связи, программа
<strong>pcb
</strong> должна будет сообщить вам, что плата готова, а это значит, что соединение выводов питания операционных усилителей через атрибут
<code>net
</code> сработало.
836 Подробное описание создания символов вы можете найти в
837 <a href=
"geda-gschem_symbol_creation.ru.html" class=
"wikilink1" title=
"geda-gschem_symbol_creation.ru.html">Руководстве по созданию символов
</a> на
838 странице
<a href=
"geda-documentation.ru.html" class=
"wikilink1" title=
"geda-documentation.ru.html">Документации gEDA
</a>.
842 <!-- EDIT11 SECTION "Нестандартные символы для gschem" [55498-63623] -->
843 <h2 class=
"sectionedit12" id=
"нестандартные_файловые_элементы">Нестандартные файловые элементы
</h2>
847 Свои оригинальные
<em>файловые элементы
</em> можно создавать либо в процессе
848 работы в
<strong>pcb
</strong> над какой-то топологической схемой, либо просто запуская
849 <strong>pcb
</strong> для создания элемента. Для демонстрации сделаем нестандартный
850 элемент для диода
<em>1N4004
</em>.
<strong>pcb
</strong> предоставляет в наше распоряжение
851 <a href=
"geda-glossary.ru.html#аксиальный_компонент" class=
"wikilink1" title=
"geda-glossary.ru.html">аксиальные
</a> корпуса, но мы хотим
852 быть уверены, что для сверления отверстий под слегка утолщённые выводы этого
853 1-амперного диода будет использоваться подходящий размер сверла. Для них
854 нужно сверло диаметром примерно
42 мила (#
58).
858 Запустите
<strong>pcb
</strong> и первое, что надо сделать, это выбрать стиль разводки
859 <strong>Сигналы
</strong> и изменить для него размеры (нажмите кнопку
<strong>Стиль трассировки
</strong>).
860 Установите
<strong>Отверстие перехода
</strong> в
<em>42</em>, а
<strong>Размер перехода
</strong> в
<em>70</em>
861 или, если хотите, больше.
863 <strong><em>Вид
</em></strong> →
<strong><em>Шаг сетки
</em></strong> →
<strong><em>25 милов
</em></strong> и
864 <strong><em>Вид
</em></strong> →
<strong><em>Отображать сетку
</em></strong>.
865 Несколько увеличьте масштаб, а затем начертите элемент:
866 <a href=
"media/geda/pcb-el-1.png" class=
"media" target=
"_blank" title=
"geda:pcb-el-1.png"><img src=
"media/geda/pcb-el-1.png" class=
"medialeft" title=
"Шаг 1" alt=
"Шаг 1" /></a>
869 <li class=
"level1"><div class=
"li"> Выберите инструмент
<strong>VIA
</strong> и поместите два перехода на
400 милов друг от друга.
</div>
871 <li class=
"level1"><div class=
"li"> Наведите курсор мыши на левый переход, нажмите клавишу
<kbd>N
</kbd> и задайте переходу название
<em>1</em>. Задайте правому переходу название
<em>2</em>.
</div>
873 <li class=
"level1"><div class=
"li"> Вывод
<em>1</em> будет катодом и это должно соответствовать номерам выводов в вашем символе диода для
<strong>gschem
</strong>.
</div>
878 <a href=
"media/geda/pcb-el-2.png" class=
"media" target=
"_blank" title=
"geda:pcb-el-2.png"><img src=
"media/geda/pcb-el-2.png" class=
"mediaright" title=
"Шаг 2" alt=
"Шаг 2" /></a>
881 <li class=
"level1"><div class=
"li"> Выберите слой
<strong>Шелкография
</strong> и инструмент
<strong>LINE
</strong>.
</div>
883 <li class=
"level1"><div class=
"li"> Начертите контур компонента как показано, с шириной линии и шагом сетки, установленными в
10 милов.
</div>
885 <li class=
"level1"><div class=
"li"> Установив ширину линии в
20 милов, начертите тремя линиями маркировку катода с левой стороны.
</div>
887 <li class=
"level1"><div class=
"li"> Не перекрывайте площадки пайки линиями слоя шелкографии.
</div>
892 Выделите переходы и только что начерченный контур
893 с помощью инструмента
<strong>SEL
</strong> и закончите создание элемента:
896 <li class=
"level1"><div class=
"li"> <strong><em>Буфер
</em></strong> →
<strong><em>Вырезать выделение в буфер
</em></strong>, подведите курсор мыши к центру левого перехода и щёлкните.
</div>
898 <li class=
"level1"><div class=
"li"> <strong><em>Буфер
</em></strong> →
<strong><em>Преобразовать буфер в элемент
</em></strong></div>
900 <li class=
"level1"><div class=
"li"> <strong><em>Буфер
</em></strong> →
<strong><em>Сохранить элементы из буфера в файл
</em></strong>, укажите
<em><code>~/gaf/pcb-elements
</code></em> и сохраните элемент как
<em><code>D400-
1A
</code></em>, так как это корпус для
1-амперного диода с расстоянием между выводами
400 милов. Можете задать ему любое описательное название по вкусу.
</div>
905 <strong>Примечание:
</strong> если при сохранении элемента указать название уже
906 существующего
<em>m4-элемента
</em>, и если не задать программе
<strong>gsch2pcb
</strong> ключ
907 <code>--use-files
</code> (или
<code>-f
</code>), то она предпочтёт использовать
<em>m4-элемент
</em>.
908 Если вы хотите, чтобы предпочтение всегда отдавалось
<em>файловым элементам
</em>,
909 <code>use-files
</code> можно поместить в файл проекта. Названия
<em>m4-элементов
</em>,
910 кажется, задаются в верхнем регистре, так что можно было бы избежать данных
911 проблем, используя для названий своих
<em>файловых элементов
</em> нижний регистр.
912 Также мне известен лишь один единственный способ сделать изображение вывода
1
913 квадратным – вручную отредактировать файл
<em><code>D400-
1A
</code></em> и изменить флаг
914 квадратности в строке для первого вывода (
<code>Pin ...
"1" ...
</code>). Например, измените строку:
916 <pre class=
"code">Pin(
0 0 70 20 70 42 "" "1" 0x00000001)
</pre>
921 <pre class=
"code">Pin(
0 0 70 20 70 42 "" "1" 0x00000101)
</pre>
924 Теперь
<em>D400-
1A
</em> можно использовать в атрибуте
<code>footprint
</code> символа
925 <strong>gschem
</strong> и
<strong>gsch2pcb
</strong> найдёт его при условии, что вы сделали ссылку
926 <em><code>packages
</code></em>, описанную в разделе
<a href=
"#настройка" title=
":geda:gsch2pcb_tutorial.ru.txt ↵" class=
"wikilink1">Настройка
</a>. Если вы не сделали такую
927 ссылку, программе
<strong>gsch2pcb
</strong> всё же можно сообщить имя каталога элементов
928 следующей строкой в файле проекта:
930 <pre class=
"code">elements-dir ~/gaf/pcb-elements
</pre>
933 Быть может вы уже и заметили, но всё же скажу вам, что кое-что в моём примере
934 <em><code>myproject1
</code></em> неправильно. Во-первых, линии слоя шелкографии в некоторых
935 элементах перекрывают площадки пайки, а во-вторых, транзистор расположен задом
936 наперёд на топологической схеме! В других случаях у вас не должно было бы быть
937 подобных проблем при работе в
<strong>gschem
</strong> и
<strong>pcb
</strong>, но иногда нумерация
938 выводов транзистора может сбить с толку. Если в своих разработках вы будете
939 использовать транзисторы, посмотрите описание
940 моего подхода, как обеспечить, чтобы нумерация
941 выводов символа транзистора для
<strong>gschem
</strong> была
942 скоординирована с номерами выводов pcb-элемента:
943 <a href=
"geda-transistor_guide.ru.html" class=
"wikilink1" title=
"geda-transistor_guide.ru.html">Руководство по транзистору.
</a>
947 Из руководства по транзистору можно увидеть, что проблема здесь в том, что
948 элемент
<em>TO92
</em> использует менее распространённую конфигурацию нумерации
949 выводов
<em>(
3,
2,
1)
</em>, в то время как
<em><code>2N3904-
1.sym
</code></em> похож на символ
950 <em><code>npn-ebc
</code></em>, выводы которого нумеруются в последовательности
951 <em>(
1,
2,
3)
</em>. В
<strong>gschem
</strong> номера выводов
<em>2N3904
</em> можно увидеть, нажав
952 клавиши
<kbd>E
</kbd><kbd>N
</kbd> (и не смущайтесь атрибутом
<code>pinseq
</code>,
953 который почти закрывает
<code>pinnumber
</code>). А в
<strong>pcb
</strong> номера выводов
<em>TO92
</em>
954 можно увидеть наведя курсор мыши на элемент и нажав клавишу
955 <kbd>D
</kbd>. Чтобы убедиться, что видны номера выводов, а не их названия,
956 выберите
<strong><em>Вид
</em></strong> →
<strong><em>Отображать на цоколёвке номера
</em></strong>.
960 У меня есть библиотеки с символами транзисторов и элементами, которые могут
961 показаться вам полезными, так что сначала для удобства можете наполнить свои
962 библиотеки файлами из моих
<a href=
"media/geda/gsch2pcb-libs.tar.gz" class=
"media" target=
"_blank" title=
"geda:gsch2pcb-libs.tar.gz"> библиотек для
963 gschem/PCB
</a>. Разархивируйте их в
<em><code>~/gaf
</code></em>, чтобы получить копию
964 настройки нашего примера, и там вы также найдёте файл
965 <em><code>~/gaf/pcb-elements.Readme
</code></em>, документирующий
966 pcb-элементы.
<em>Примечание: на момент
1.10.2004 г. я поправил pcb-элементы
967 tar-архива, чтобы они не перекрывали площадки пайки линиями слоя
968 шелкографии.
</em> Если вы разархивируете их куда-то ещё, нужно будет
969 обеспечить, чтобы программы
<strong>gschem
</strong> и
<strong>gsch2pcb
</strong> могли их найти,
970 прописав для
<strong>gschem
</strong> строки
<code>component-library
</code> в
<em><code>gafrc
</code></em>, а для
971 <strong>gsch2pcb
</strong> строки
<code>elements-dir
</code> в файл проекта.
975 Если вы установите эти библиотеки, то можете исправить
<em>Q201
</em> в
976 <em><code>two.sch
</code></em>, заменив его посадочное место на
<em>TO-
92</em>, представляющее
977 собой мой нестандартный элемент с нумерацией выводов
<em>(
1,
2,
3)
</em>. Затем
978 запустите
<strong><code>gsch2pcb project
</code></strong>, а затем
<strong><code>pcb board.pcb
</code></strong>, и
979 загрузите новый элемент для транзистора. На следующем рисунке схемы
980 <em><code>two.sch
</code></em> атрибут
<code>footprint
</code> сделан видимым, чтобы подчеркнуть
981 вышесказанное, а также показан новый символ для
<em>2N3904
</em>, созданный из
982 моего
<em><code>npn-ebc.sym
</code></em>, как описано в моём руководстве по
983 транзистору. Если сравнить внешний вид контура этого транзистора на
984 обновлённой топологии
<em><code>board.pcb
</code></em> с тем, что было в исходном варианте,
985 можно увидеть, что ориентация теперь правильна и что линии слоя шелкографии
986 не перекрывают площадок пайки. Также, для иллюстрации другого стиля,
987 получающегося при использовании нестандартных элементов, я изменил атрибуты
988 <code>footprint
</code> для резисторов
<em>R102
</em> и
<em>R103
</em> в
<em><code>one.sch
</code></em> на мои
989 собственные
0,
125-ваттный элемент
<em>R0w8
</em> и
0,
25-ваттный
<em>R0w4
</em>. Можно
990 увидеть также стиль
<em>R101
</em> после замены его посадочного места на
991 <em>0.125W_Carbon_Resistor
</em>, как было предложено выше. Когда вы оцените
992 различия в стилях, я отмечу, что в своих элементах я хотел максимизировать
993 пространство, чтобы показывать тексты значений и позиционных обозначений
994 (тело
0,
125-ваттного элемента могло бы быть и чуть побольше), и немного
995 увеличить диаметр площадок для пайки, чтобы он был менее критичен для
996 используемой техники производства плат. К тому же, для увеличения плотности
997 размещения компонентов расстояние между выводами моего резистора
<em>R0w4
</em>
998 сделано несколько меньшим, чем в
<em>R025
</em>.
1002 <a href=
"media/geda/two-sch-2.png" class=
"media" target=
"_blank" title=
"geda:two-sch-2.png"><img src=
"media/geda/two-sch-2.png" class=
"medialeft" title=
"two.sch" alt=
"two.sch" /></a> <a href=
"media/geda/board-6.png" class=
"media" target=
"_blank" title=
"geda:board-6.png"><img src=
"media/geda/board-6.png" class=
"mediaright" title=
"pcb" alt=
"pcb" /></a>
1006 <!-- EDIT12 SECTION "Нестандартные файловые элементы" [63624-76058] -->
1007 <h2 class=
"sectionedit13" id=
"нестандартные_m4-элементы">Нестандартные m4-элементы
</h2>
1008 <div class=
"level2">
1011 Сначала немного слов о том, как разыскать
<em>m4-элементы
</em>, имеющиеся в
1012 поставке
<strong>pcb
</strong>. Полагаю, в проекте
<strong>pcb
</strong> есть какая-нибудь готовящаяся к
1013 выпуску документация, но в данный момент я не знаю ничего, на что бы указать
1014 вам, и тут нельзя просто сориентироваться по именам файлов, как это можно
1015 было для
<em>файловых элементов
</em>. И ещё, ведь многие из этих элементов
1016 требуют указания аргументов, и вам нужно определить, каких. Так что пока
1017 всё, что я могу сказать вам, это то, что легче всего выяснить, что есть в
1018 наличии, прочитав файлы
<em>m4-элементов
</em>, а для этого нужно знать место их
1019 установки для
<strong>pcb
</strong>. Для версии
<strong>pcb
20031113</strong> каталогом установки
1020 наиболее вероятно будет
<em><code>/usr/share/pcb/m4
</code></em> или
1021 <em><code>/usr/local/share/pcb/m4
</code></em>, в то время как в более ранних версиях
1022 <strong>pcb
</strong> таковым мог быть
<em><code>/usr/X11R6/lib/X11/pcb/m4
</code></em> (чтобы увидеть,
1023 какой из этих каталогов используется программой
<strong>gsch2pcb
</strong>, запустите
1024 <strong><code>gsch2pcb --help
</code></strong> или
<strong><code>gsch2pcb -v project
</code></strong>). Но если у вас
1025 всё установлено где-то в другом месте, нужно выяснить где. Кстати, если
1026 каталог
<strong>m4
</strong> <em>является другим
</em>, нежели вышеуказанные три, тогда
1027 <strong>gsch2pcb
</strong> не найдёт ваши
<em>m4-элементы
</em> в вышеприведённых примерах, и
1028 вам нужно будет добавить правильное имя каталога
<strong>m4
</strong> в свой файл
1029 <em><code>project
</code></em> строкой вида:
1031 <pre class=
"code">m4-pcbdir /путь/к/pcb/m4
</pre>
1034 Просто прочитайте
<em><code>.inc
</code></em>-файлы в каталоге установки
<strong>m4
</strong>. Например, в
1035 файле
<em><code>misc.inc
</code></em> вы найдёте использовавшийся нами элемент
<em>R025
</em>, и
1036 его описание начинается так:
1038 <pre class=
"code"># -------------------------------------------------------------------
1039 # the definition of a resistor (
0.25W) package
1040 # $
1: canonical name
1043 define(`PKG_R025
',
1044 `Element(
0x00 "$
1" "$
2" "$
3" 120 30 0 100 0x00)
1049 Отсюда можно узнать, что здесь определён макрос
<strong>m4
</strong> <code>PKG_
</code> с названием
1050 <em>R025
</em>, принимающий
3 аргумента. Сейчас макросы всех
<em>m4-элементов
</em>
1051 <strong>pcb
</strong> принимают по меньшей мере три аргумента и программа
<strong>gsch2pcb
</strong>
1052 автоматически берёт их из используемых в
<strong>gschem
</strong> атрибутов:
<code>Каноническое
1053 название
</code> (
<code>canonical name
</code>) берётся из
<code>footprint
</code>,
<code>название на плате
</code>
1054 (
<code>name on PCB
</code>) — из
<code>refdes
</code>, а
<code>Значение
</code> (
<code>value
</code>) — из
1056 <code>Каноническое название
</code>, используемое в данных m4-файлах, это просто старый
1057 способ обращения к используемому в современной
<strong>pcb
</strong> полю
<code>Описание
</code>
1058 (
<code>description
</code>), как упомянуто выше в разделе
<strong>Терминология
</strong>.
1059 Так как эти аргументы устанавливаются автоматически, никаких дополнительных
1060 аргументов для
<em>R025
</em>, когда вы задаёте его как
<code>footprint
</code> в
<strong>gschem
</strong>, указывать не нужно.
1061 Но теперь взгляните на определение следующего
<em>m4-элемента
</em> в
<em><code>misc.inc
</code></em>:
1063 <pre class=
"code"># -------------------------------------------------------------------
1064 # the definition of a SIL package without a common pin
1065 # $
1: canonical name
1068 # $
4: number of pins
1069 define(`PKG_SIL
',
1070 `define(`MAXY
', `eval(`$
4' *
100 -
50)
')
1071 Element(
0x00 "$
1" "$
2" "$
3" 160 10 3 100 0x00)
1076 Отсюда вы можете определить, что есть корпус
<em>SIL
</em>, который можно задавать
1077 как
<code>footprint
</code>. Его макрос принимает
4 аргумента, но только первые три из
1078 них обрабатываются автоматически, так что при его использовании нужно задать
1080 На вас снисходит озарение, и вы ясно понимаете, что это корпус «Single
1081 In Line» («односторонний»)! Так что может показаться, что вместо используемого
1082 в нашем примере выше элемента
<em>CONNECTOR
2 1</em>, определяющего
1 столбец,
1083 нужно было бы использовать
<em>SIL
2</em>. Но это ошибка! Потому что, прочитав тело
1084 макроса, можно увидеть, что если аргумент равен
<em>2</em>, второй цикл
<strong>for
</strong> не сможет его обработать. Фактически, он может работать только для аргументов
1085 равных или больших
<em>4</em>. Если же вы всё же запустите
<strong>gsch2pcb
</strong>, и будет казаться, что программа застряла
1086 в бесконечном цикле, причиной, скорее всего, является проблема с аргументами
1087 макроса
<strong>m4
</strong>. Просмотрев
<em><code>misc.inc
</code></em>, вы в итоге определите, какие элементы из него можно использовать:
1089 <pre class=
"code">Корпус Аргументы, которые нужно задать
1090 SD
1 количество выводов корпуса ZIP
1093 SIL
1 количество выводов (мы знаем теперь, что должно быть
>=
4)
1094 CSIL
1 количество выводов
1096 LED
1 диаметр светодиода (LED)
1097 DIODE_LAY
1 расстояние между выводами
1098 AXIAL_LAY
1 расстояние между выводами
1099 CRYSTAL
1 ширина корпуса
1104 SMD_BASE
2 длина и ширина устройства для поверхностного монтажа (SMD)
1105 SMD_CHIP
1 длина корпуса
</pre>
1108 Ну и так далее для прочих файлов
<em><code>.inc
</code></em>…
1112 Действительность такова, что настройка
<strong>m4
</strong> является менее дружественной
1113 для пользователей (нельзя создавать элементы графическим способом) и более
1114 сложной, чем простой подход, используемый для
<em>файловых элементов
</em> (нужно
1115 понимать макросы
<strong>m4
</strong>). Поэтому я советую вам выполнять свои собственные
1116 элементы главным образом в виде
<em>файловых элементов
</em>. С другой стороны
1117 определение отдельных элементов с помощью принимающих аргументы макросов
1118 даёт вам программируемые элементы, что может быть очень полезно при
1119 разработке посадочных мест с большим количеством выводов. Это особенно
1120 хорошо для корпусов микросхем с изменяемыми шириной и количеством
1121 выводов. Поэтому для хорошего примера использования нестандартного
1122 <em>m4-элемента
</em> можно предложить скопировать существующее макроопределение
1123 корпусов микросхем (макрос
<em>DIL
</em>) в m4-файл, который
<strong>gsch2pcb
</strong> сможет
1124 найти, и изменить его по своему вкусу. Местоположение результирующего
1125 m4-файла может быть одним из следующих:
1128 <li class=
"level1"><div class=
"li"> <em><code>pcb.inc
</code></em> в нашем каталоге
<em><code>myproject1
</code></em>, и сделанный нами элемент будет локальным для этого проекта.
</div>
1130 <li class=
"level1"><div class=
"li"> <em><code>~/.pcb/pcb.inc
</code></em>, и элемент станет известен всем нашим проектам.
</div>
1132 <li class=
"level1"><div class=
"li"> <em><code>/путь/к/любому/файлу
</code></em>, если этот путь известен
<strong>gsch2pcb
</strong>, для чего в файл проекта добавляется строка вида:
<pre class=
"code">m4-file /путь/к/любому/файлу
</pre>
1135 В зависимости от того, хотите ли вы, чтобы этот файл был известен только для данного проекта, для всех ваших проектов, или для всех проектов всех пользователей, эту строку можно добавить в один из следующих файлов:
1137 <pre class=
"code">~/gaf/myproject1/project
1139 /usr/local/etc/gsch2pcb
1146 В настоящем руководстве я буду использовать первый способ (
<em><code>pcb.inc
</code></em>),
1147 поэтому скопируйте существующий файл макроса:
1149 <pre class=
"code">cd /usr/local/share/pcb/m4 (or /usr/share/pcb/m4 or /usr/X11R6/lib/X11/pcb/m4)
1150 cp dil.inc ~/gaf/myproject1/pcb.inc
1151 cd ~/gaf/myproject1
</pre>
1154 Теперь отредактируйте полученный файл
<em><code>pcb.inc
</code></em>, только что скопированный вами, и удалите из него всё, кроме макроса
<code>PKG_DIL
</code>. Измените название корпуса на что-то вроде
<code>PKG_DILFAT
</code>, потому что целью наших изменений будет увеличение выводов. На самом деле название можно было бы и не трогать и новое определение использовалось бы вместо старого, но пока продолжим с новым названием. Измените диаметр выводов в строках
<code>PIN
</code> с
<em>60</em> на
<em>70</em>. После этого целиком содержимое файла
<em><code>pcb.inc
</code></em> должно выглядеть так:
1156 <pre class=
"code"># -------------------------------------------------------------------
1157 # the definition of a dual-inline package N and similar types
1158 # $
1: canonical name
1161 # $
4: number of pins
1162 # $
5: package size (
300,
600,
900 +
100 for socket space)
1164 define(`PKG_DILFAT
',
1165 `define(`MAXY
', `eval(`$
4' /
2 *
100)
')
1166 define(`MAXX
', `eval(`$
5' +
100)
')
1167 define(`CENTERX
', `eval(MAXX /
2)
')
1168 Element(
0x00 "$
1" "$
2" "$
3" eval(CENTERX +
20)
100 3 100 0x00)
1170 forloop(`i
',
1, eval($
4 /
2),
1171 `PIN(
50, eval(i *
100 -
50),
70,
28, i)
1173 forloop(`i
',
1, eval($
4 /
2),
1174 `PIN(eval(MAXX -
50), eval(MAXY - i *
100 +
50),
70,
28, eval(i + $
4/
2))
1176 ElementLine(
0 0 0 MAXY
10)
1177 ElementLine(
0 MAXY MAXX MAXY
10)
1178 ElementLine(MAXX MAXY MAXX
0 10)
1179 ElementLine(
0 0 eval(CENTERX -
50)
0 10)
1180 ElementLine(eval(CENTERX +
50)
0 MAXX
0 10)
1181 ElementArc(CENTERX
0 50 50 0 180 10)
1186 Запустите
<strong><code>gschem one.sch
</code></strong> и установите атрибут
<code>footprint
</code> операционного усилителя в
<em>DILFAT
8 300</em>. Затем запустите
<strong><code>gsch2pcb project
</code></strong> и
<strong>gsch2pcb
</strong> удалит элемент
<em>DIL
</em> из
<em><code>board.pcb
</code></em>, добавьте в
<em><code>board.new.pcb
</code></em> новый элемент
<em>DILFAT
</em> из своего m4-файла
<em><code>pcb.inc
</code></em>. Запустите
<strong><code>pcb board.pcb
</code></strong> и загрузите
<em><code>board.new.pcb
</code></em> в свою топологию. Поставьте новый элемент с более толстыми выводами на то место, что освободилось при удалении старого.
1190 <!-- EDIT13 SECTION "Нестандартные m4-элементы" [76059-89014] -->
1191 <h2 class=
"sectionedit14" id=
"многопользовательская_настройка">Многопользовательская настройка
</h2>
1192 <div class=
"level2">
1195 Вышеприведённые примеры ориентированы на отдельного пользователя, чьи
1196 проекты и личные библиотеки символов для
<strong>gschem
</strong> и элементов для
<strong>pcb
</strong>
1197 находятся в его домашнем каталоге. Здесь же приводится способ
1198 многопользовательской настройки для совместного использования ресурсов:
1201 <li class=
"level1"><div class=
"li"> Поместите собственные
<em>файловые элементы
</em> <strong>pcb
</strong> для общего пользования, например, в
<em><code>/usr/local/share/pcb/pcb-elements
</code></em>. Сделайте так, чтобы программа
<strong>gsch2pcb
</strong> искала элементы в этом каталоге для каждого пользователя, добавив вот такую строку в
<em><code>/etc/gsch2pcb
</code></em> или
<em><code>/usr/local/etc/gsch2pcb
</code></em>:
<pre class=
"code">elements-dir /usr/local/share/pcb/pcb-elements
</pre>
1204 Если есть какие-то нестандартные файлы
<em>m4-элементов
</em> для общего пользования, например,
<em><code>/usr/local/share/pcb/pcb.inc
</code></em>, добавьте ещё одну строку в
<em><code>/etc/gsch2pcb
</code></em> или
<em><code>/usr/local/etc/gsch2pcb
</code></em>:
1206 <pre class=
"code">m4-file /usr/local/share/pcb/pcb.inc
</pre>
1209 <li class=
"level1"><div class=
"li"> Если
<strong>pcb
</strong> по умолчанию устанавливает файлы
<strong>m4
</strong> не в
<em><code>/usr/local/share/pcb/m4
</code></em>,
<em><code>/usr/share/pcb/m4,
</code></em> или
<em><code>/usr/X11R6/lib/X11/pcb/m4
</code></em>, сделайте место установки известным для каждого пользователя
<strong>gsch2pcb
</strong>, добавив в
<em><code>/etc/gsch2pcb
</code></em> или
<em><code>/usr/local/etc/gsch2pcb
</code></em> строку:
<pre class=
"code">m4-pcbdir /путь/к/pcb/m4
</pre>
1212 Если вместо
<strong>m4
</strong> используется
<strong>gm4
</strong>, то в файл
<em><code>gsch2pcb
</code></em> добавьте следующее:
1214 <pre class=
"code">m4-command gm4
</pre>
1217 <li class=
"level1"><div class=
"li"> Если в каком-нибудь каталоге есть нестандартные символы
<strong>gschem
</strong> для общего пользования, нужно изменить системный файл
<em><code>system-gafrc
</code></em>, добавив строки
<code>component-library
</code> для них.
</div>
1222 После выполнения вышеуказанных действий пользователи получат доступ к общим
1223 библиотекам и им останется только добавлять в файлы своих проектов
1224 <em><code>project
</code></em> строки
<code>schematics
</code> и
<code>output-name
</code>. Но к тому же им
1225 ничто не мешает использовать и свои собственные, специфические для
1226 пользователя и/или проекта, дополнительные библиотеки символов и элементов.
1230 <!-- EDIT14 SECTION "Многопользовательская настройка" [89015-92061] -->
1231 <h2 class=
"sectionedit15" id=
"создание_печатных_плат">Создание печатных плат
</h2>
1232 <div class=
"level2">
1235 Учебник должен содержать и описание процесса производства печатных плат.
1240 <h5 id=
"фотолитография">Фотолитография
</h5>
1241 <div class=
"level5">
1244 Используйте меню
<strong><em>Файл
</em></strong> →
<strong><em>Экспорт топологии
</em></strong> →
<strong><em>ps
</em></strong> для
1245 создания Postscript-файла, пригодного для печати на прозрачной плёнке.
1246 Обратите внимание на наличие переключателей
'mirror
' (зеркально) и
1247 'ps-invert
' (инверсия ps), которые могут вам понадобиться в зависимости от
1248 вашего способа производства.
1252 Откройте ps-файл и напечатайте только те страницы, что необходимы вам для
1253 производства. В нём много страниц, и многие могут быть вам не нужны.
1257 Если окажется, что площадки и дорожки у вас не печатаются на одной странице
1258 или размещены не на той стороне, нужно посмотреть настройки во вкладке
1259 <strong><em>Файл
</em></strong> →
<strong><em>Настройки…
</em></strong> →
<strong><em>Слои
</em></strong>, надлежащим образом
1260 сгруппировать слои и поместить их на нужную сторону.
1265 <h5 id=
"производство_на_станке">Производство на станке
</h5>
1266 <div class=
"level5">
1269 <a href=
"http://www.lpkf.com" class=
"urlextern" title=
"http://www.lpkf.com" rel=
"nofollow">LPKF
</a> (и может быть другие компании) имеют плоттеры
1270 для печатных плат, понимающие
<a href=
"geda-glossary.ru.html#gerber-файлы" class=
"wikilink1" title=
"geda-glossary.ru.html">Gerber-файлы
</a>. Их можно
1271 произвести, выбрав
<strong><em>Файл
</em></strong> →
<strong><em>Экспорт топологии
</em></strong> →
1272 <strong><em>gerber
</em></strong>, что приведёт к созданию множества файлов. Эти файлы можно
1273 просматривать в
<a href=
"http://geda.seul.org/tools/gerbv/index.html" class=
"urlextern" title=
"http://geda.seul.org/tools/gerbv/index.html" rel=
"nofollow">gerbv
</a> и
1274 сохранять оттуда их графическое представление. Если вы удовлетворены
1275 полученными Gerber-файлами, просто отдайте их кому-нибудь, у кого в
1276 распоряжении есть такое оборудование, и ждите, пока платы будут готовы!
1280 <!-- EDIT15 SECTION "Создание печатных плат" [92062-] --><div class=
"footnotes">
1281 <div class=
"fn"><sup><a href=
"#fnt__5" id=
"fn__5" class=
"fn_bot">5)
</a></sup>
1282 <div class=
"content">Сообщения означают: «board.pcb сохранён как board.pcb.bak1.
1 элемент удалён из board.pcb. Добавлено
1 файловых элементов и
0 m4-элементов в board.pcb». —
<em>Прим. перев.
</em></div></div>
1283 <div class=
"fn"><sup><a href=
"#fnt__6" id=
"fn__6" class=
"fn_bot">6)
</a></sup>
1284 <div class=
"content">Сообщения гласят: «Найден заголовок cpinlist с именем соединения […]!» и «Нет элементов для добавления, так что не создаю board.new.pcb». —
<em>Прим. перев.
</em></div></div>