Программа CadSoft Eagle замечательный инструмент, однако в работе с ним возникают неудобства, касающиеся поиска компонентов для Вашей разработки печатной платы. Вам нужно собрать для проекта все необходимые компоненты, и в этих компонентах должны быть именно те посадочные места деталей, которые нужны. Хотя в поставке Eagle уже имеется некоторое количество готовых библиотек и компонентов, все равно часто бывают ситуации, когда компонент, который Вам нужен, не находится в той библиотеке, которая Вам нужна, или даже Вы просто не можете найти нужный компонент ни в одной имеющейся библиотеке. В таких ситуациях Вы можете либо копировать готовые компоненты из других библиотек в нужную библиотеку (как это делается, описано в [2]), либо создать нужный компонент и библиотеку компонентов с нуля. В этой статье будет рассматриваться создание нового компонента (перевод статьи [1]).
[Шаг 1. Запустите панель управления Eagle]
На системе Linux выполните команду eagle из командной строки. На Windows кликните на иконку запуска Eagle на рабочем столе, или выберите в меню Пуск -> Все программы -> EAGLE Layout Editor 6.2.0 (цифры означают номер версии) -> EAGLE 6.2.0.
[Шаг 2. Выберите нужную библиотеку для проекта, или создайте новую]
Решите для себя, где должен находится новый компонент, который Вы сейчас создадите. Советую Вам создать для этого свою собственную, отдельную библиотеку. Обычно всегда работаю так, что для каждого проекта у меня создана одна отдельная библиотека, в которой находятся все нужные для меня компоненты для этой печатной платы и схемы. Если у Вас будет отдельная библиотека, то не будут испорчены уже существующие, и Вам будет проще обмениваться своими проектами с другими людьми.
Чтобы создать новую библиотеку, перейдите в меню и выберите File -> New -> Library. После создания новой библиотеки сразу же сохраните её в корневую папку проекта, и дайте ей понятное имя файла.
Примечание: в Eagle при создании библиотеки иногда случается некий глюк. Когда Вы выберете File -> New -> Library, то Вам все равно предложат открыть уже существующую (! непонятно зачем) библиотеку, и только потом, уже в редакторе библиотеки, Вы можете выбрать в меню File -> New. Создастся новая библиотека.
Если же Вы хотите добавить новый компонент в уже существующую библиотеку (я Вам этого не советовал!), то выберите в списке Libraries нужную библиотеку и в контекстном меню выберите Open.
[Шаг 3. Работа с новой библиотекой]
Вы увидите примерно такой экран. Начиная с этого момента я предполагаю, что Вы сделали правильный выбор, и решили создать новую библиотеку для своего проекта, куда будете помещать создаваемые компоненты, или куда будете копировать готовые.
Простой путь и сложный путь. Чтобы разработать библиотечный компонент, необходимо создать его особые части, которые называются device, package и symbol. Каждая часть разрабатывается в своем отдельном редакторе, и при редактировании package и symbol нужная графика должна размещаться в специальных слоях, и это правило не должно нарушаться. Самый простой способ создать компонент - это сделать копию какого-либо похожего компонента, и затем подстроить его свойства, чтобы он стал именно тем, чем нужно. Но это не совсем то, чтобы создать компонент с нуля. В этом руководстве мы будем создавать компонент с чистого листа.
[Шаг 4. Уделите время изучению даташита на компонент]
В этом руководстве в качестве примера создания компонента выбран гироскоп ADXRS150 компании Analog Devices. Чтобы получить все нужные размеры корпуса нужно открыть и изучить его даташит.
Корпус компонента - package. Как уже упоминалось ранее, одним из трех аспектов компонента в Eagle является package, который соответствует корпусу компонента (иногда его также называют посадочным местом компонента). Мы начнем создавать компонент именно с корпуса. Нужно создать 32-выводный корпус BGA (Ball Grid Array, массив шариковых выводов). Из даташита можно узнать, что шарики имеют диаметр 0.55 мм, и расстояние между их центрами составляет 0.80 мм. Расстояние между центрами крайних шариков составляет 4.80 мм.
[Шаг 5. Начало создания корпуса компонента (package)]
Кликните на иконку корпуса в окне редактора библиотеки. Откроется маленькое окно и в поле ввода New: введите имя корпуса. Имя должно быть информативным, отражающим тип корпуса, в нашем примере это будет имя BGA-32. После этого кликните на кнопку OK. Высветится окошко подтверждения: "Create new package 'BGA-32'?", подтвердите, кликнув на кнопку Yes.
[Шаг 6. Настройка координатной сетки]
Диалог редактирования координатной сетки вызывается вот этой кнопкой (также можно ввести команду grid, или выбрать в меню View -> Grid):
По умолчанию редактор посадочного места (корпуса) настроен так, что отобразится черное поле редактирования с координатной сеткой. В центре будет отображаться белое перекрестие - это центр Вашего корпуса. Это та точка, по которой люди будут выбирать/перемещать компонент. Очень важно рационально разместить выводы компонента и другие параметры относительно этого белого перекрестия. Настройте координатную сетку так, чтобы её основной шаг был в 2 раза меньше шага выводов, и альтернативный шаг (когда удерживается клавиша Alt) сделайте в 5 или 10 раз меньше.
Для зарубежных компонентов обычно все размеры привязаны к дюймам, поэтому часто удобно использовать координатную сетку в тысячных долях дюйма (милах, mil). Можно также настроить координатную сетку в миллиметрах. Сделайте так, как Вам удобно, поменять координатную сетку можно в любой момент.
Для нашего примера диаметр шарика 0.55 мм, и расстояние между центами шариков 0.8 мм. Таким образом, удобно настроить координатную сетку так, чтобы шаг выводов соответствовал шагу координатной сетки. Можно настроить координатную сетку следующим образом: в поле Size вписать значение 0.2 мм, в поле Multiple указать 5, и в поле Alt указать 0.2 (альтернативно можно указать в поле Alt другое число, тогда координатная сетка будет меняться при удерживании клавиши Alt). Если указать Multiple 1, то координатная сетка будет слишком мала для отображения, и не будет видна. Оставьте радиокнопку Display в положении On, и радиокнопку Style в положении Lines.
[Шаг 7. Добавление выводов (pads)]
Если Вы в этой точке хотите сделать копию другого корпуса (package) из другой библиотеки, то можете использовать команду copy следующего синтаксиса (команду следует вводить в командной строке, которая находится чуть выше рабочего поля редактора):
copy packagename@libraryname
После этого, если правильно указаны имя корпуса и имя библиотеки, в поле редактора магическим образом отобразится корпус компонента. Но здесь будет показан длинный путь - создание корпуса компонента с нуля.
Как уже упоминалось, одна из важных вещей - гарантировать, что нужные элементы будут созданы в соответствующем слое редактора. Наши контактные площадки (pads, т. е. шарики, выводы компонента) для этого примера должны находиться на слое Top (медь верхней стороны печатной платы). Введите в командной строке редактора команду smd, эта команда нужна для создания планарных выводов компонента. По умолчанию будет выбран слой Top. В выпадающем списке Smd по умолчанию не отображен круглый вывод, для того чтобы он стал круглым, нужно ввести размер "0.55 x 0.55", и выбрать скругление (roundness) 100%. Для обозначения общего размера чипа можно в слое tPlace нарисовать квадрат, обозначающий границы чипа, тогда будет проще ориентироваться при размещении выводов. При правильно настроенной координатной сетке размещение выводов с шагом .8 мм будет происходить быстро и точно. Альтернативно в командной строке можно вводить координаты вывода (x-coord y-coord), и вывод компонента будет размещен там, где Вы хотите.
Совет: может быть, было бы проще сделать точку отсчета центр чипа, и просто давать координаты для размещения выводов (3.2 0) (-3.2 0) ... и так далее.
[Шаг 8. Добавление оформления для корпуса]
В слое tPlace поместите графику края чипа, и поместите также метку, показывающую место расположения шарика A1.
Линии рисуются инструментом Wire. Введите команду wire в командной строке редактора. Выберите слой 21 tPlace. Теперь нарисуйте 7 мм квадрат вокруг всех выводов, которые мы нарисовали на предыдущем шаге. Можно рисовать линии вручную, либо вводить их координаты в командной строке.
[Шаг 9. Именование выводов]
Чтобы упростить дальнейшее использование компонента, хорошей идеей будет дать имена выводам. Введите в командной строке команду name, и сделайте двойной клик на каждом выводе корпуса компонента. Будет появляться окно диалога, где нужно просто ввести новое имя. Здесь не нужно использовать функциональные имена выводов чипа (наподобие SCK, MISO и т. п.), потому что эта информация будет вводиться для схематического символа (symbol) компонента. Несмотря на то, что функциональные символические имена на этом шаге возможно несколько упростят ручную разводку печатной платы, все равно лучше использовать формализованные имена выводов, соответствующие нумерации шариков (A1, A2 и т. д.), потому что в этом случае этот корпус Вы могли бы использовать и для другого компонента.
[Шаг 10. Добавление для посадочного места атрибутов NAME и VALUE]
Для многих устройств нужно на печатной плате шелкографией показывать позиционное обозначение (RefDes, Reference Designator, например R1, R2, C1) и номинал (1k, 4.7uF и т. п.), а для некоторых нужно показать только позиционное обозначение. Положение позиционного обозначения определяет атрибут >NAME, а положение номинала атрибут >VALUE. Чтобы добавить эти атрибуты, добавьте соответствующий текст на слои 25 tNames и 27 tValues:
Слой
Текст атрибута, который нужно добавить на этот слой
25 tNames
>NAME
27 tValues
>VALUE
Параметры для имени (Name, этот атрибут используется для имени типа компонента) и значения (Value, этот атрибут показывает номинальное значение для компонента, например для резистора номинал 1 кОм) добавляются на отдельных слоях tName и tValue соответственно.
Выберите инструмент ввода текста, или введите команду text в командной строке редактора. Выберите слой tName layer, подходящий размер шрифта, и поместите текст возле верхнего левого края компонента. Повторите процесс для value, но на этот раз выберите слой tValue, и разместите атрибут возле нижнего края корпуса.
Убедитесь, что все графические элементы корпуса находятся на нужных слоях. Это можно сделать, если выключить все слои, кроме одного (с помощью инструмента Display), в котором Вы проверяете графику.
[Шаг 11. Начало создания символа компонента (symbol)]
Кликните на кнопку Symbol и добавьте новый символ. Этот шаг очень похож на шаг 5, отличие только в том, что это symbol, а не package.
Часть компонента symbol это то, как компонент выглядит на принципиальной схеме. Принципиальная схема является фундаментально отличающимся представлением Вашего устройства от разводки платы (или от внешнего вида корпуса компонента). Корпус компонента package должен точно соответствовать физическим размерам даташита, потому что это влияет на правильность разводки печатной платы. Но в отличие от печатной платы схема должна быть разработана так, чтобы быть легкой для чтения и понимания, схема отражает не физический вид компонента (т. е. его физические размеры), а его функциональное назначение. Например, если у выводов компонента нет внутреннего подключения (NC, вывод не используется), то этот вывод может не появляться на принципиальной схеме.
[Шаг 12. Вернемся к даташиту]
У некоторых микросхем используются не все выводы корпуса. Однако в нашем примере у чипа гироскопа не только задействованы все выводы, они еще и задублированы. Вы можете увидеть, что выводы микросхемы также имеют имена, кратко отражающие функциональное назначение каждого вывода. Чтобы упростить использование символа на схеме, хорошей идеей будет дать выводам компонента символа те же имена, которые указаны в даташите.
[Шаг 13. Нарисуем symbol]
С использованием инструмента Wire нарисуйте прямоугольный (или квадратный) контур компонента, как он должен выглядеть на принципиальной схеме. По умолчанию редактор предложит рисовать символ на слое 94 Symbols. На всякий случай убедитесь, что Вы рисуете символ на этом слое, для чего проверьте выпадающих список слоев в верхней левой части окна редактора.
Как только прямоугольник символа нарисован, введите команду pin в командной строке редактора, и начните размещать 32 вывода по краю нарисованного прямоугольника.
[Шаг 14. Именование выводов символа]
После размещения выводов они получили имена P$1-p$32. Использование компонента упростится, если дать выводам символа те же имена, которые даны в даташите.
Введите в командной строке редактора команду name, и двойным щелчком на каждом выводе символа поменяйте имена у выводов. Новое имя вводится в появляющемся маленьком окне диалога, поменяйте имя и кликните OK. Повторите эту операцию 32 раза.
По умолчанию на устройстве будет показаны и имя вывода (т. е. функциональное назначение, которое Вы задали командой name), и номер вывода. Иногда это не желательно, и приводит дизайн к очень неудобному виду. Поменять отображение можно через свойства вывода (инструмент Info), или выбором в меню Edit -> Change -> Visible, затем выберите один из вариантов отображения (off, pad, pin, both). Затем кликните на каждый вывод. Для микросхемы подойдет вариант both, для разъема pad, для резистора или конденсатора off. Возможно, пока не понятно, для чего это надо, но поверьте, эта операция в дальнейшем упростит использование компонента в Вашей разработке (кому нужны подробности, см. врезку).
Иногда нужно на схеме отображать и имена, и номера выводов (например, если компонент это микросхема), иногда только номера выводов (например если компонент это разъем), а иногда не нужно отображать ни номера, ни имена выводов (например если компонент это резистор или конденсатор).
Управлять отображением имени и номера вывода можно через редактирование свойства вывода, выпадающий список Visible:
У этого выпадающего списка есть 4 варианта настройки: off на схеме не будет отображаться ни имя, ни номер вывода (подойдет для резистора), pad отображается имя вывода посадочного места (т. е. номер вывода) и не отображается имя вывода символа (т. е. имя вывода не будет видно на схеме, этот вариант подойдет для коннектора), pin отображается имя вывода символа и не отображается имя посадочного места (т. е. номер вывода детали выден не будет) и both на схеме будут видны и имя, и номер вывода (подойдет для микросхемы).
[Шаг 15. Добавление для символа атрибутов NAME и VALUE]
Для многих устройств нужно на схеме показывать позиционное обозначение (RefDes, Reference Designator, например R1, R2, C1) и номинал (1k, 4.7uF и т. п.), а для некоторых нужно показать только позиционное обозначение. Положение позиционного обозначения определяет атрибут >NAME, а положение номинала атрибут >VALUE. Чтобы добавить эти атрибуты, добавьте соответствующий текст на слои 95 Names и 96 Values:
Слой
Текст атрибута, который нужно добавить на этот слой
95 Names
>NAME
96 Values
>VALUE
[Шаг 16. Создание устройства (device)]
На этом шаге задается взаимосвязь между symbol и package компонента. Кликните на иконку Device, добавьте имя Вашего устройства, и экран редактора будет выглядеть примерно так, как на скриншоте.
[Шаг 17. Привязка корпуса к устройству]
В нижнем правом углу кликните на кнопку New, и выберите корпус (package). Выбранный корпус отобразится справа вверху окна редактора.
В левой вертикальной панели инструментов кликните на иконку Symbol, и поместите Ваш символ с левой части окна редактора.
[Шаг 18. Соединения между выводами package и symbol]
Если Вы правильно выполнили все предыдущие шаги, и правильно задали имена для символа и корпуса, то этот шаг должен быть простым.
Кликните на кнопку Connect (она видна на скриншоте предыдущего шага), и появится диалоговое окно создания соединений. Выберите вывод корпуса в столбце Pin, и соответствующий вывод символа в столбце Pad, и нажмите кнопку Connect. Повторите это для всех соединений.
[Шаг 19. Добавьте префикс для позиционного обозначения устройства]
Как Вы помните, мы добавляли магический текст >NAME для корпуса (package) и символа (symbol) создаваемого компонента, но так и не выяснили до конца, для чего это нужно. На самом деле все просто - это атрибут для размещения на печатной плате (если это package) или принципиальной схеме (если это symbol) позиционного обозначения компонента. Позиционное обозначение облегчает чтение и использование принципиальной схемы, и по нему при монтаже по спецификации находят нужные посадочные места на печатной плате. По-английски термин "позиционное обозначение" называется Reference Designator, или кратко RefDes (наверное, Вы уже встречались с этим понятием).
По умолчанию система Eagle автоматически присваивает каждому добавляемому элементу в схеме уникальный RefDes. Система ищет положение атрибута >NAME и в это место добавляет на схему и плату значение RefDes в соответствующие слои.
Компонентам разного вида принято давать разные префиксы в обозначениях RefDes [3]. Например, для резисторов общепринятый префикс это R, для конденсатора C, для микросхемы U и т. д. Это помогает не только отличать отдельные компоненты друг от друга на этапе производства электронного устройства, но также легче отделять на схеме и платы компоненты по категориям. К примеру, посадочное место (package) резистора и конденсатора может ничем не отличаться по внешнему виду, но с наличием префикса в RefDes на шелкографии мы сразу знаем, где стоит резистор, а где конденсатор.
Чтобы задать префикс, при редактировании устройства (Device) нажмите на кнопку Prefix, которая находится в правом нижнем углу редактора.
Примечание: если не задать префикс (это распространенная ошибка при создании нового компонента библиотеки), то Eagle автоматически будет давать для RefDes значения вида U$1, U$2, U$3 и т. д.
После нажатия кнопки Prefix появится маленькое окно диалога, где нужно ввести новый префикс для RefDes (R для резистора, C для конденсатора, U для микросхемы, P для коннектора и т. д., см. [3]).
[Шаг 20. Сохраните устройство (Device)]
Поздравляю, Вы создали новый компонент. Кликните на кнопку Save. Будет хорошей идеей еще раз все проверить, для этого найдите в панели управления Eagle свою библиотеку, и раскройте её кликом на знаке +. Вы должны увидеть созданное устройство. Выберите устройство, и его символ и корпус появятся с правой части окна.
Теперь Вы можете использовать Ваше новое устройство в своих разработках.
[UPD181015 - как я делал компонент для ADSP-BF538F]
1. Сначала попытался найти готовый компонент (в терминах Eagle это Device) в Интернете, но не нашел.
2. Взял схему ADSP-BF538F EZ-KIT Lite, в ней нашел образец, как может выглядеть на схеме ADSP-BF538F.
3. Просмотрел библиотеку analog-devices.lbr, компонента ADSP-BF538F в ней не было. Нашел в ней подходящие образцы символов (Symbol ADSP-21161-CTRL2) и корпуса (Package BGA_208). Корпус выбирал прежде всего по шагу выводов, и также смотрел на размеры корпуса.
4. Создал новую библиотеку, скопировал туда символ ADSP-21161-CTRL2 и корпус BGA_208.
5. Командой COPY ADSP-21161-CTRL2@ новоеимясимвола сделал несколько символов и отредактировал каждый, чтобы они были похожи на символы, которые я увидел на схеме ADSP-BF538F EZ-KIT Lite. У меня получилось 4 новых символа для процессора ADSP-BF538F:
ADSP-BF538-ADR (шина адреса, данных, системные сигналы) ADSP-BF538-PCX-PDX (периферийные устройства, порты PCx и PDx) ADSP-BF538-PEX-PFX (периферийные устройства, порты PEx и PFx) ADSP-BF538-PWR (ножки земли и питания)
6. Сделал копию корпуса BGA_208 и отредактировал его, у меня получился новый корпус BGA_316. При редактировании установил в редакторе метрическую систему единиц (mm) и шаг координатной сетки 0.4 мм, чтобы он соответствовал шагу выводов корпуса 0.8 мм.
7. Создал новый компонент (Device), добавил в него 4 символа, корпус.
8. Создал таблицу взамосвязи между символами и корпусом (Variant).
Примечание: для создания символов (шаг 4) пользовался документом "ADSP-BF538F EZ-KIT Lite® Evaluation System Manual" (ADSP-BF538F_ezkit_man_rev.1.3.pdf), для создания корпуса (6) использовал документ "316-Ball Chip Scale Package Ball Grid Array" (5092430472609712019bc_316.pdf). Для создания таблицы связи символ-корпус (шаг 8) использовал даташит "Blackfin Embedded Processor ADSP-BF538/ADSP-BF538F" (ADSP-BF538_BF538F.pdf).
При создании корпуса в редакторе у площадок вокруг отверстий ножек микросхемы один размер (который нужно) а в редакторе печатной платы размер увеличивается до размера, который был бы автоматически. Подскажите как это побороть?
microsin: выберите в свойствах контактной площадки фиксированный размер вместо Auto. То же самое нужно сделать, когда устанавливаете новые контактные площадки для вывода компонента.
Комментарии
microsin: выберите в свойствах контактной площадки фиксированный размер вместо Auto. То же самое нужно сделать, когда устанавливаете новые контактные площадки для вывода компонента.
RSS лента комментариев этой записи