Администрирование Разное Eagle FAQ Fri, March 29 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Eagle FAQ Печать
Добавил(а) microsin   

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

[Библиотеки]

При создании нового проекта полезно все детали, используемые в проекте, объединить в одну отдельную библиотеку. Это позволит оставить неизменными оригинальные библиотеки, и иметь все детали проекта в одном месте.

Копировать элементы библиотеки (Device, Symbol, Package) необходимо также для того, чтобы сделать его какой-то отдельный вариант, отражающий особенности Вашего проекта.

Копирование через GUI

Процедура копирования выглядит весьма непривычно. Чтобы копировать символ из готовой библиотеки (SRCLIB) в нашу новую библиотеку (DSTLIB) надо сделать следующее:
- открыть в редакторе библиотек нашу библиотеку DSTLIB.
- в панели управления (Control Panel) EAGLE нужно раскрыть раздел Libraries, открыть библиотеку SRCLIB, найти нужный символ, который надо скопировать.
- щелкнуть правой кнопкой на символ и выбрать Copy to Library. Скопированный символ окажется в новой библиотеке DSTLIB.

Копирование через командную строку

Если Вы хотите скопировать в текущую открытую библиотеку (DSTLIB) символ FOOBAR из библиотеки WIDGETS.lbr (SRCLIB), то введите в командной строке:

COPY FOOBAR.sym@WIDGETS.lbr

Чтобы команда успешно выполнилась, библиотека WIDGETS.lbr должна лежать в папке вместе со всеми библиотеками (c:\Program Files\EAGLE-5.6.0\lbr\).

Можно использовать расширения .sym (для символа), .pac (для корпуса) и .dev (для описания устройства, т. е. связи символа и корпуса). Как видно, принцип организации компонентов тот же самый, что и в PCAD. Не вводите расширение в целевом имени (куда копируете), иначе к имени добавится паразитная приставка из расширения. Старайтесь для Device, Symbol и Package давать разные имена - чтобы их проще было различить.

Например, нужно сделать новый вариант корпуса 1X12.PAC с маленькими ножками. В нашем примере корпус 1X12.PAC находится в библиотеке teensy-comp.lbr, и мы хотим сделать корпус 1X12-SMALL-PADS.PAC в той же самой библиотеке (чтобы уменьшить его ножки). Для этого выполняем команду:

COPY 1X12@teensy-comp 1X12-SMALL-PADS

После выполнения команды в библиотеке teensy-comp.lbr появится дубликат символа 1X12 под новым именем 1X12-SMALL-PADS, и сразу же откроется в редакторе корпуса.

Копирование редактированием файла библиотеки

Можно также копировать элементы библиотеки, редактируя файл *.lbr в текстовом редакторе. Дело в том, что файл библиотеки - это обычный XML-файл. К примеру, информация о корпусе находится внутри тега package, например:

< ?xml version="1.0" encoding="utf-8"?>
...< package name="TQFP32-08">
    < description><B>Thin Plasic Quad Flat Package</B> Grid 0.8 mm
   <p><b>Modified</b> for 10mils clearance by 
   <author>schodet@apbteam.org</author>.
   < /description>
   < circle x="-2.7432" y="2.7432" radius="0.3592" width="0.1524" layer="21"/>
   < wire x1="3.505" y1="3.505" x2="3.505" y2="-3.505" width="0.1524" layer="21"/>
   ...< /package>
.. 

Можно сделать копию содержимого секции package, при этом нужно отредактировать имя компонента (в атрибуте name=).

Почему при попытке выполнения в библиотекаре команды COPY (например, чтобы сделать копию корпуса), появляется ошибка "Can't open 'имя_библиотеки.lbr' No such file or directory"?

Вот пример такой ошибки при выполнении команды copy HC49UP@mkii_slim_1.1.lbr HC49UPMOD (нужно сделать копию корпуса HC49UP.pac в корпусе HC49UPMOD.pac):

EAGLE error COPY cmd not find lib file

Проблема в том, что файл библиотеки mkii_slim_1.1.lbr в этом примере находится по сложному пути наподобие C:\Documents and Settings\имя_пользователя\Мои документы\eagle\имя_проекта и т. п. Чтобы не вбивать такой длинный путь, сделайте копию файла библиотеки mkii_slim_1.1.lbr в папку с коротким путем, например C:\TEMP, и выполните команду:

copy HC49UP@c:\temp\mkii_slim_1.1.lbr HC49UPMOD

Копия корпуса HC49UPMOD будет взята из файла c:\temp\mkii_slim_1.1.lbr и создана в текущей открытой библиотеке.

Чтобы поменять префикс позиционного обозначения по умолчанию (RefDes), войдите в редактирование элемента (Edit Device), и кнопкой Prefix поменяйте значение префикса. Эта кнопка находится справа внизу, рядом с кнопками New и Connect. Если префикс не задан, то элемент на схеме получает префикс U$, после которого идет его номер.

Некоторые компоненты (Device) могут состоять из нескольких однотипных символов - например, в логической микросхеме 155ЛА3 есть 4 одинаковых логических элемента И-НЕ, тогда символ для такого элемента имеет признак Add=Next. Это означает, что при добавлении нового символа в схему будет браться следующий по порядку элемент из компонента. Что же тогда означает Add=Request? Такой тип символа назначается той части компонента, которая вставляется в схему только по прямому запросу пользователя (INVOKE). Простой пример - коннектор IEEE1394, который имеет два контакта для экрана. Эти контакты как раз и добавляются в схему командой INVOKE.

EAGLE-add-request

Добавить в схему дополнительный символ (с признаком Add=Request) довольно просто. Сначала в схему добавляется основной символ (с признаком Add=Next), это делается как обычно. После этого вызывается команда INVOKE (тупо печатается в консоли или нажимается соответствующая кнопка в панели инструментов). Далее на схеме нужно щелкнуть на основной символ, появляется дополнительное окно, где нужно выбрать дополнительный символ:

EAGLE-invoke

В нашем примере нужно выбрать символ элемента (Gate) S, и в схему будет добавлена графика символа экрана разъема. См. также в справочной системе подсказку по командам Add, Invoke.

EAGLE-invoke-completed

 

Пример на микросхеме MP1584 (импульсный стабилизатор напряжения):

1. Сделал дубликат Device MP1584 с именем MP1584-EXP.

2. Отредактировал Symbol MP1584-EXP, добавив ножку EXP (просто сделал копию вывода GND и поменял у него имя на EXP).

Eagle create SOIC8 with Exposed Pad change Symbol

3. Сделал дубликат Package SO-8 с именем SOIC8E.

4. Отредактировал Package SOIC8E, добавив SMD pad для EXP, поменял размеры этой площадки по даташиту. Дал этой новой площадке имя EXP.

Eagle create SOIC8 with Exposed Pad change Package

5. Добавил новый Package Variant с посадочным местом SOIC8E (9 выводов).

Eagle create SOIC8 with Exposed Pad create Package Variant

6. Удалил из библиотеки Device MP1584.

7. Переименовал Device MP1584-EXP в Device MP1584.

Новый компонент готов. Чтобы Exposed Pad использовалось по назначению, в редакторе печатной платы, где используется уже новое посадочное место, добавил 9 штук теплоотводящих Via между слоями 1 и 16. В этих слоях используется заливка полигоном с цепью GND, куда и должна быть подключена площадка EXP.

Eagle create SOIC8 with Exposed Pad create Thermal Vias

См. также [7, 8].

[Редактор принципиальной схемы]

В процессе редактирования схемы получается некрасивая нумерация элементов (позиционных обозначений RefDes) деталей. Чтобы автоматически переименовать детали, используйте ULP-скрипт renumber-sch. Внимание! Если у Вас уже есть файл печатной платы *.brd для перенумеруемой схемы *.sch, обязательно откройте его в редакторе печатной платы PCB Eagle - иначе потеряется синхронизация между схемой и печатной платой.

Eagle-renumber-sch

Close but unconnected wires in nets N$10 and VCC - в схеме нарисованы два провода, которые визуально якобы соединены (потому что накладываются друг на друга), однако физически принадлежат разным цепям N$10 и VCC. Попробуйте выполнить команды show N$10 и show VCC, чтобы определить, в каком месте произошла ошибка. Можно также кликнуть на это предупреждение, чтобы указатель переместился на предполагаемое место ошибки.

Missing junction in net GND - возможно два проводника пересекаются, однако между ними нет соединения? Это просто предупреждение с целью удостовериться, что Вы понимаете, что делаете. Либо уберите пересечение, либо поставьте там соединение (должен стоять кружок, обозначающий соединение). Может быть, одна из пересекающихся цепей имеет неправильно заданное имя?

Net VCC overlaps pin - цепь VCC заканчивается на выводе компонента, однако не соединена с ним. Визуально на схеме все в порядке. Чтобы исправить ошибку, временно передвиньте компонент на схеме, и потом поместите обратно. При этом автоматически создастся соединение цепи с выводом компонента.

Only one pin on net N$1 - в цепи отсутствует источник (source) и получатель (destination) электрического тока. Т. е. реально она ничего не соединяет. Ошибка возможно связана с предыдущими проблемами - визуально на схеме все в порядке, но нужного соединения нет. Ошибка исчезнет, если Вы восстановите соединение.

На этом рисунке показаны 2 электрических соединения, но на первом стоит круглая точка, а на втором нет:

Eagle junction point

Когда точка соединения не проставляется, то схема получается не читаемой, и приходится вручную рисовать точку соединения командой JUNCTION (ей соответствует кнопка Junction на левой вертикальной панели инструментов редактора принципиальной схемы).

Eagle junction button

ИМХО, вручную расставлять точки соединения неудобно. Чтобы точка соединения ставилась автоматически, нужно поставить галочку в настройках меню Options -> Set... -> закладка Misc -> галочка Auto set junction.

Eagle Auto set junction option

Отключить автоматическую установку точки соединения можно, если снять эту галочку, или если в командной строке редактора выполнить команду SET AUTO_JUNCTION OFF;.

В этом библиотечном компоненте, где в RefDes ненормально появляется символ доллара $, не назначен префикс (Prefix) для позиционного обозначения элемента Device. Как это делается, см. [6], "Шаг 19. Добавьте префикс для позиционного обозначения устройства".

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

Но как быть, если в схему уже добавлено несколько вентилей компонента, но нужно добавить еще один вентиль, который пока не добавлен? Для этого имеется команда INVOKE. Чтобы её воспользоваться, введите в командной строке INVOKE refdes, где refdes это позиционное обозначение компонента. Например INVOKE IC1, здесь IC1 обозначение микросхемы, часть которой уже добавлена на схему. После ввода этой команды откроется окно, которое позволит выбрать одну из еще не размещенных в схеме частей компонента.

С помощью команды INVOKE можно размещать разные части одного компонента на разных листах (Sheet) схемы.

См. также "Что в библиотечных символах означает Add=Next или Add=Request?"

1. Выберите инструмент Move (кнопка с четырьмя стрелками).

2. Выберите инструмент Group (кнопка с квадратом).

3. Удерживая нажатой левую кнопку мыши, обведите прямоугольником часть схемы, которую нужно перенести на другой лист (Sheet). Отпустите левую кнопку мыши. Помеченная часть схемы окажется выделенной.

4. Удерживая кнопку Ctrl, кликните правой кнопкой на выделенный фрагмент схемы, и удерживая правую кнопку, переместите выделенный фрагмент на другой лист (листы отображаются в левой части окна).

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

[Редактор печатной платы]

Компонент (например, конденсатор SMD) можно переместить на другой слой инструментом Mirror. Имейте в виду, что в целях удешевления монтажа имеет смысл все SMD-компоненты размещать только на верхнем слое печатной платы.

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

Как правильно добавлять углы (вершины, vertex) в полигонах и изломы в линиях, и наоборот, как удалять их? Это иногда бывает нужно, если корректируется разводка, заливка медью или контур печатной платы. Производятся эти действия просто, но не очевидно. Инструмент (или команда) split позволяют добавить в дорожку сегменты (углы) - благодаря этому можно удобно подкорректировать разводку.

Как добавить излом (угол, вершину): нажмите кнопку Split и щелкните на линию (это может быть произвольная прямая - например, дорожка, сторона полигона заливки или контур печатной платы). На линии появится излом.

Как выполнить обратное действие, т. е. удалить излом (угол, вершину): нажмите кнопку Delete, и после этого, удерживая кнопку Ctrl, щелкните на излом (угол, вершину), который нужно удалить (спрямить). Излом исчезнет, и на его месте образуется прямая линия.

Также можно удалять отдельные сегменты проводника командой Optimize. Это обратная операция, она удаляет сегменты на проводнике.

- сначала выбирается инструмент Polygon.
- в панели инструментов выставляется Width 10 mil, полигон выбирается сплошным (Solid), термоизоляция включена (On), изоляционный интервал включен (On), ширина изоляции (Isolate) 12 mil, Spacing 50, Rank 1.
- выбираем слой Top, рисуем полигон вокруг платы. Полигон отображается пунктирной линией.
- выбираем слой Bottom (если нужен полигон и на второй стороне), рисуем полигон вокруг платы. 
- вводим имя полигона командой Name, например имя GND.
- вводим команду ratnest, после неё полигон заливается медью.
- чтобы удалить мелкие куски заливки, не соединенные ни с чем, нужно выбрать инструмент Info, кликнуть на полигоне (лучше кликнуть на его край у края платы), и убрать галочку Orphans.
- чтобы сделать полигон не залитым (опять в виде пунктирной линии вокруг платы), нужно закрыть чертеж печатной платы и снова открыть его.

См. также вопрос "Ранжирование полигонов. Для чего нужен параметр Rank полигона?".

Под шелкографию (Silk, SilkScreen) изначально предусматривались слои tNames, bNames, tValues, bValues и другие (см. [2]). Однако работать с таким кавардаком слоев, чтобы качественно сделать шелкографию, весьма неудобно. Вместо этого лучше всего всю шелкографию подготавливать в 2 слоях - один для верхней стороны платы, другой для нижней. Для того, чтобы автоматически получить слои, где будет копия графики нужных слоев (например tNames, bNames, tValues, bValues), нужно запустить ULP-скрипт silk.ulp. После его выполнения появятся слои _tplace и _bplace, на которых появится шелкография, которую можно свободно редактировать, и при этом информация на исходных слоях останется нетронутой.

Примечание. Если Вам понадобится удалить слои _tplace и _bplace, то сначала нужно с них удалить все содержимое.

Скрипт silk.ulp обладает очень слабыми возможностями - он не проставляет в слое шелкографии значения атрибутов Name и Value. Лучше скачать другой скрипт silk_gen.ulp (http://www.sparkfun.com/tutorial/PCB/silk_gen.ulp), который делает шелкографию намного лучше (по умолчанию генерирует слои _tsilk и _bsilk, которые также легко удалить с помощью того же скрипта). При первом запуске скрипт ругнется на отсутствие файла "Can't open 'C:/Program Files/EAGLE-5.6.0/projects/папка_проекта/имя_проекта.silk'", но на это не надо обращать внимания. Потом появится экран настроек, в котором можно оставить все по умолчанию, и нажать на "Make Silkscreen layers". Появится текст скрипта, генерирующего шелкографию, нажимаем Execute, и шелкография сгенерится.

В интерактивном режиме это делается командой ripup. Не используйте команду Delete, так как это приведет к рассинхронизации принципиальной схемы (*.sch) и печатной платы. Одиночным кликом и вторым кликом удаляется один сегмент разведенной цепи. Двойным кликом делается неразведенной вся цепь. Если дважды кликнуть на желтой линии связи цепи (с паузой или без), то также делается неразведенной вся цепь.

Можно также удалять отдельные сегменты разводки командой Optimize (проводник "спрямляется").

Почему текстовые надписи шелкографии на реальной печатной плате (в Gerber) не выглядят так же, как они видны в окне редактора печатной платы?

По умолчанию в Eagle все надписи делаются в схеме и на плате Proportional-шрифтами. EAGLE использует в редакторе печатной платы Layout Editor (а также и в редакторе схем Schematic Editor) по умолчанию пропорциональный шрифт (Proportional font). Однако этот шрифт не может быть использован при генерации данных для производства с использованием CAM Processor (см. [3]). CAM Processor может работать только с внутренним векторным шрифтом EAGLE (vector font). Внешний вид, форма и размер векторного шрифта значительно отличается от шрифта пропорционального. К сожалению, в формат Gerber все надписи попадают с другими шрифтами формата Vector, которые угловаты на вид. Кроме того, надписи шрифтами Vector имеют другой размер и поэтому "съезжают" на печатной плате. Проблема не решается никаким другим способом, кроме как отключением Proportional шрифтов (увы!..). Поэтому рекомендуется (как минимум в слоях меди) изначально делать все надписи именно векторным шрифтом.

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

Для того, чтобы обеспечить просмотр шрифтов в редакторах идентичным тому, что выведет CAM Processor (независимо от того, какой шрифт используется) имеется специальная опция Always vector font в меню Options -> User interface. После включения этой опции текст в редакторе печатной платы будет выглядеть абсолютно так же, как и на реальной печатной плате (как их выводит фотоплоттер).

Если Вы передаете файл .BRD напрямую на завод без генерации файлов Gerber (чтобы завод сам сгенерировал данные для производства), рекомендуется также установить галочку Persistent in this drawing. В этом случае программа EAGLE у производителя платы будет также отображать векторный шрифт в соответствии с установленной у Вас опцией. Это позволит устранить влияние неустановленной опции Always vector font в программе EAGLE на заводе.

Иногда при попытке удаления объектов ни с того ни с сего возникает ошибка "Deleting this object might cause the signal to be split into more than two segments. Please use Ratsnest to recalculate the airwires."

EAGLE-delete-error.PNG

Проблема решается вводом в консоли Eagle команды ratsnest (можно сокращенно rat). 

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

Вопрос, казалось бы простой и насущный - есть многие компоненты, имеющие плоские жестяные выводы под пайку в отверстии, например коннекторы USB type B. Ответ на этот вопрос не менее простой - никак. Старайтесь заменить овальные отверстия одиночной дыркой подходящего диаметра. Плоский вывод в таком отверстии отлично паяется, если залить его припоем. Если такой способ нежелателен (например, отверстие получается на Ваш взгляд слишком большим), то сделайте несколько расположенных рядом дырок, которые пересекают друг друга. Советую при отправке выходных файлов на завод оговорить такой способ изготовления овальных отверстий - завод наверняка Вас поймет и посоветует, что нужно делать, и скажет - можно ли вообще сделать такое отверстие. Дело в том, что инструмент для изготовления настоящих овальных отверстий один - фреза, и она используется отдельно от процесса сверления, а также имеется ограничение на минимальный диаметр фрезы (обычно её нельзя делать меньше 1 мм). Сверление пересекающихся отверстий тоже представляет определенные трудности - сверло может погнуться или сломаться, если будет выбран неподходящий режим сверления.

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

Отчет об используемых комплектующих BOM можно сгенерировать с помощью USP-скриптов (меню File -> Run... -> выбор скрипта ULP). Скрипты нужно запустить именно из редактора схем (Schematic). Для генерации отчета запустите либо скрипт bom.ulp, либо bom_w_attr_v1.05.ulp. Функционал у обоих скриптов практически одинаковый, отличие только в том, что bom_w_attr_v1.05.ulp в режиме Values генерирует более подробный отчет (добавлены два дополнительных столбца Package и Description, а также если есть какие-то атрибуты элементов в библиотеке, то для них добавляются отдельные столбцы). В обычных случаях это не нужно, и лучше использовать скрипт bom.ulp. Включение режима Parts или Values производится с помощью радиокнопок. Parts генерирует отчет, удобный для сборки, а Values - для закупки деталей. Отчет можно сохранить либо в виде простого текста, либо в HTML.

Eagle-BOM-Parts Eagle-BOM-Values

Смена ширины дорожек (как и многие другие параметры элементов разводки платы) делается инструментом Change, кнопочка на панели инструментов выглядит как гаечный ключ. Change -> Width -> и поставьте галочку на нужную ширину. Далее кликайте на проводники, которым нужно поменять ширину, и она поменяется.

Если нужно поменять ширину сразу у группы проводников, то выберите сначала их все. Делается это так: выберите сначала Change -> Width -> и поставьте галочку на нужную ширину. Далее выберите инструмент Group (кнопка, на которой нарисована пунктирная рамочка), и выделите на плате прямоугольную область, в которой находятся нужные проводники (нажмите левую кнопку мыши и, удерживая её, обозначьте прямоугольную область и отпустите кнопку). Выделенные проводники будут выглядеть как подсвеченная группа. Затем щелкните на выделении правой кнопкой (при этом должен быть активен инструмент Change), и выберите в контекстном меню Change. После этого в группе у всех проводников ширина поменяется.

Добавлять выделение в группу можно, удерживая кнопку Ctrl и кликая мышью на те проводники, которые нужно добавить. При повторном кликании выделение переключается на обратное (т. е. если раньше дорожка была не выделенной, то она выделится, а если была выделенной, то выделение отменится). Если удерживать при кликании Ctrl+Shift, то при первом клике выделится сегмент, а при повторном клике выделится вся цепь целиком.

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

Для полного указания размера на плате нужно проставить 3 точки (сделать 3 клика мыши на чертеже при активном инструменте Dimension). Чтобы сделать это без привязки (проставить произвольный размер без привязки к краю платы), в нажмите и удерживайте нажатой клавишу Ctrl.

EAGLE-replaceКоманда Replace позволяет заменить одну деталь на другую. Например, применен резистор типоразмера 0603, а Вам нужно заменить его на 0805. Команда Replace работает как из редактора схемы, так и из редактора платы. Перед использованием команды должны быть правильно настроены используемые библиотеки элементов (Library -> Use...), потому что именно из них будет предлагаться взять деталь на замену. Чтобы заменить деталь, щелкните по ней правой кнопкой и выберите из контекстного меню Replace. Откроется окно выбора компонента библиотеки, выберите в нем нужны компонент для замены и нажмите OK. Компонент немедленно будет заменен на выбранный одновременно как в редакторе схемы, так и в редакторе платы.

Команду REPLACE можно использовать также и из командной строки редактора совместно с командой SET, в этом случае возможностей больше (см. help Eagle). Но в случае активной связи платы и схемы (Forward&Back Annotation) команда REPLACE не работает, используйте вместо неё команды CHANGE PACKAGE или UPDATE.

Как сделать контактные площадки разного диаметра для сквозного отверстия (pad) вывода детали? Это нужно бывает для кварцевых резонаторов с усеченным корпусом НС 49/S (HC-49S), когда они кладутся при монтаже прямо на плату - чтобы можно было их монтировать без прокладки.

HC-49S

Короче говоря, есть ли метод создать площадки для сквозного отверстия pad разного диаметра для верхнего слоя (Top) и нижнего слоя (Bottom) с тем же самым размером отверстия? К примеру, мне нужно сделать отверстие диаметром 2 мм и диаметром контактной площадки 2.1 мм на Top и 3 мм контактной площадке Bottom.

Это можно, но к сожалению с некоторыми оговорками, и с соблюдением определенных условий. Eagle может проверять разные размеры pad на верхнем, внутреннем, и нижнем слое. Как сказано в справке Eagle, если Вы установите в библиотеке диаметр pad в 0 (что означает auto), то диаметр отверстия и установка DRC restring (защитный поясок) будут полностью определять параметры pad. Например, если Вы установите min в слое Top на 2 mil, и min для Bottom 20 mil в % от 0, тогда получите примерно то, что хотели. Измененные установки restring вероятно повлияют и на другие контактные площадки на плате. Я не знаю ни о каком способе установить разный размер pad для слоев Top/Bottom, используя команду pad в редакторе библиотеки Eagle. Можно получить тот же эффект путем создания площадки меньшего диаметра, и затем нарисовать круг диаметром 3 мм (центр круга должен совпадать с центром отверстия pad) поверх pad на отдельном пользовательском слое, который будет соответствовать слою Bottom. И опять-таки, DRC restring нужно подстроить для того, чтобы достигнуть нужного эффекта. В процессоре CAM Вы должны разрешить этот слой для подходящего вывода в Gerber (в Вашем примере, на слой Gerber Bottom). Имейте в виду, что DRC не сможет проверить допустимые зазоры вокруг этого круга увеличенного размера (расположенного в пользовательском слое).

Реализация метода, указанного в этом примере, означает, что минимальное кольцо (annular ring) станет тоньше чем 2 mil, которое очень сложно реализовать на заводе.

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

1. Подготавливаете компонент, у которого должна быть модифицирована верхняя сторона контактной площадки в сторону уменьшения (в нашем примере это корпус кварца) так, чтобы ширина пояска меди равнялась нулю, или была очень тонкой (1 или 2 mil). Т. е. диаметр контактной площадки почти равен диаметру отверстия под вывод.

2. У всех остальных используемых компонентов со штыревыми выводами убедитесь, что диаметр контактных площадок задан явно и зафиксирован (не равен 0, или auto, т. е. установлен какой-то размер). В этом заключается основное неудобство, так как нужно изменить соответственным образом все элементы в библиотеке, и потом заменить их в проекте. Иногда бывает проще поправить в редакторе готовые герберы.

3. Зайдите в свойства DRC проекта, и на закладке Top выставите min на 2 mil.

4. Нарисуйте в слоях Bottom и bStop графику для увеличенного размера контактной площадки (если это необходимо).

Получите результат примерно как на скриншотах ниже.

Eagle quartz PAC top Eagle quartz PAC bottom

Иногда такие пропилы нужны также для улучшения вентиляции (циркуляции воздуха). Пример показан на фотографии.

PCB-high-voltage-isolation-holes

Линейные и извилистые пропилы в плате делаются на заводе обыкновенной фрезой подходящего диаметра (обычно диаметром от 1.5 мм и более). Чтобы задать такой пропил в Eagle, нарисуйте его контур в слое Dimension (в этом же слое рисуется контур самой печатной платы). Чтобы узнать минимально возможную ширину пропила, проконсультируйтесь с заводом - изготовителем печатной платы.

Как управлять заливкой медью (Polygon, Copper Pour)? Как сделать, чтобы заливка отображалась на плате? Как временно отключить заливку без удаления полигона?

В редакторе PCB текущая заливка полигона отображается после выполнения команды ratnest (в консоли достаточно ввести rat и нажать Enter). Отменить заливку полигона немного сложнее - нужно закрыть редактор PCB, и снова открыть файл печатной платы в редакторе PCB, после этого все полигоны на плате будут отображаться не залитыми. Такое состояние удобно для ручной трассировки, когда хорошо видно, где проводить трассу. Другой способ убрать заливку полигона - перетащите любой край полигона на новое место, это отменит его заливку. Потом просто нажмите Ctrl+Z (Undo, Отменить). Граница полигона вернется на старое место, и полигон останется не залитым (пока снова не выполните команду ratnest).

Подробнее про полигоны см. [5].

Иногда компоненты, которые надо выделить в группу для совместной операции, разбросаны по чертежу, так что выделить их прямоугольной рамкой нельзя. Но есть возможность выбирать элементы группы по одному. Для этого активируйте команду GROUP (кнопка с пунктирной рамочкой), и выберите сначала маленькую группу (это может быть просто один компонент). Снова нажмите на кнопку GROUP, чтобы сделать группу активной, и затем удерживая кнопку CTRL, левым кликом добавляйте элементы в группу. Повторный клик отменяет выделение (убирает элемент из группы).

Процесс по шагам:

- В самом начале у Вас на экране редактора должен быть отображен только то слой, с которого Вы хотите перенести элементы на другой слой. Если это не так, то выберите только этот слой как видимый (видимые слои выбираются в диалоге Display).
- Выберите на панели инструментов текущий инструмент Change (на кнопке нарисован гаечный ключ).
- Выделите группу графических элементов, у которой хотите изменить слой (т. е. Вы хотите перенести их с одного слоя на другой). Для выделения группы используйте инструмент Group (или введите команду GROUP, и затем мышью обозначьте отрезками границы выделяемой области).
- Выберите инструмент Display, и включите видимость только того слоя, на который хотите переместить группу. Выбранные элементы пропадут с экрана редактора, но не беспокойтесь - текущая группа осталась выделенной.
- Кликните правой кнопкой на любой области графического поля редактора, и выберите в контекстном меню единственный пункт Change: Group. Вся группа переместится на новый слой, и отобразится на экране.

Есть также ULP-скрипт copy-layer-to-any-layer.ulp, который может помочь перенести графику со слоя на слой, но потом придется удалить ненужное на слое назначения.

Чтобы объекты можно было выбрать и удалить, необходимо выполнение 2 условия:

1. Слой, на котором объекты находятся, должен быть разрешен для отображения. Тогда объекты будут видимы, и их можно будет выбрать, если выполнено второе условие.

2. Должен быть также разрешен слой tOrigin или bOrigin, в зависимости от стороны, на которой находится нужный слой с объектами. Тогда будут видны крестообразные маркеры объектов, обозначающие точку их привязки. Выбор и удаление объектов связаны с видимостью этих маркеров. Если маркеры не видны, то объекты выбрать/удалить не получится, даже если они видимы.

Полигоны часто используют для заливки медью землей (GND) всей не используемой площади печатной платы (это улушает экранирование сигналов и повышает помехозащищенность). Однако если необходимо внутрь большого полигона земли вставить полигон поменьше, подключенный к другой цепи, то необходимо использовать параметр полигона Rank. Иначе эти два полигона сольются, и проверка DRC выдаст ошибку "Clearance (polygons with same rank)".

Eagle polygon Rank DRC error

Когда несколько полигонов накладываются друг на друга, и при этом должны оба быть полностью заполнены, то они замкнут друг на друга. Чтобы между вложенными полигонами образовалась изоляция, у внешнего (большого) полигона должен быть параметр Rank больше, чем у внутреннего полигона (маленького).

Eagle polygon set Rank example

Полезный совет: если Вы хотите, чтобы все полигоны перешли в незаполненное состояние (outline mode), то выполните в консоли команду RIP @; и нажмите Enter.

См. также вопрос "Как делать полигоны для земли (GND), или заливку медью (Cooper Pour в PCAD)?".

Все ниже описанные действия осуществляются в редакторе печатных плат (PCB).

1. Выберите инструмент Meander.

2. Удерживая кнопку Ctrl, левой кнопкой мыши кликните на ту разведенную цепь, которая будет эталоном длины. Редактор покажет её длину в выбранных единицах (mil или mm).

3. Кликните левой кнопкой на другую разведенную цепь. Редактор покажет разницу длин этих цепей в процентах. Перемещая курсор мыши, добавьте меандр так, чтобы разница была минимальной (идеально это 100.0% совпадения длины). При перемещении используйте клавишу Alt для смены координатной сетки (это позволит более точно уложить меандр). Правая кнопка мыши переключает стиль и шаг меандра.

Eagle Meander tool use example

Существуют скрипты UPL, которые составляют таблицу параметров трасс, в том числе и из длину:

length.ulp - простой скрипт, дает информацию по длинам трасс в mm.
length-freq-ri.ulp - более продвинутый скрипт, составляет подробную таблицу соединений, в которой указаны максимальная рабочая частота, длина, сопротивление, минимальная и максимальная ширина, максимально допустимый ток.

Оба этих скрипта могут сохранить сгенерированную таблицу в текстовый файл.

Eagle length freq ri ulp result

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

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

1. Сделайте копию BRD-файла (например имяфайла-panelize.pcb) и откройте его в редакторе PCB.

2. Включите отображение всех слоев, кроме Dimension.

3. Выделите в группу все, что находится в окне редактора, и сделайте копию этой группы (клик правой кнопкой на группе - Copy group). Копия должна быть с отступом от оригинала на толщину разреза между платами, примерно 50 .. 60 mil (1.27 .. 1.52 мм).

4. Таким же способом сделайте нужное количество копий плат.

5. Включите слой Dimension, и переместите контур платы на новое место, чтобы он охватывал все копии.

6. Отделите одну копию платы от другой пунктирной линией разреза в слое шелкографии и в слое Dimension, чтобы впоследствии можно было проще отделить одну плату от другой.

Полезно узнать у производителя, может ли он сделать V-надрезы в местах разделения плат. Это позволит Вам отделить одну плату от другой разламыванием.

Видео с описанием процесса: How to panelize PCBs in Eagle CAD. Хорошее руководство по панелизации: PCB Designers Need to Know These Panelization Guidelines.

[Общие вопросы]

К сожалению, в редакторе посадочного места (.pac), как впрочем, и в редакторе печатной платы, нет возможности измерения расстояния (нет измерительной линейки, как в PCAD). Для этого приходится использовать координатную сетку и курсор (текущие координаты курсора постоянно отображаются на рабочем экране), а также вспомогательные нарисованные метки (например, в слое шелкографии). Есть инструмент для проставления размеров на чертеже (рисовать размеры следует в слое Measures).

Для сетки можно настраивать шаг в долях миллиметра, дюйма и в mil-ах. Напомню, что 100 mil равны 2.54 мм - шагу ножек стандартных DIP-микросхем (ИМХО, так проще всего запомнить значение единицы mil).

Миллиметры и mil-ы используются чаще всего. Старайтесь в своих проектах привязываться к шагу координатной сетки в mil-ах, так как в этом случае ножки деталей всегда будут попадать на узлы координатной сетки. По умолчанию включите шаг сетки 25 mil, и уменьшайте шаг в случае необходимости. Удобно применять текстовую команду grid NNmil (где NN - шаг координатной сетки в mil-ах). Команда grid last возвращает предыдущее значение координатной сетки. 

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

На часто используемые команды удобно навесить скрипты и горячие клавиши. Это делается через Options -> Assign..., сразу поменяйте кнопку для Undo на привычную Ctrl+Z. Удобно также включать и выключать слои через горячие клавиши. Например, команда display top -bottom; включает верхний слой и выключает нижний. Вместо имен слоев можно использовать их номера. Через точку с запятой можно ввести несколько команд. На кнопки можно назначить выполнение сложных действий, целых скриптов.

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

Eagle menu Options Assign example

Основные приемы работы с мышью и клавиатурой описаны в [1].

Если у Вас русская Windows, то при запуске Eagle ver. 5.6.0 будет ругаться с сообщением типа: "Can't open 'C:/Documents and Settings/user/тут кракозябры/eagle/eye-diag/eagle.epf' No such file or directory".

EAGLE-statup-err01

Проблема в глюке Eagle - он не может прочитать русское имя папки в конфигурации. В общем-то на эту ошибку можно не обращать внимания, все будет работать и так, но можно и исправить. По умолчанию пути к проектам (Options -> Directories) настроены как $HOME\eagle;$EAGLEDIR\projects\examples. Чтобы ошибка пропала, нужно путь $HOME\eagle заменить на какой-нибудь другой. Можно указать простой путь типа C:\EAGLEPRJ, а можно узнать короткое имя папки $HOME\eagle (в коротком имени русских букв нет), и подставить его в поле Projects, получится что-то типа c:\docume~1\admin\c316~1\eagle;$EAGLEDIR\projects\examples. Короткие имена можно узнать с помощью Total Commander, можно также использовать команду DIR /X.

[C:\SPB_Data\eagle doesn't exist после установки OrCAD]

Подобная проблема у меня возникла после возникла после установки демо-версии OrCAD. Eagle перестала нормально запускаться - при запуске выдавалось окно с предупреждением об отсутствии домашнего каталога Eagle на диске ("C:\SPB_Data\eagle doesn't exist").

Eagle Warning home dir doesnt exist

Проблема заключается в том, что инсталлятор старых версий OrCAD переназначает переменную пользователя HOME. Вот кусок вывода команды set после установки OrCAD:

...
DEVKITPSP=/c/devkitPro/devkitPSP
FP_NO_HOST_CHECK=NO
HOME=C:\SPB_Data
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\user
JAVA_HOME=c:\Program Files\Java\jdk8u5
LOGONSERVER=\\WORKSTATION
...

Чтобы исправить ошибку, удалите переменную окружения HOME с помощью стандартных инструментов редактирования переменных оружения Windows.

Моя версия CadSoft Eagle 7.7.0 Ultimate х86 [2016, RUS + ENG] Portable по умолчанию переключается в отображение меню на русском языке, причем часть пунктов меню переведена, а часть нет. Это неудобно для тех, кто всегда пользовался английской версией. Кроме того, найти в Интернет подсказку по проблеме всегда проще, если искать ответ на английском языке.

Как вернуть обратно английский язык в CadSoft Eagle? Оказывается, что это несложно. EAGLE при запуске проверяет наличие и значение переменной окружения LANG. Поменять её значение можно с помощью Панели Управления. Для английского языка значение переменной LANG должно быть обычно установлено в en_US или en_GB. Для немецкого языка значение должно быть de_DE, de_CH или de_AT.

Не обязательно изменять или назначать значение переменной LANG постоянно. Можно её установить только для запускаемой среды разработки Eagle. Для этого сделайте вот такой командный файл для запуска Eagle:

SET LANG=en_GB
cd "C:\Program files\eagle-7.x.x"
bin\eagle.exe

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

Команды ASSIGN позволяют упростить использование редакторов SCH, PCB и LBR путем назначения горячих клавиш часто используемым операциям [1]. Но к сожалению, версия Eagle 7.70, работающая без установки (portable версия, см. CadSoft Eagle 7.7.0 Ultimate х86 [2016, RUS + ENG] Portable на сайте rutracker.org), не запоминает настройки горячих клавиш, введенные командами ASSIGN.

Решить проблему можно, если создать скрипт SCR и записать туда нужные команды. Процесс по шагам:

1. Создайте скрипт eagle.scr с командами ASSIGN. Это так называемый скрипт по умолчанию, который, если он находится в каталоге $EAGLEDIR\scr или папке проекта, запустится автоматически при открытии чертежа. Вот пример такого скрипта, настроенного для всех редакторов:

# Default ASSIGN Configuration Script
#
# Скрипт для назначения горячих клавиш по умолчанию с помощью 
# команд ASSIGN. Этот файл можно использовать для конфигурирования
# окон редакторов.
 
# GENERAL (общие команды, работающие во всех редакторах):
ASSIGN C+M MOVE;
ASSIGN C+Z UNDO;
ASSIGN C+Y REDO;
ASSIGN C+C COPY;
#ASSIGN CS+A ADD;
ASSIGN C+G GROUP;
ASSIGN C+D DELETE;
ASSIGN C+W WIRE;
ASSIGN C+I INFO;
ASSIGN C+T TEXT;
ASSIGN CS+N NAME;
ASSIGN CS+P POLYGON;
ASSIGN C+F 'RUN find.ulp';
#ASSIGN C+X CHANGE;
#ASSIGN A+A ATTRIBUTE;
 
BRD:
# Команды для редактора печатных плат:
ASSIGN C+E ERRORS;
ASSIGN CS+D 'DRC;';  # Executes DRC without opening DRC dialog. For dialog sk
#ASSIGN CS+D DRC;    # Opens DRC dialog.
ASSIGN CS+V VALUE;
#ASSIGN A+R ROUTE;
ASSIGN CS+R RIPUP;
ASSIGN C+R RATSNEST;
ASSIGN C+H HOLE;
ASSIGN CS+S SMASH;
ASSIGN A+S SIGNAL;
 
SCH:
# Команды для редактора схемы:
#ASSIGN C+E ERRORS;
#ASSIGN CS+E ERC;
#ASSIGN CS+I INVOKE;
ASSIGN CS+V VALUE;
ASSIGN CS+S SMASH;
ASSIGN A+N NET;
ASSIGN C+J 'JUNCTION';
 
LBR:
# Команды для редактора библиотеки:
ASSIGN C+E EDIT;
 
DEV:
# Команды для редактора компонента:
ASSIGN A+C CONNECT;
ASSIGN A+P PACKAGE;
 
SYM:
# Команды для редактора схематического обозначения компонента:
ASSIGN A+P PIN;
 
PAC:
# Команды для редактора посадочного места компонента:
ASSIGN C+H HOLE;
ASSIGN A+P PAD;
ASSIGN A+S SMD;

Как Вы уже догадались, строки комментариев в скрипте начинаются с символа #. В скрипте присутствуют метки BRD, SCH, LBR, DEV, SYM и PAC, обозначающие группы команд, предназначенные только для определенного редактора. В начале скрипта присутствует также группа команд ASSIGN без метки, которая применится ко всем редакторам.

2. Поместите созданный скрипт eagle.scr в папку $EAGLEDIR\scr.

$EAGLEDIR это внутренняя макропеременная системы CadSoft Eagle, указывающая после её запуска на корневой каталог, где она находится на диске. Чтобы положить скрипт в папку $EAGLEDIR\scr, нужно знать, где физически находится корневой каталог $EAGLEDIR. Для CadSoft Eagle 7.7.0 Ultimate х86 [2016, RUS + ENG] Portable путь до папки $EAGLEDIR может выглядеть примерно так:

c:\Eagle770-Ultimate-x86-Portable\Data\roaming\modified\@SYSDRIVE@\EAGLE-7.7.0

В этом примере папка Eagle770-Ultimate-x86-Portable была создана на диске C:, и туда была скопирована запускаемая система CadSoft Eagle 7.7.0 Ultimate х86 [2016, RUS + ENG] Portable. Таким образом c:\Eagle770-Ultimate-x86-Portable это папка, где находится файл запуска start.bat.

3. Чтобы применились команды eagle.scr, запустите CadSoft Eagle с помощью файла start.bat. Запустится программа Control Panel. Разверните дерево Projects\eagle, раскройте папку Вашего проекта и двойным щелчком на файле схемы (*.sch) запустите редактор схем SCH. При этом также запуститься и редактор печатной платы BRD, если чертеж платы существует, и применятся команды из eagle.scr.

Несмотря на то, что в Help написано, что eagle.scr будет работать, если он находится либо в папке проекта, либо в папке $EAGLEDIR\scr, это не совсем так. У меня надежно запуск работал только в том случае, если eagle.scr находился в папке $EAGLEDIR\scr, а если eagle.scr находился в папке проекта, то он применялся только после перезапуска окон редакторов.

Подробнее про команды ASSIGN, SCRIPT и файл eagle.scr см. разделы справки (меню Control Panel -> Help -> General).

[Ссылки]

1Eagle: использование клавиатуры и мыши.
2. Eagle: назначение предопределенных слоев редактора печатной платы PCB Layout (файл *.brd).
3Eagle: как сделать выходные файлы для фотоплоттера (GERBER) и для сверлильного станка (EXCELLON).
4. Eagle: обзор скриптов ULP.
5. Eagle: полигоны и заливки.
6. Eagle: как самому сделать библиотечный компонент.
7. Eagle Custom Package with Exposed Pad site:forum.sparkfun.com.
8. Creating Exposed Copper Pad site:forums.autodesk.com.

 

Комментарии  

 
0 #1 Виктор 31.12.2015 17:34
Что мне не нравится в Cadsoft Eagle: программа не позволяет произвольно и быстро менять отдельные контактные площадки. Вывод на печать не наглядный - микроскопически е размеры рисунка. Нет линейки при выводе на печать и при рисовании печатной платы в редакторе РСВ. Заумные методы экспорта/импорта в другие программы.

microsin: кое-с чем из этих замечаний можно согласиться, однако ИМХО достоинства Eagle все перевешивают.
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Top of Page