РадиоКот :: Изучаем KiCad. Часть первая.
Например TDA7294

РадиоКот >Обучалка >Программные пакеты >KiCad >

Теги статьи: KiCadДобавить тег

Изучаем KiCad. Часть первая.

Автор: Юрий Балыкин aka ploop
Опубликовано 16.02.2012
Создано при помощи КотоРед.

Наверное каждый радиолюбитель знает такую замечательную программу для разводки печатных плат, как Sprint Layout. Она настолько проста и интуитивно понятна, что разберётся каждый школьник. Плюс ко всему — русифицирована. Именно поэтому она завоевала такую популярность, что некоторые продолжают в ней разводить довольно сложные проекты, убивая не один день (а то и недели) драгоценного времени. Этим людям я советую взглянуть на более сложные EDA , которые потребуют некоторого времени на их изучение, зато потом оно с лихвой окупится быстротой и качеством разводки плат под новые проекты.

 

Таких систем проектирования не очень много, и они все на слуху: P-CAD, OrCAD, DipTrace, Proteus, Eagle и другие. Но всех их объединяет одно — они платные, если и есть бесплатные версии, то они сильно урезаны, хотя нашего брата этим не испугать...

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

 


Что такое KiCad?

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

  • Eeschema — редактор схем
  • CvPcb — сопоставление УГО компонентов и посадочных мест
  • Pcbnew — трассировщик печатных плат
  • GerbView — просмотр и редактирование gerber-файлов
  • Bitmap2Component — утилита для добавления изображений
  • pcb_calculator — удобный калькулятор
  • KiCad — менеджер проекта и всего этого безобразия.

Интерфейс всех частей полностью русифицирован, а самое главное — имеет полную и грамотную русскую справку.

   

Как работать в KiCad?

 

Я не буду расписывать процесс установки, он стандартен и описан в справке. Итак, запускаем:


     

Это окно управления проектом. Нажимаем «начать новый проект» - сохраняем файл проекта.

 

Файл проекта — текстовый файл с расширением .pro, в котором хранятся все настройки текущего проекта: нестандартные пути к библиотекам, пути к файлам схем и плат, и другие вещи, относящиеся к текущей рабочей сессии.

 

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

Всё, можно приступать к созданию схемы.

 

Eeschema

 

Запускается кнопкой на правой панели. Сначала будет страшное сообщение, что файл схемы не найден. Это происходит потому, что KiCad запустил Eeschema и дал ей команду открыть файл <имя_проекта.sch>, которого пока не существует. Не пугаемся, просто нажимаем «сохранить» в редакторе схем. Теперь в дереве проекта создался файл схемы (пока пустой), и если закрыть и открыть заново редактор — сообщения не будет.

 

Файл схемы — текстовый файл с расширением .sch, в нём и хранится принципиальная схема.

 

Осваиваемся. Инструментов там не много по сравнению с другими системами. Левая панель отвечает за настройки отображения, на правой находятся все инструменты. Попробуем создать простейшую схему — транзистор, два резистора и светодиод. Выбираем справа инструмент «Разместить компонент» и тыкаем в любом месте листа, в диалоге жмём «выбор просмотром»


 

Это окно выбора компонентов из библиотек. Выбираем либу «Power», компонент GND, справа вверху кнопку «разместить компонент» - он появится на листе. Аналогично транзистор из «transistors» и LED из «device». Двигать компоненты можно через контекстное меню (вообще все действия там есть) или клавишей «M», вращать «R», копировать «C», удалять «Delete». Соединяем как надо, должно получиться что-то типа этого:


Но что это? Разве это красивая схема? Что это за земля, а резистор? Убожество! Не подходят нам буржуйские УГО, ну никак! Не, если вам нравится — можете пользоваться, а я лучше нарисую свои, благо все средства для этого есть. Да в любом случае столкнётесь с тем, что какого-нибудь компонента не хватает, придётся либо усердно гуглить, либо рисовать. Зачастую второе быстрее.

 

Редактор библиотек  

Находится в меню «Инструменты» либо на аналогичной кнопке на панели инструментов. Он очень похож на редактор схем, но убраны ненужные инструменты, оставлена панель рисования. Самое главное, нужно не запутаться с последовательностью действий при создании нового компонента. Для этого вначале нажимаем «Создать новый компонент» вверху:

 

Поле «имя компонента» задаёт его название, и должно быть уникально внутри библиотеки. «Обозначение» - это его обозначение на схеме, например «R» - резистор, «C» - конденсатор, и т.д. «Количество элементов корпусе» указывается для логики, ОУ и других микросхем, состоящих из физически одинаковых блоков, которые можно заменить на плате для более удобной разводки. Это поле необходимо как для автотрассировщика, так и для ручной трассировки. Но у нас пока таких элементов нет, оставим 1. Остальные поля пока оставим по умолчанию.

 

На листе появятся имя компонента и его обозначение. Пока рисовать не начинаем, если что - имя и обозначение можно поправить прямо на листе.

                         

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

 

Файл библиотеки — текстовый файл с расширением .lib, содержит в себе УГО компонентов, их характеристики и описание.

   

Увидим такое сообщение. Это означает, что вновь созданная библиотека не подключена к проекту, и мы работаем с ней просто как с отдельным файлом. Но подключить её можно прямо сейчас, в редакторе компонентов, в меню «Настройки» - «Библиотека». Нажимаем «Добавить» и добавляем в список свой файл. Двигаем его вверх списка, так как порядок библиотек имеет значение, если в разных библиотеках встретятся компоненты с одинаковым именем. Например наш резистор называется «R» и у нас, и в библиотеке «device». В редакторе схем будет отображаться тот, чья библиотека выше в списке.

Библиотеку подключили, теперь надо её выбрать, как рабочую для редактора компонентов. Это кнопка «Выбор рабочей библиотеки». Откроется окно со списком, и там уже должна быть наша. Я обозвал её «R»

 

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

 

Данный компонент уже сохранён в библиотеке, но если внести некоторые изменения, его нужно пересохранить. Это кнопки «Обновить текущий компонент в текущей библиотеке» и «Сохранить текущую библиотеку на диск». Можно просто нажать последнюю, она спросит сохранять ли при этом компонент или нет.

                   

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

  1. Создать библиотеку можно кнопкой «Сохранить текущий компонент в новой библиотеке»
  2. Подключить созданную (или любую другую) библиотеку можно в меню «Настройки» - «Библиотека» редактора компонентов или редактора схем. Она остаётся подключенной именно в этом проекте.
  3. Выбирается текущая (рабочая) библиотека редактора компонент одноимённой кнопкой
  4. Сохранить/загрузить компонент в текущей библиотеке так же можно одноимённой кнопкой
  5. Записать все изменения в файл библиотеки можно кнопкой «Сохранить текущую библиотеку на диск»
 

Создание компонентов

 

Рисуются они очень просто, из набора примитивов. Доступна окружность, прямоугольник, дуга и линия. Этого вполне достаточно. Устанавливаем сетку как удобнее, и рисуем компонент по центру листа:

   

В контекстном меню можно установить толщину линии и другие параметры. Теперь осталось добавить выводы. Там-же, на панели, есть кнопка «добавить вывод». Тыкаем её, и тут начинается самое интересное.

 


  • Имя вывода - отображается около вывода, обычно используется для маркировки выводов микросхем. Если хотите указать, что это инверсный сигнал, можно поставить перед именем знак «~», при этом имя будет отображаться с верхним подчёркиванием. Если оставить только знак «~», значит вывод будет без имени (он подставляется автоматически, если поле пустое)
  • Номер вывода - проставляется обязательно. Отображение можно включить/отключить в настройках компонент. Нумеровать надо с единицы, т.к. эти номера привязываются к номерам контактных площадок.
  • Ориентация - направление. Можно не ставить, а вертеть его потом как угодно клавишей «R». Там, где кружочек, будет подводиться соединение.
  • Обозначение - маркер на месте соединения вывода и корпуса. Обычно обозначают инверсные, и другие типы входов/выходов, но обозначения буржуйские и смотрятся некрасиво. Лучше свои нарисовать при необходимости.
  • Электрический тип - самое важное поле. Ошибившись тут при создании компонента получим кучу ошибок при проверке схемы. Разберём их:
  •  вход/выход используется у логики, ОУ, других деталей, где ножка имеет чёткое состояние: высокое входное сопротивление (вход), либо низкое выходное (выход)
  •  двунаправленный используется там, где вывод может быть как входом, так и выходом. Например I/O-порт микроконтроллера.
  •  трёхстабильный - выход с тремя состояниями (высокий, низкий, высокоимпедансное состояние)
  •  пассивный - думаю, понятно. Сейчас он нам и будет нужен (для резистора).
  •  не определено - контроля ERC этой цепи не будет. Лучше не использовать, но можно выбрать там, где не знаете, что поставить.
  •  вход/выход питания - очень важный тип вывода, но об этом позже.
  •  открытый коллектор/эмиттер - соответственно выходы с ОК/ОЭ. Тоже не забываем про них.
  •  не подсоединён ставится у некоторых деталей (в основном микросхем), где на стандартном корпусе больше выводов, чем нужно. В даташитах обычно обозначаются «NC», т.е. никуда не подключены. Если поставить этот тип сразу, отпадёт необходимость ставить знак «не подсоединено» каждый раз на схеме.
 

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

 

Ну вот, этот резистор более похож на настоящий, русский резистор!

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

 

Ну и фильтр посадочных мест тоже очень советую заполнить, т.к. это очень упростит привязку в будущем. Заполняется он просто: если включен фильтр, будут отображаться только те посадочные места, имена которых подходят под маску. Например задаём маску «R*» - отфильтруется всё, начинающееся на «R». А вот «R??» отфильтрует все названия их трёх букв, начинающиеся на «R», например «R01», «Rsh» и т.д.

Теперь проверим, что получилось. Нажимаем кнопку проверки (с красным жуком).

  


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

 

Смысл в том, что стандартная сетка предназначена для размещения более крупных компонентов, которые легко вывести на печать для оформления документации. Лучше, конечно, следовать этому правилу, но мне стандартная сетка показалась крупновата, и я все свои компоненты подогнал под сетку в 10mils (0.254мм). Я всё-таки радиолюбитель, и ГОСТы мне не указ. Как вам поступить - решайте сами.

 

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

 

Уже лучше, правда? Да, это потребовало немного труда, но это разовая работа, дальше просто используйте эти библиотеки где удобно.

Теперь нажимаем кнопку «Обозначить схему», подтверждаем, и получаем автоматически расставленные позиционные обозначения. Разумеется их можно поправить вручную при необходимости.

               

Теперь нужно проверить схему, не допущены ли там явные ошибки. Это делается с помощью инструмента контроля электрических цепей — ERC. Нажимаем кнопку с жуком сверху, и видим такой текст:

               



А так же маркеры на схеме. Но как же так? Вроде всё правильно, но почему ошибки?

Всё очень просто: мы забыли указать, какие цепи относятся к шинам питания.

                   

Создание цепей питания и многоэлементных компонентов

 

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

 

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

  

       

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

Но если надо настроить функции выводов у разных блоков по-своему, это тоже возможно!

Нужно нажать кнопку рядом с выпадающими списками: - при этом выводы каждого элемента будут настраиваться отдельно.  

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

Так как после подобных манипуляций выводы питания становятся не видны на схеме, единственной привязкой их к физическим цепям остаётся только их имя. Так что тут внимательней: если вы назвали вывод VCC, и этим же именем цепь питания на схеме, на которую по задумке должно подаваться, например, +12В, то трассировщик вам и вбахает на микросхему эти 12В... По традиции названием VCC называют питание для всей логики (+5В или +3.3В), так что стандартные компоненты в библиотеках имеют выводы питания именно с такими именами. Но никто не мешает вам обозвать их по-своему.

 

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


Справа — невидимая надпись имени компонента в библиотеке, слева — позиционное обозначение компонента, по центру — невидимый вывод нулевой длины, и пририсованная к нему ножка.

 

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

 

Все символы питания находятся в стандартной библиотеке «power». Она немного особая: кнопка «разместить порт питания» в редакторе схем работает только с ней. Хотя можно не использовать этот инструмент, а добавлять эти элементы как обычные компоненты. Если хотите использовать свою библиотеку, проще удалить стандартную из списка (физически она останется, можно подключить заново) и добавить свою с тем же именем. Тогда программа просто не заметит подлога.

 

Итак, теперь понятно, откуда у нас ошибки на схеме — есть одни входы питания, но нет ни одного выхода. Нет — добавим! В библиотеке «power» есть специальный символ для этого - «PWR_FLAG». Он специально создан для того, чтобы на схеме можно было добавить хотя-бы один выход питания. Соответственно имеет один вывод с таким статусом. Я его тоже перерисовал, т.к. Стандартный мне не понравился.

 

Прогоняем проверку — вуаля! Ни одной ошибки!

 

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

Некоторые нюансы

Любая цепь на схеме имеет своё имя. Оно задаётся автоматически при прокладке любого проводника, и имеет вид числа («N-000000», вместо нулей порядковый номер). Для удобства некоторые цепи можно назвать осмысленными именами, с помощью инструмента «Разместить имя цепи».

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

Eeschema имеет очень много возможностей, все их рассматривать не имеет смысла, так как есть справка. Этого достаточно будет для старта. А вот продолжение будет гораздо интереснее — будем учиться рисовать посадочные места, разводить платы на автомате и вручную, и даже создавать 3D-модели!



Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

117 10 2
22 5 4