Site Loader

kicad — Crafting.be

Tagkicad

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

От статей не отказываемся, все таки емкая статья с инструкциями занимает гораздо меньше времени и места, чем видео.

На данный момент выложено два видео.

Первое, это пример работы с логическим анализатором и свободным софтом — sigrok который его обслуживает.

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

Continue reading

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

Благодаря тому, что kicad хранит свои данные в текстовых файлах, а не в бинарниках, это позволяет использовать git и прочие системы контроля версий для ведения проектов.

Под катом вас ждет статья о том как сделать работу с git чуть удобней при проектировании в kicad.

Continue reading

Прошу прощения у читателей если таковые имеются, что я давно не писал. Так сказать не генерил контент. Но не будем об этом. В этой заметке я бы хотел зафиксировать знания о модуле FreeCAD-PCB

Времена когда мы делали модельки компонентов в wings3d с его ужасным управлением, а если и делали чем другом, то все равно приходилось сохранять через wings потому что kicad читал только wrml от wings3d.

Все эти масштабирование на 2.54, они кажется в прошлом и хотя сейчас в самом kicad планируют как то переписать и пересмотреть 3D рендер и формат присоединяемых моделей

Но это уже не важно KiCAD-PCB работает отдельно.

Continue reading

Под Linux есть не так уж много проектов эмуляторов работы радиоэлектронных схем и при этом обладающих простым интерфейсом. И неплохой документацией.

Continue reading

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

mcr файлов, пришлось доходить самому.

Continue reading

Итак чтобы посмотреть что же нового появилось в kiCAD за год, мы собрали новую версию(6.08.13).

Continue reading

© 2023 Crafting.be

Theme by Anders Norén — Up ↑

Создание проектов в программе FLProg. Урок первый / Хабр

В предыдущей статье я представил проект FLProg. Теперь я хочу рассказать, как работать в этой программе.

У программистов в качестве первого урока принято использовать “Hello World”, у программистов микроконтроллеров помигать светодиодом, ну а у электриков и электронщиков собрать схему управления контактором. Поскольку основными пользователями программы как раз они и являются, собирать на первом уроке будем как раз данную схему.

Стандартная схема управление контактором

Заменим эту схему контроллером Ардуино. Оставим в стороне вопросы помехозащищённости и экранировки.

Эта тема для отдельного и очень большого разговора. Наша цель — создать в программе FLProg соответствующую логику. Поэтому накидаем тестовую схему подключения.

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

Откроется окно выбора контроллера и языка программирования проекта.

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

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

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


В данном списке выбираем нужный контроллер.

Выбранный для проекта контроллер можно сменить в любой момент.

Для начала создадим проект на языке LAD.

Язык LAD

Ladder Diagram (LD, LAD, РКС) – язык релейной (лестничной) логики. Синтаксис языка удобен для замены логических схем, выполненных на релейной технике. Язык ориентирован на специалистов по автоматизации, работающих на промышленных предприятиях. Обеспечивает наглядный интерфейс логики работы контроллера, облегчающий не только задачи собственно программирования и ввода в эксплуатацию, но и быстрый поиск неполадок в подключаемом к контроллеру оборудовании. Программа на языке релейной логики имеет наглядный и интуитивно понятный инженерам-электрикам графический интерфейс, представляющий логические операции, как электрическую цепь с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в этой цепи соответствует результату логической операции (истина — если ток течет; ложь — если ток не течет). Основными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки.

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

Рабочее окно программы FLProg на языке FBD состоит из нескольких полей:

  1. Основное меню программы
  2. Дерево проекта (в данном уроке оно не используется, его рассмотрим в последующих уроках)
  3. Дерево установленного оборудования. В нём представлено оборудование (промежуточные реле, реле времени, генераторы…), которое используется в проекте. В новом проекте в нём присутствуют только входы и выходы контроллера.
  4. Библиотека блоков. В ней находится оборудование, которое возможно применить в проекте. В данном уроке нас будет интересовать только папка «Базовые блоки»
  5. Область схемы, в которой и будет собственно рисоваться схема. Схема в FLProg представляет собой набор плат с оборудованием.

Для начала вытащим на область схемы контакты кнопок. Это возможно сделать двумя путями.

  • Перетащить соответствующий вход из папки «Свободные входы–выходы контроллера» дерева установленного оборудования на область схемы
  • Перетащить блок «Контакт» из папки «Базовые элементы» библиотеки блоков.

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

И любом случае контакты необходимо параметрировать. Для этого делаем двойной клик на контакте. Открывается окно редактирования блока.

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

На закладке «Надпись к блоку» пишем название кнопки, что бы оно отображалось на схеме.

На закладке «Информация» можно посмотреть информацию о данном устройстве.

Таким же способом вытаскиваем остальные кнопки и контакты реле перегрузки.

После этого перетаскиваем из библиотеки блоков устройство «Катушка». Так же двойной клик на нём и открывается окно параметрирования катушки.

Назначаем катушку промежуточным реле «К1» дважды кликнув на соответствующем пункте списка.
Теперь надо выставить состояние контактов.
В программе FLProg состояние контакта соответствует уровню на привязанном входе платы. Если на входе платы 0 – контакты разомкнуты, если 5В – замкнуты. Поскольку кнопки в соответствии со схемой подключены к GND и включены встроенные подтягивающие резисторы, при замкнутой кнопке на входе платы будет 0, а при отпущенной кнопке 5В. В соответствии с этими правилами выставляем соответствие контактов. Это можно так же сделать двумя путями.

  • Дважды кликнув на контакт и выбрав нужное состояние в редакторе блока
  • Кликнуть правой кнопкой по контакту и в выпавшем меню выбрать нужный пункт.

Должно получиться вот такое состояние контактов (противоположное типовой схеме по описанной ранее причине)

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

Для создания блок-контакта контактора можно перетащить контакт К1 из дерева установленного оборудования на схему.

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

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

Откроется окно редактирования заголовка платы.

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

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

Катушки с привязанными выходами платы соотносятся так: при включении катушки в проекте на выходе платы Ардуино будет 5В при выключении 0
Затем перетаскиваем из дерева установленного оборудования необходимые контакты (два контакта промежуточного реле, и контакт входа реле перегрузки), после чего рисуем необходимую схему и называем плату «Управление выходами».

Стрелочка в заголовке платы даёт возможность свернуть плату, что позволяет экономить место на рабочем поле и ускоряет работу программы при больших схемах. При клике на стрелочку плата либо сворачивается, либо разворачивается.

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

Язык FBD

FBD (Function Block Diagram) – графический язык программирования стандарта МЭК 61131-3. Программа образуется из списка цепей, выполняемых последовательно сверху вниз. При программировании используются наборы библиотечных блоков. Блок (элемент) — это подпрограмма, функция или функциональный блок (И, ИЛИ, НЕ, триггеры, таймеры, счётчики, блоки обработки аналогового сигнала, математические операции и др.). Каждая отдельная цепь представляет собой выражение, составленное графически из отдельных элементов. К выходу блока подключается следующий блок, образуя цепь. Внутри цепи блоки выполняются строго в порядке их соединения. Результат вычисления цепи записывается во внутреннюю переменную либо подается на выход контроллера.

Создадим новый проект на языке FBD.

Поля 1, 2, 4, 5 в окна программы аналогичны полям на языке LAD. Поле 3 здесь содержит дерево тэгов (входов, выходов и переменных). Здесь нет предварительно созданных входов, их нужно создавать при необходимости. Для создания нового входа нужно нажать кнопку «Добавить вход» или дважды кликнуть по пункту «Добавить вход» в дереве тэгов.

Откроется окно создания входа

Выбираем цифровой, появляются новые параметры. Записываем название входа, выбираем нужный вход платы Ардуино, и ставим галочку «Включить подтягивающий резистор».

Таким же образом добавляем все необходимые входы

Затем создаем переменную, отвечающую за состояние контактора. Для этого либо нажимаем на кнопку «Добавить переменную» либо делаем двойной клик на пункте «Добавить переменную» в дереве тэгов.

Открывается окно настройки переменной

Выбираем тип переменной Boolean и заполняем параметры

Блоки входа на языке FBD соответствуют реальным выходам платы, следующим образом. Когда на реальном входе 0 – на выходе блока – False, когда на входе платы 5B на выходе блока True.
Для запоминания состояния контактора используем RS триггер. Его надо перетащить из папки «Триггеры» библиотеки блоков на рабочее поле схемы.

RS-триггер

RS-триггер, или SR-триггер — триггер, который сохраняет своё предыдущее состояние при нулевых входах и меняет своё выходное состояние при подаче на один из его входов единицы.
При подаче единицы на вход S (от англ. Set — установить) выходное состояние становится равным логической единице. А при подаче единицы на вход R (от англ. Reset — сбросить) выходное состояние становится равным логическому нулю.
При логическом нуле на обоих входах на выходе удерживается последнее состояние. При логических единицах на обоих входах в случае RS триггера выход устанавливается в логический ноль, а в случае SR триггера в логическую единицу.

Для того что бы включился контактор необходимо подать на вход S сигнал со входа «Пуск». Для этого перетаскиваем из дерева тэгов вход «ПУСК» на рабочую область схемы. Если вспомнить о том, что при нажатии кнопки Пуск на вход платы подаётся логический 0, то понятно, что необходимо инвертировать сигнал с кнопки. Для этого наведём курсор на вход S триггера и кликнем правой кнопкой мыши. В открывшимся меню в пункт выберем «Инвертировать»

После чего соединяем вход S триггера с выходом блока входа «Пуск». Создание соединения происходит, так же как и в языке LAD.

Остановка контактора происходит если:
Нажата кнопка «СТОП» (лог.1 на блоке входа «Стоп» ) ИЛИ нажата кнопка «АВАРИЙНЫЙ СТОП» (лог.1 на блоке входа «Аварийный стоп» ) ИЛИ сработало тепловое реле (лог.1 на блоке входа «КТ1» ). Значит, нам нужен блок ИЛИ с тремя входами.

Перетаскиваем его из библиотеки блоков из папки «Базовые блоки».

По умолчанию у блока ИЛИ два входа. Для того что бы добавить третий, выделяем блок и нажимаем кнопку «Добавить вход».

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

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

Перетащим на вторую плату созданные выходы, вход КТ1 и переменную «Состояние контактора» Затем соединим блоки в соответствии со схемой. Необходимые воды блоков инвертируем.

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

В результате открывается окно Arduino-IDE с открытым скетчем, в который была преобразована созданная схема.

В программе Arduino-IDE выбирается плата, порт и производится заливка в контроллер скетча.

ОШИБКА — 404 — НЕ НАЙДЕНА

  • Главная
  • У нас было лишнее масло.

Наши серверные гномы не смогли найти страницу, которую вы ищете.

Похоже, вы неправильно набрали URL-адрес в адресной строке или перешли по старой закладке.

Возможно, некоторые из них могут вас заинтересовать?

Светодиод — адресуемый RGB, PTH, 5 мм, прозрачный (5 шт.

в упаковке)

В наличии COM-12999

3

Избранное Любимый 21

Список желаний

Понижающий/повышающий преобразователь постоянного/постоянного тока — 8–36 В в 12 В/6 А

Нет в наличии COM-18732

14,95 $

Избранное Любимый 3

Список желаний

МИКРОЭ Термостат 4 Click

Нет в наличии SEN-19420

28,95 $

Избранное Любимый 0

Список желаний

МИКРОЭ 3D Зал 9 Click

Нет в наличии SEN-20470

14,95 $

Избранное Любимый 0

Список желаний

Яблоко Моего FTDI

11 июня 2021 г.

Теперь доступны три новых стартовых комплекта FTDI, а также новый сервопривод субмикроразмера!

Избранное Любимый 0

10 основных ошибок проектирования, которых следует избегать при разработке электронного оборудования

28 июля 2021 г.

Ознакомьтесь с третьей частью серии гостевых блогов Джона Тила из Predictable Designs.

Избранное Любимый 1

Основы RFID

23 февраля 2017 г.

Познакомьтесь с основами технологии радиочастотной идентификации (RFID).

Избранное Любимый 28

  • Электроника SparkFun®
  • 6333 Dry Creek Parkway, Niwot, Colorado 80503
  • Настольный сайт
  • Ваш счет
  • Авторизоваться
  • регистр

KiCad Eeschema как графический интерфейс для ngspice, руководство по настройке моделирования

  1. Введение
  2. Настройка eeschema — ngspice
  3. Цепь с пассивными элементами
  4. Биполярный усилитель
  5. Инвертирующий усилитель с операционным усилителем
  6. Цифровое моделирование
  7. Использование внешнего ngspice
  8. Улучшение сценария для использования как с внутренним, так и с внешним ngspice
  9. Использование двойного операционного усилителя
  10. Ссылки на модели, инструкции, видео и т. д.

KiCad/Eeschema очень приятный графический интерфейс, который может идеально использовать в сотрудничестве с ngspice, чтобы разрешить схематический ввод электронные схемы, моделирование и отображение результатов.

Все эксперименты, описанные здесь, требуют использования в по крайней мере KiCad версии 5, и были сделаны с MS Windows каждую ночь. Большинство рассматриваемых вопросов должны быть аналогичны KiCad/ngspice под LINUX. Изображения создаются с помощью KiCad 5.1.2, но выглядят очень похоже на новую версию 6.0.0. Для получения более подробной информации об интерфейсе Eeschema-ngspice и его использовании см. пожалуйста, проверьте Руководство KiCad/Eeschema.

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

Ngspice читает библиотеки устройств PSPICE. Они часто предоставляются производителями полупроводниковых устройств для поддержки проектирования. Внутренне ngspice переводит синтаксис PSPICE в ngspice перед симуляцией. Больше не требуется ручная настройка описания библиотеки.

Настоятельно рекомендуется: Установите выпуск KiCad 6 с http://kicad.org/download/. Ngspice-35 поставляется с этим дистрибутивом. Некоторые дистрибутивы Linux, например. OpenSUSE Tumbleweed, предлагаем KiCad 6.0.0 с ngspice-35.

Если вы хотите использовать модели устройств PSPICE (часто полупроводниковыми компаниями), вы должны установить соответствующий режим совместимости:

Осмотрите —> Симулятор —> Параметры Sim —> Режим совместимости: PSpice и LTSpice —> хорошо.

И все!

Если вы хотите использовать ngspice-36, Пожалуйста, читайте дальше. В противном случае пропустите загрузку и перейдите к главе. 2.

Если вы используете MS Windows, установили 64-разрядную версию KiCad и хотите обновить ее с ngspice-35 на 36, вы должны заменить симулятор, находящийся в ngspice.dll в папке KiCad/bin, на новая dll ngspice. Для обновления сделайте следующее:

Загрузите ngspice dll, доступную в ngspice-36_dll_64.zip.

Переименуйте ngspice.dll в C:\Program Files\KiCad\6.0\bin в ngspice_orig.dll. Вам потребуется доступ администратора права на это. Скопируйте ngspice.dll из папки ngspice-36_dll_64.zip\Spice64_dll\dll-vs\ zip-файла в папку C:\Program Files\KiCad\6.0\bin. Затем переименуйте папку C:\Program Files\KiCad\6.0\lib\ngspice в C:\Program Files\KiCad\6.0\lib\ngspice_orig и раскройте папку ngspice-36_dll_64.zip\Spice64_dll\lib\ngspice\ из zip-файла в C:\Program Files\KiCad\6.0\lib\ для создания обновленного C:\Program Files\KiCad\6.0\lib\ngspice. Теперь перезапустите KiCad. Эта процедура не будет работать для 32-битного KiCad, замены 32-битной dll нет.

Если вы используете LINUX, проверьте, не установлен ли уже ваш дистрибутив. предлагает общую библиотеку ngspice-36. Если нет, вам может потребоваться загрузить ngspice-36.tar.gz и скомпилируйте разделяемую библиотеку с помощью

мкдир нгшаред
cd ngshared
../configure --with-ngshared --enable-xspice --enable-cider --enable-openmp --disable-debug CFLAGS="-m64 -O2" LDFLAGS="-m64 -s"
сделать чистым
сделать -j8
судо сделать установить

 

Тогда необходимо вручную перезаписать старый libngspice.so, который был поставлен KiCad с новой сгенерированной версией.

Например, некоторые подробности для Ubuntu сообщаются мифи. пожалуйста, проверьте также гл. 32.1 руководство по ngspice для предварительных требований и процедур для компиляции ngspice.

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

Первый пример — простая радиоуправляемая лестница, и мы хотим сделать симуляцию переменного тока.

eeschema -> Файл -> новый

Сохранить как rcrc.kicad_sch.

В качестве пользователя без прав администратора вам может быть запрещено хранить файл rcrc.kicad_sch в каталоге Program Files/Kicad, но вы можете выбрать любой другое место, доступное для вас, например. рекомендованную личную папку.

Выберите и соедините компоненты.

Указатель «Добавить символ» уже открыт. Если нет, выберите соответствующую кнопку в правом столбце.

При нажатии кнопки на пустом поле чертежа откройте окно «Выбор символа». Для этого примера мы выбираем ‘pspice’ библиотеку, а также выберите и соедините между собой символы R, C, 0 и VSOURCE (см. рис. 1). Земля (0) требуется, потому что ngspice ссылается на все напряжения на контакт заземления. VSOURCE требуется для доставки входного сигнала, и мы можем просматривать «выходной» сигнал. сигнал после имитации.

рисунок 1

Далее мы должны добавить имена и значения к символам, нажав на каждый символ. С R и C это просто: R? является имя должно стать R1 и т. д., R — значение, которое станет 1k и т. д. VSOURCE особенный, потому что он должен доставлять входные данные ngspice. Для переменного тока симуляции, у нас нет постоянного тока, а переменный ток — наша ссылка, установленная на 1, поэтому мы заменяем VSOURCE на «dc 0 ac 1».

Наконец, мы должны указать ngspice, что моделировать. Для этого может потребоваться ознакомиться с руководством по ngspice, глава. 15.3.1. Нам нужен переменный ток в диапазоне от 1 Гц до 100 кГц с 10 точками. за десятилетие. Простой и удобный способ сообщить об этом симулятору просто размещает текстовую строку «.ac dec 10 1 100k» в наше окно рисования eeschema. Рис.2 теперь показывает полный ввод.

Рис. 2

И вперед, с Eeschema -> Inspect -> Simulator

Появится окно симулятора. Потому что все готово, вы просто нажимаете кнопку «Запустить симуляцию». Пустой участок всплывает окно. Перейдите к «Добавить сигналы» -> V (выход), и вы увидите усиление и фаза выхода, если на входе была 1 (рис. 3).

Рис. 3

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

Сначала мы должны изменить входной сигнал напряжения. Предполагается ступенчатое напряжение от 0 до 5 В. Это будет доступно (см. руководство ngspice, глава 4.1.1) с источником PULSE. ‘dc 0 ac 1’ должен быть заменен на «ПУЛЬС (0 5 1u 1u 1u 1 1)». Входное напряжение возрастает от 0 до 5 В после задержка 1 мкс. Время нарастания и спада также установлено на 1 мкс. Ширина импульса и время повторения составляют 1 с и, таким образом, намного превышают время моделирования. 100 мс. Таким образом, во время нашего моделирования мы увидим только нарастающий фронт входного сигнала. Теперь для команды моделирования установлено значение «.tran 1u 100m». Выход (V(out) построен зависимости от времени) действительно показывает ожидаемое поведение, возрастая от 0 до 5 В, и показано на рис.4.

Рис. 4

Второй пример — биполярный усилитель. Снова используем символы из библиотеки pspice, за исключением транзистора из библиотеки Transistor_BJT. Два резистора R1, R2 определяют ток базы, R3 — нагрузочный резистор постоянного тока. RLoad требуется, потому что ngspice не будет принять конденсатор, который не имеет соединения постоянного тока на каждой клемме.

Даже при сборе всех данных как показано, схема не завершена. Транзистор Q1 потребует больше данных для моделирования. биполярный модель транзистора (уравнения для расчета токов как функции напряжений на клеммах) жестко закодирован в ngspice. Однако эта модель требует параметров модели для выполнения этих расчетов. зависит от выбранного транзистора (BC546). Эти данные не поставляются вместе с KiCad. Они зависят от производителя устройства и могут быть получены с их веб-сайтов или с других сайтов. (здесь, например, из параметров модели BC546, смотрите также коллекцию моделей специй от нашего страницу параметров модели для многих других). Параметры модели BC546: организованы в одну строку, начинающуюся с «.model BC546 npn (…)». Помещать эту строку в файл BC546.lib. Дважды щелкните символ BC546. «Свойства символа» всплывает окно. Выберите «Редактировать модель специй». В «Редакторе модели Spice» выберите «Выбрать файл». и найдите BC546.lib. Его содержимое (строка .model) отобразится в окне (рис. 5).

Рис. 5

На рис. 6 показана схема, готовая для моделирования переменного тока, на рис. 7 — для моделирования переходных процессов.

Рис. 6

Рис. 7

Вот используется источник синусоидального напряжения (см. руководство ngspice, глава 4.1.2). На графике представлены выходные значения V(out) и V(in) в зависимости от времени (см. рис. 8).

Рис. 8

Этот усилитель сильно зависит от правильного выбора значения R1. Окно Spice Simulator предлагает кнопку «Настроить». Выберите «Настроить», нажмите на R1 в цепи. диаграмму, а затем вернитесь в окно Spice Simulator. Ползунок открылся для изменения R1. После каждого изменения симуляция продолжается немедленно, текущие значения V(in) и V(out) показано.

Слева идеальная ситуация с R1=68k. Посередине с R1=78k, усиление значительно уменьшилось (следите за шкалой y и соотношением V(out) и V(in)). На справа при R1=63k сигнал сильно искажается и усиление снова уменьшается.

В следующем примере представлен простой инвертирующий усилитель с использованием операционного усилителя. Схема показана на рис. 9. LF356 выбран случайно. Соотношение резисторов R2/R1 = 100 устанавливает усиление. Имеются симметричные блоки питания, а также источник входного напряжения.

Рис. 12

Модель операционных усилителей, поставляемых с ngspice, отсутствует. KiCad тоже нет поставить такую ​​модель. Поэтому вам нужно искать в Интернете модель производителя устройства, например. из Веб-страницы TI как LF356.mod. Исходники для моделей собираются у нас Страница модели ngspice. Сохраните файл модели LF356.mod в каталог по вашему выбору, например, /sim/mymodels/LF356.mod.

Если вы посмотрите на LF356.mod, там вы найдете схему, собранную в подсхему (.subckt линия) с названием LF356 и 5 соединительными узлами. Очевидно, что два узла компенсации смещения 1 и 5 символа KiCad не обслуживаются этой моделью.

Как добавить модель ngspice? Дважды щелкните символ LF356 на схеме. Откроется окно «Свойства символа». Вызовите «Редактировать модель Spice». Выберите «Модель» -> «Выбор файла». Введите путь/имя LF356.mod (например, /sim/mymodels/LF356.mod). Выберите «Тип» -> «Подсхема». Описание подсхемы отображается в окне.

Необходимо решить еще одну проблему: нумерация контактов в описании модели не соответствуют нумерации выводов KiCad LF356 с обозначением U1. Пары символ/вывод KiCad: (вх)-/2 (вх)+/3 В+/7 В-/4 вых/6. Модель требует последовательности

  • неинвертирующий вход
  • инвертирующий вход
  • положительный источник питания
  • отрицательный источник питания
  • выход

, как описано в файле модели. Кикад контакты должны быть заказаны в этой последовательности, то есть 3 2 7 4 6, и введены в Поле «Альтернативная последовательность узлов». Не забудьте установить флажок, иначе поле запись отбрасывается. На рис. 13 показаны окончательные настройки.

Рис. 13

Настройка имитации ‘.dc Vin -0,5 0,5 0,1’ приводит к линейному Vout с отрицательным наклоном -100. настройка моделирования «.ac dec 10 100 1000k» приводит к ухудшению усиления с увеличение частоты.

Три уровня цифровой симуляции доступны только в ngspice два из них на данный момент поддерживаются интерфейсом KiCAD-ngspice.

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

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

ngspice также предоставляет настоящую возможность цифрового моделирования событий, самый быстрый метод из трех, опять же с применением XSPICE. Это пока не поддерживается KiCad.

Даже если не очень продвинутый и полный, давайте начнем что-нибудь с помощью поведенческое моделирование. Символ библиотека (см. Сервис->Редактор библиотеки символов) — 74xx, и мы выбираем вариант 74HC. Теперь нам нужно соответствующую библиотеку ngspice. Нет доступных, поэтому я начал поведенческую библиотеку 74HCng.lib , получены из библиотеки LTSPICE, заменив их устройства A логикой XSPICE. Каждый гейт 74хх имеет аналог интерфейс ввода/вывода, окружающий внутреннюю логику, основанную на событиях. Только очень мало ворот прямо сейчас, просто для тестирования основ.

Рис. 14

Два источника входного сигнала (источники напряжения, излучающие подходящие импульсы), три затвора U1A U2A U3B, составляющие полусумматор, и два затвора балластных U4A, U5A. Тогда мы иметь пять линий электропередач (VCC и земля каждая) для каждых ворот. Два получить эту схему, применяется та же процедура, что и в предыдущей главе: получить символы из библиотеки «pspice» и «74xx». Нарисуйте проводку. Добавьте подходящую форму импульса в VSOURCE. Вы можете обратиться к руководству ngspice, глава 4.1.1 для объяснения. Дважды щелкните по каждому чтобы открыть окно «Свойства символа», выберите «Редактировать модель специй», введите имя и путь библиотеки моделирования, модель ворот (например, 74HC00) и «подсхема типа». Не забудьте установить правильную последовательность контактов, например. 1 2 3 14 7 для U2 и U4 или 4 5 6 14 7 для U3. Добавьте команду моделирования. Нам нужна симуляция переходного процесса, поэтому мы вводим «.tran 1n 4u». в текстовое поле.

Сразу бросаются в глаза некоторые особенности. Два грузовых балласта требуются гейты, в противном случае выход предыдущего гейта называется «NC001», т.е. не подключен и не могут быть использованы (например, нанесены на график), даже если вы дали им тег. Однако 74HC00 представляет собой вентиль И-НЕ с двумя входами * 4. мы определили U2 … U5, то есть 4 разных блока (IC). Обычно вы бы проектировали с одна ИС, предлагающая U2A … U2D и U2E (мощность). Затем Eeschema запрашивает модель ворот NAND. с 4*3+2 контакта. Наша имитационная модель в 74HCng.lib имеет только 3 + 2 контакта (in1 in2 out vcc gnd). Это только начало, но для получения подходящих моделей устройств требуется еще несколько действий. Для аналога многоблочные ИС, см. главу «Использование двойного операционного усилителя».

Таким образом, цифровое моделирование все же потребует некоторых усилий, чтобы стать действительно полезным в KiCad/ngspice.

Интерфейс Eeschema для ngspice в настоящее время все еще довольно ограничен. Поэтому может быть хорошей идеей использовать Eeschema для захвата схемы (выполнить проектирование схемы) и создать список соединений ngspice, но затем использовать текущий (или ночной) стандартный исполняемый файл ngspice для моделирования.

Пошаговый подход для Windows 10 гласит:

Рис. 15 Схема драйвера лазера, окно Netlist Generator, график после моделирования

Вуаля: ngspice.exe имитирует файл laser_driver.cir и отображает полученный результат.

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

  • Команда симулятора: xterm -e ngspice
  • , если доступен xterm. xterm можно заменить на стандартное терминальное приложение Linux. К сожалению, есть не (пока) хорошее решение для macOS.

    Если вы замените текстовое поле в приведенном выше примере следующим скриптом

    .тран 10р 150н
    .контроль
    pre_set noinit
    установить управление
    если $?общий режим
      версия
      время использования
    еще
      бег
      хитрость
      установить тип файла = ascii
      напишите c:\Kicad\laser.out "/in" "/out"
      сюжет "/в" "/вне"
    конец
    .endc
    
     

    вы можете выбрать внутренний симулятор ngspice (Eeschema—>Tools—>Simulator—>Run Simulation) или внешний симулятор ngspice (Eeschema—>Инструменты—>Создать файл списка соединений…—>Spice—>Запустить симулятор). Информацию о командах, используемых в сценарии, см. в главе 17.5 Руководство по ngspice.

    Как уже было показано в главе 5, символы KiCad и файлы моделей Spice не подходят, если устройства состоят из нескольких частей. Здесь в качестве примера мы хотим настроить полосовой фильтр, добавляющий два фильтра Саллена-Ки. Такой фильтр нижних частот распространяется с KiCad в папке «KiCad\share\kicad\demos\simulation\sallen_key». полоса пропускания потребуется два фильтра Sallen-Key последовательно, на фильтре верхних частот и один фильтр нижних частот с подходящие частоты среза.

    Для проектирования фильтра нам потребуются два операционных усилителя. Разумно выбрать двойной операционный усилитель, т.е. TI TL072, который содержит два усилителя в 8-контактном корпусе. Начните проектирование в Eeschema, выбрав TL072 из библиотека Amplifier_Operational. Поместите все три устройства (UnitA в качестве усилителя 1, UnitB в качестве усилителя 2 и UnitC в качестве контактов питания). Выберите пассивы, соединения, заземление, входное напряжение и источник питания, как показано на рис. 16.

    Рис. 16 Полосовой фильтр со сдвоенным операционным усилителем

    Вам необходимо добавить модель spice для операционного усилителя. Скачать модель TL072.301 с веб-страниц TI. К сожалению, модель имеет только 5 контактов. (in+, in-, v+, v- и out). Однако согласно техпаспорту TL072 и вашему схема вам понадобится 8 контактов (1in+, 1in-, v+, v-, 1out, 2in+, 2in- и 2out) и нужно дважды вызвать модель операционного усилителя, потому что у нас есть два усилители в нашей схеме. Таким образом, вы не можете использовать модель TI TL072.301 напрямую, но необходимо преобразовать ее в версию модели с 2 операционными усилителями, поскольку TL072 содержит два операционных усилителя. Следующая последовательность кода демонстрирует, как это выполняется подсхемой ngspice. Поместите код в файл TL072-dual.lib, сохраните его в той же папке, что и TL072.301.

    * Модель ngspice с двумя операционными усилителями
    * имя файла: TL072-dual.lib
    .subckt TL072c 1out 1in- 1in+ vcc- 2in+ 2in- 2out vcc+
    .включить TL072.301
    XU1A 1вх+ 1вх- vcc+ vcc- 1выход TL072
    XU1B 2 входа+ 2 входа- vcc+ vcc- 2 выхода TL072
    .концы
    
     

    Строка .subckt содержит 8 узлов подсхемы, следующих после токен «.subckt» и имя подсхемы. Последовательность этих узлов (1out 1in- 1in+ vcc- 2in+ 2in- 2out vcc+) выбран так, чтобы он соответствовал TL072 Последовательность номеров контактов (1 2 3 4 5 6 7 8), как указано в техническом паспорте. Строка .include включает модель TI. Строки XU1A и XU1B являются экземплярами два усилителя. Последовательность их узлов определяется моделью (см. файл TL072.301). Усилитель 1 использует 1 выход 1 вход- 1 вход+, усилитель 2 использует 2 входа+ 2 входа- 2 выхода, контакты питания общие для оба усилителя. На самом деле подсхема передает номера выводов 1-8 через узлы на строку .subckt к нужным узлам модели.

    Вам нужно будет добавить TL072-dual.lib в качестве модели подсхемы к каждому блоку усилителя. IC (теперь они называются U1A, U1B и U1C на схеме схемы Eeschma). Это делается двойным Щелкнув по каждой единице, а затем выбрав кнопку «Редактировать модель Spice…». Eeschema автоматически создает экземпляр полного TL072 с его узлами 1–8. Таким образом, при редактировании spice-модели в eeschema не требуется «альтернативной последовательности узлов». Если все сделано, вы готовы к симуляции. Результат моделирования переменного тока узла /bandpass (амплитуда в дБ и фаза в градусах в зависимости от частоты) представлена ​​на рис. 17.

    Рис. 17 Выход моделирования полосового фильтра переменного тока

    Кстати: Исходный файл модели TL072.301 от TI содержит непечатаемый символ в последней строке. В то время как ngspice для Windows не осторожно, ngspice для Linux наткнется на это. Просто удалите этого персонажа. Исправление сделать это автоматически было совершено.

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

    Ссылки на примеры Eeschema/ngspice:

    Собрано 17 примеров проектов (KiCad 6.0.2, ngspice-36) здесь (больше будет).

    Ссылки на руководства Eeschema/ngspice:

    • Официальное руководство Eeschema/ngspice для версии 5.1.
    • KiCad Советы и рекомендации / Моделирование.

    Ниже приведены некоторые последние вводные видео для KiCad/ngspice:

    • Вступительное видео к главе 2 (на немецком языке).

    alexxlab

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

    Ваш адрес email не будет опубликован. Обязательные поля помечены *