Трассировка печатной платы в KiCAD
Одним из критических замечаний к предыдущей статье было следующее: дескать фу таким быть, стрелять из пушки по воробьям да ещё проприетарным софтом за 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 мы увидим главное окно программы. Оно содержит дерево проекта и кнопки вызова программных компонент, предназначенных для различных этапов проектирования устройства.
Идем в меню Файл → Новый проект → Новый проект. Нам предложат выбрать место, где будут располагаться файлы проекта, а так же выбрать его имя. Все файлы, относящиеся к проекту лучше расположить в отдельном каталоге. Я располагаю все в каталоге ~/work/kicad/rs232, и проект назову rs232.
После создания проекта в дереве образуются два файла: rs232.pro — файл проекта; rs232.sch — файл принципиальной схемы. Дважды кликаем по файлу схемы и переходим Eeschema — программу для рисования схем
Формат основной надписи чертежа, естественно буржуазный. Но нас пока не интересует следование ГОСТ и ЕСКД. Нам надо оценить возможности пакета для решения конкретной практической задачи, путь даже такой простой. Поэтому приступим к рисованию схемы.
С правой стороны окна расположена панель инструментов. На ней имеется кнопка с изображением операционного усилителя — жмем на неё и переходим в режим размещения компонентов. Кликая мышью в поле схемы мы инициируем появление диалога
В строке фильтра начинаем набирать «max232». система производит поиск по библиотеке и предлагает нам интересующую нас микросхему. Выбираем её, жмем ОК и курсором мыши помещаем компонент в нужное место схемы. Аналогичным образом кладем на схему электролитический конденсатор, который отзывается в KiCAD по имени CP
Наводим курсор на конденсатор, жмем «V» и в появившемся окне задаем его номинал
Если навести курсор на любой элемент, в частности только что добавленный конденсатор, то нажатием соответствующих клавиш можно выполнять следующие действия
M — переместить компонент (начать перемещение)
C — создать копию компонента
R — повернуть компонент по часовой стрелке
X — отразить компонент относительно горизонтальной оси
Y — отразить компонент относительно вертикальной оси
Действуя описанным образом, размещаем все остальные компоненты схемы. Нам понадобятся следующие элементы
Имя компоненты в библиотеке | Тип компонента | Количество |
---|---|---|
CP | Электролитический конденсатор | 4 |
D | Диод | 1 |
DB9 | Коннектор типа DB-9 | 1 |
CONN_01×05 | Однорядный штыревой коннектор (5-pin) | 1 |
Кроме того, нам понадобится земля и питание +5 В. Эти элементы добавляются в режиме размещения портов питания, который включается на правой панели кнопкой с символом «земли». Нам понадобятся следующие порты: GND — собственно «земля»; +5V — без комментариев.
В конечном итоге на поле схемы у нас получится что-то вроде этого
Теперь, нажатием кнопки с изображением зеленой линии переходим в режим «Разместить проводник» и соединяем выводы всех элементов согласно принципиальной схеме устройства. Если нам нужна дополнительная «земля», наводим курсор на ближайшую «землю», жмем «C» и клонируем её, без отрыва от процесса соединения элементов. В конечном итоге у нас получится следующая схема
Обращаем внимание на то, что элементы схемы не пронумерованы. Для этой цели удобно воспользоваться функцией нумерации элементов. Вызываем её либо из меню Инструменты → Обозначить схему, либо нажимая кнопку «Обозначить компоненты схемы» на верхней панели инструментов. Нам покажут диалоговое окно с настройками именования элементов
Задаем интересующие нас настройки и жмем «Обозначить компоненты». Теперь другое дело
Полагая, что мы закончили схему, проверяем правильность её построения с точки зрения правил KiCAD. Для этого жмем на верхней панели кнопку с изображением божьей коровки с зеленой галочкой. В предложенном нам окне жмем кнопку «Выполнить» и получаем результат
Ошибок нет, но зато есть 13 предупреждений. Эти предупреждения принципиальны — они указывают на то, что некоторые выводы элементов у нас никуда не подсоединены, а также на то, что мы не подали питание на схему.
Неиспользуемых выводов у нас много. Чтобы система не ругалась на нас по их поводу, отметим эти выводы ка неиспользуемые. Для этого выберем режим указания неиспользуемых пинов нажатием кнопки с косым крестом «X» на правой панели, так называемый флаг «Не подключено». Помечаем этим флагом все незадействованные пины
Входы второго канала MAX232 (ножки 8 и 10) подтягиваем к «земле», с тем чтобы гарантировать нулевое напряжение на них при работе устройства.
После этого проверяем схему ещё раз
Отлично, всего два предупреждения о не подключенном питании. Питание в нашем случае подается с другого устройства через штыревую колодку P1, поэтому системе следует указать не это, используя виртуальный порт питания PWR_FLAG. Устанавливаем этот порт питания на схему и подсоединяем его к порту питания +5V, к «земле» и проводу идущему от разъема P1 к диоду, как показано на рисунке
Таким образом мы указываем системе по каким линиям в схему подается питание и следующая проверка проходит уже без ошибок и предупреждений. Сохраняем готовую схему.
Теперь следует сформировать список цепей схемы, который будет использоваться нами в дальнейшем. Для этого идем в меню Инструменты → Сформировать список цепей, или жмем соответствующую кнопку на верхней панели. В появившемся окне
выбираем родной для KiCad формат списка цепей, задаем имя файла списка rs232.net и жмем кнопку «Сформировать».
Схема готова и можно приступать к следующему этапу
Этот этап отражает особенность KiCAD — схемное обозначение компонента отвязано от его посадочного места и визуального представления. Прежде чем приступить к разводке платы, каждому компоненту надо привести в соответствие его посадочное место (footprint) — топологическая структура задающая по сути размер и расположение отверстий и/или контактных площадок на плате, предназначенных для монтажа данного компонента. Это делается с помощью входящей в состав пакета программы CvPcb. Для её запуска идем в меню Инструменты → Assign Component Footprint. Система немного задумается и выдаст окно
В первой колонке расположен список доступных библиотек. Во второй колонке — список компонентов, представленных в нашей схеме. В третьей — список доступных посадочных мест. Скажем нам нужна определится с форм-фактором конденсатора C1. У нас имеются в наличии конденсаторы Ether для монтажа в отверстия с диаметров 5 мм, высотой 11 мм и с расстоянием между выводами 2 мм. Хорошо, выбираем библиотеку Capacitor_ThroughHole (конденсаторы для монтажа в отверстия) в первой колонке, конденсатор C1 во второй колонке и посадочное место C_Radial_D5_L11_P2 в третьей колонке. Двойным щелчком по выбранному посадочному месту связываем его с компонентом. Справа от конденсатора C1 появится выбранное посадочное место, как показано на рисунке выше.
Для проверки посмотрим на чертеж посадочного места, нажав кнопку с изображением микросхемы под лупой на верхней панели
Нажав в окне просмотрщика кнопку с изображением микросхемы, мы увидим 3D-модель компонента
Убеждаемся, что выбранное посадочное место соответствует фактической детали, имеющейся у нас. Таким же образом связываем и остальные компоненты. У меня вышел вот такой список
Надо сказать найти нужное посадочное место с непривычки довольно трудно. Но мне удалось обойтись стандартными библиотеками. В любом случае, проблема отсутствия нужной детали решается путем гугления или самостоятельного изготовления (но это выходит за рамки статьи).
Сохраняем полученный список, закрываем CvPcb и заново генерируем список цепей. Теперь всё готово чтобы приступить к непосредственной разводке платы.
Для этого из меню редактора схем Инструменты → Layout Printer Circuit Board запускаем программу-трассировщик Pcbnew
Для настройки правил трассировки идем в меню «Правила проектирования» и в окне
задаем ширину дорожек, зазор между ними, диаметр отверстий, диаметр сверла в соответствии с имеющимися у Вас техническими возможностями. Мои настройки представлены на скриншоте.
Далее необходимо импортировать спроектированную схему. Для этого идем в меню Инструменты → Список цепей. В появившемся окне выбираем файл списка цепей (наш rs232.net сформированный на предыдущем этапе) и жмем кнопку «Прочитать текущий список цепей»
Если мы не ошибались на предшествующих этапах, процесс пройдет без ошибок. Закрываем окно и видим, что компоненты разместились в окне чертежа платы
Разумеется они все слиплись в кучу. И их придется растащить на предназначенные для них места. Перемещение компонентов происходит теми же командами что и в редакторе схем — наводим курсор на элемент и жмем «M». Если мы хотим переместить компонент на другую сторону платы, то в режиме перемещения нажимаем клавишу «F». Так следует поступить с микросхемой U1, ибо она располагается со стороны дорожек, ввиду SMD-исполнения корпуса.
Попыхтев немного получаем что-то подобное
Стараемся размести компоненты так, чтобы получалось как можно меньше пересекающихся связей. Теперь можно приступать к трассировка. Автоматическая трассировка у меня не вышла, возможно я не до конца разобрался с её настройками. Для ручной трассировки перейдем в режим трассировки нажав на верхней панели кнопку «Режим дорожек: автотрассировка».
Правой кнопкой мыши щелкаем по пустому пространству рабочего окна и в выпавшем меню выбираем «Выбор рабочего слоя». В появившемся окне выбираем слой B.Cu (медь с обратной стороны платы)
Наводим курсор на какой-либо пин и жмем «X». Появится дорожка, идущая от выбранного пина до текущего положения курсора. Тянем эту дорожку, фиксируя её промежуточные точки однократными щелчками мыши. По завершении, на последнем пине делаем двойной щелчок. Если нам не нравится результат, жмем Esc отменяя проведенную дорожку. Другие полезные команды и их горячие клавиши доступны в контекстном меню, вызываемом правой кнопкой в момент трассировки.
Надо сказать что процесс трассировки интуитивно понятен и довольно скоро мы получаем результат
Желтой линией на скрине показан контур платы. Чтобы нарисовать его переходим в слой Edge.Cuts (список слоев расположен в окне программы справа) и инструментом «Линия или полигон» (кнопка с изображением пунктирной линии на правой панели инструментов) рисуем контур платы.
Теперь всё готово. Сохраняем результат. Можно просмотреть получившуюся плату в режиме 3D (в меню Просмотр → Просмотрщик 3D)
Результат выглядит довольно симпатично, правда монтаж можно сделать и поплотней.
Чтобы получить, например, шаблон для ЛУТ, идем в меню Файл → Печать. В появившемся окне
Задаем печатаемый слой (B.Cu — медь с задней стороны платы), обязательно выставляем галочку «Зеркально», проверяем что выставлен масштаб 1:1 и убираем галку «Печать рамки листа». Жмем печать. Если у нас нет принтера, то печатаем в PDF
Получая на выходе искомый шаблон
Надо сказать, что я довольно бегло пробежался по возможностям KiCAD, обращая внимание лишь на ключевые моменты его использования. Эта статья некоторый вводный мануал, обобщающий весьма разрозненную информацию, имеющуюся в сети. Тем не менее он может служить хорошим стартом.
Можно сделать вывод, что программа вполне пригодна для проектирования печатных плат, учитывая что описание всех её возможностей выкатится не в один десяток подобных статей. Её несомненным преимуществом является бесплатность и открытый формат всех конфигурационных файлов и библиотек, дающих бескрайний простор для расширения компонентной базы.
Надеюсь было интересно. Спасибо за внимание!