Трассировка печатной платы в KiCAD

1d0b01d6cffd41d9836ed2cb0162eb50.png

Одним из критических замечаний к предыдущей статье было следующее: дескать фу таким быть, стрелять из пушки по воробьям да ещё проприетарным софтом за 10000$, к тому же наверняка украденным с торрентов. Оставляя за кадром моральную сторону вопроса, а так же презумпцию невиновности, обратимся к следующему вопросу —, а что там у нас имеется в Open Source секторе, пригодное для решения задач проектирования электронной техники. В частности изготовления печатных плат. Наиболее достойной, на мой взгляд, оказалась кроссплатформенная программа KiCAD, распространяемая по лицензии GNU GPL. Имеются версии для Linux, Windows и macOS.

Рассмотрим этот инструмент подробнее применительно к уже решенной мною задаче — трассировке печатной платы для преобразователя уровней на базе MAX232.

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

$ sudo pacman -S kicad kicad-library kicad-library-3d

Первый пакет — сама программа, второй — библиотеке компонентов, третий — 3D-модели компонентов. Собственно и всё. Аналогичный набор пакетов имеется для всех популярных дистрибутивов Linux. Для Windows качаем бинарный инсталлятор здесь. Для macOS все аналогично. В общем, установка элементарна и затруднений не вызывает.

Запустив KiCAD мы увидим главное окно программы. Оно содержит дерево проекта и кнопки вызова программных компонент, предназначенных для различных этапов проектирования устройства.

cb8d8147d8c7434aafa5f510fd450e4f.png

Идем в меню Файл → Новый проект → Новый проект. Нам предложат выбрать место, где будут располагаться файлы проекта, а так же выбрать его имя. Все файлы, относящиеся к проекту лучше расположить в отдельном каталоге. Я располагаю все в каталоге ~/work/kicad/rs232, и проект назову rs232.

После создания проекта в дереве образуются два файла: rs232.pro — файл проекта; rs232.sch — файл принципиальной схемы. Дважды кликаем по файлу схемы и переходим Eeschema — программу для рисования схем

3376b59273334d82acf56853e67f89a4.png

Формат основной надписи чертежа, естественно буржуазный. Но нас пока не интересует следование ГОСТ и ЕСКД. Нам надо оценить возможности пакета для решения конкретной практической задачи, путь даже такой простой. Поэтому приступим к рисованию схемы.

С правой стороны окна расположена панель инструментов. На ней имеется кнопка с изображением операционного усилителя — жмем на неё и переходим в режим размещения компонентов. Кликая мышью в поле схемы мы инициируем появление диалога

9935b2aad4c2493d973467142c46145e.png

В строке фильтра начинаем набирать «max232». система производит поиск по библиотеке и предлагает нам интересующую нас микросхему. Выбираем её, жмем ОК и курсором мыши помещаем компонент в нужное место схемы. Аналогичным образом кладем на схему электролитический конденсатор, который отзывается в KiCAD по имени CP

276b92d93526458e92131f9fe075f5da.png

Наводим курсор на конденсатор, жмем «V» и в появившемся окне задаем его номинал

a88d5a8cffaa4ac0b57b90cef046f56f.png

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

M — переместить компонент (начать перемещение)
C — создать копию компонента
R — повернуть компонент по часовой стрелке
X — отразить компонент относительно горизонтальной оси
Y — отразить компонент относительно вертикальной оси

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

Имя компоненты в библиотеке Тип компонента Количество
CP Электролитический конденсатор 4
D Диод 1
DB9 Коннектор типа DB-9 1
CONN_01×05 Однорядный штыревой коннектор (5-pin) 1

Кроме того, нам понадобится земля и питание +5 В. Эти элементы добавляются в режиме размещения портов питания, который включается на правой панели кнопкой с символом «земли». Нам понадобятся следующие порты: GND — собственно «земля»; +5V — без комментариев.

В конечном итоге на поле схемы у нас получится что-то вроде этого

c81cc62787c84c6f8d36f8a5355e9c7f.png

Теперь, нажатием кнопки с изображением зеленой линии переходим в режим «Разместить проводник» и соединяем выводы всех элементов согласно принципиальной схеме устройства. Если нам нужна дополнительная «земля», наводим курсор на ближайшую «землю», жмем «C» и клонируем её, без отрыва от процесса соединения элементов. В конечном итоге у нас получится следующая схема

2a055b09e7ba45eca2596ba1a670f5f4.png

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

80fbdf98d0094c5dbd3a7cf6a49f973e.png

Задаем интересующие нас настройки и жмем «Обозначить компоненты». Теперь другое дело

b330a38ab80945e1ae26747fc72d734b.png

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

a1f7b65ac97e452590f40b1b1e3133a6.png

Ошибок нет, но зато есть 13 предупреждений. Эти предупреждения принципиальны — они указывают на то, что некоторые выводы элементов у нас никуда не подсоединены, а также на то, что мы не подали питание на схему.

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

b9a7159b3a0f4b25a6fcf6c642780cc2.png

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

После этого проверяем схему ещё раз

502772e4569e4342b4526a1c81539579.png

Отлично, всего два предупреждения о не подключенном питании. Питание в нашем случае подается с другого устройства через штыревую колодку P1, поэтому системе следует указать не это, используя виртуальный порт питания PWR_FLAG. Устанавливаем этот порт питания на схему и подсоединяем его к порту питания +5V, к «земле» и проводу идущему от разъема P1 к диоду, как показано на рисунке

3891f8a038be47cf9fcaa8bf991e44e8.png

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

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

ddbeb4a3cda44b79a3e610472041d41b.png

выбираем родной для KiCad формат списка цепей, задаем имя файла списка rs232.net и жмем кнопку «Сформировать».

Схема готова и можно приступать к следующему этапу

Этот этап отражает особенность KiCAD — схемное обозначение компонента отвязано от его посадочного места и визуального представления. Прежде чем приступить к разводке платы, каждому компоненту надо привести в соответствие его посадочное место (footprint) — топологическая структура задающая по сути размер и расположение отверстий и/или контактных площадок на плате, предназначенных для монтажа данного компонента. Это делается с помощью входящей в состав пакета программы CvPcb. Для её запуска идем в меню Инструменты → Assign Component Footprint. Система немного задумается и выдаст окно

913f7ca90ea0472ea629433c6f1c6c0f.png

В первой колонке расположен список доступных библиотек. Во второй колонке — список компонентов, представленных в нашей схеме. В третьей — список доступных посадочных мест. Скажем нам нужна определится с форм-фактором конденсатора C1. У нас имеются в наличии конденсаторы Ether для монтажа в отверстия с диаметров 5 мм, высотой 11 мм и с расстоянием между выводами 2 мм. Хорошо, выбираем библиотеку Capacitor_ThroughHole (конденсаторы для монтажа в отверстия) в первой колонке, конденсатор C1 во второй колонке и посадочное место C_Radial_D5_L11_P2 в третьей колонке. Двойным щелчком по выбранному посадочному месту связываем его с компонентом. Справа от конденсатора C1 появится выбранное посадочное место, как показано на рисунке выше.

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

1e6a0b8e915a48db92f4dcea3f8ce7c3.png

Нажав в окне просмотрщика кнопку с изображением микросхемы, мы увидим 3D-модель компонента

ebe382a695d74358bb1058b834555256.png

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

471ece50eb0f4ddcaef8d1d7a5a05ac7.png

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

Сохраняем полученный список, закрываем CvPcb и заново генерируем список цепей. Теперь всё готово чтобы приступить к непосредственной разводке платы.

Для этого из меню редактора схем Инструменты → Layout Printer Circuit Board запускаем программу-трассировщик Pcbnew

da4091533074418292f987a1271dad37.png

Для настройки правил трассировки идем в меню «Правила проектирования» и в окне

29f757950bcc4da9a5e9c98e1fef32b7.png

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

Далее необходимо импортировать спроектированную схему. Для этого идем в меню Инструменты → Список цепей. В появившемся окне выбираем файл списка цепей (наш rs232.net сформированный на предыдущем этапе) и жмем кнопку «Прочитать текущий список цепей»

8fa20aca39d04bfe8fc48628564c2b01.png

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

31b9f74421f944ddad0ae3bd3b9f15a3.png

Разумеется они все слиплись в кучу. И их придется растащить на предназначенные для них места. Перемещение компонентов происходит теми же командами что и в редакторе схем — наводим курсор на элемент и жмем «M». Если мы хотим переместить компонент на другую сторону платы, то в режиме перемещения нажимаем клавишу «F». Так следует поступить с микросхемой U1, ибо она располагается со стороны дорожек, ввиду SMD-исполнения корпуса.

Попыхтев немного получаем что-то подобное

23d1cecc5f634bc99650ece98d359ec0.png

Стараемся размести компоненты так, чтобы получалось как можно меньше пересекающихся связей. Теперь можно приступать к трассировка. Автоматическая трассировка у меня не вышла, возможно я не до конца разобрался с её настройками. Для ручной трассировки перейдем в режим трассировки нажав на верхней панели кнопку «Режим дорожек: автотрассировка».

Правой кнопкой мыши щелкаем по пустому пространству рабочего окна и в выпавшем меню выбираем «Выбор рабочего слоя». В появившемся окне выбираем слой B.Cu (медь с обратной стороны платы)

86498f57c17a49d88875c7f707e1854f.png

Наводим курсор на какой-либо пин и жмем «X». Появится дорожка, идущая от выбранного пина до текущего положения курсора. Тянем эту дорожку, фиксируя её промежуточные точки однократными щелчками мыши. По завершении, на последнем пине делаем двойной щелчок. Если нам не нравится результат, жмем Esc отменяя проведенную дорожку. Другие полезные команды и их горячие клавиши доступны в контекстном меню, вызываемом правой кнопкой в момент трассировки.

Надо сказать что процесс трассировки интуитивно понятен и довольно скоро мы получаем результат

aab4fd16e0b145fd9e7f19a77b5fa999.png

Желтой линией на скрине показан контур платы. Чтобы нарисовать его переходим в слой Edge.Cuts (список слоев расположен в окне программы справа) и инструментом «Линия или полигон» (кнопка с изображением пунктирной линии на правой панели инструментов) рисуем контур платы.

Теперь всё готово. Сохраняем результат. Можно просмотреть получившуюся плату в режиме 3D (в меню Просмотр → Просмотрщик 3D)

bfdcb765262e4a0786936565e56adc6c.png

18ebcc497df54af1a1c8f7818f54c0cf.png

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

Чтобы получить, например, шаблон для ЛУТ, идем в меню Файл → Печать. В появившемся окне

45ca077b44f447e29bc3c17bd1c5a6b0.png

Задаем печатаемый слой (B.Cu — медь с задней стороны платы), обязательно выставляем галочку «Зеркально», проверяем что выставлен масштаб 1:1 и убираем галку «Печать рамки листа». Жмем печать. Если у нас нет принтера, то печатаем в PDF

7a51bcbe6fd449c28a42fe49973298cd.png

Получая на выходе искомый шаблон

ea6b733e53f54dfb9c076f82b9a697e6.png

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

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

Надеюсь было интересно. Спасибо за внимание!

© Geektimes