Анализ схем и OpenSource
Перед тем как травить печатку или собирать макетную плату можно протестировать и погонять схему в нужных условиях с помощью програмного обеспечения. Также при отсутствии осцилографа можно анализировать и проектировать схемы имея все необходимые данные для анализа. Часто промышленные решения неоправданно дороги для любителей или маленьких компаний, поэтому речь пойдет об открытом програмном обеспечении которое позволяет это делатьв 60 годах в странах переживавших подъем микроэлектронной промышленности встала проблема анализа и симулирования интегральных микросхем перед их реализацией, поскольку ошибки, многократные переделки и изготовления фотолиграфических шаблонов очень сильно сказывались на стоимости готового продукта. С этими и другими мыслями в университете Berkley в начале 70х выпустили первые версии ПО - SPICE - которое в последствии они открыли и распространяли по номинальной цене (стоимость носителя). Это привело к тому что данный формат стал дефакто стандартом в промышленности и на базе него сегодня существует множество производных ПО которые его используют.
Что позволяет делать этот софт? Если вы работали с EDA системами (проектирование печатных плат) то многие термины будут вам знакомы. Netlist - топология схемы в которой указаны элементы и связи между ними :
например
vcc 1 0 DC 5V
r1 1 2 100KOhm
c1 2 0 100n
простейший netlist в формате spice описывает rc цепь с резистором 100ком. конденсатором 100 нанофарад подключенных последовательно и источник напряжения 5в подключенный через узел 1 к резистору и через узел 0 (что есть земля) к коненсатору.
этот формат имеет свой синтаксис и может описывать разные элементы в том числе и сложные (интегральные схемы, операционные усилители и т.д.). Также температуры, размеры и другие параметры которые влияют на инженерные расчеты при анализе схем.
Когда у вас есть схема в таком формате то вы можете загнать ее в engine либо ngspice или gnucap - который спарсит его, вы там укажете например - хочу посмотреть графики переходных процессов в точках r1 & c1, с 0 по 400useconds при шаге 1ns, эта программа вам расчитает на каждые шаг все значения учитывая множество факторов, поскольку программа используется как промышленный стандарт и её пользуется активно индустрия - например Texas Instruments, STMicroelectronics и другие, а также учитывая тот факт что ей уже около полувека она несомненно вызывает уважение и доверие. Но несмотря на это вы должны понимать что исходные условия для задачи анализа должны быть подобраны оптимально иначе результаты будут отличаться от объективных.
Это программа генерирует соответсвенно текстовый файл, его можно использовать и построить график с помощью других софтин например gtkwave.
приведу свой пример для использования - у меня был микроконтроллер я генерировал с помощью PWM аудиосигнал из wav файла. Я хотел посмотреть на качество сигнала но у меня не было под рукой осциллографа - что делать? Можно с помощью этой программы имитировать данное поведение:
поскольку скважность шима меняется (для теста можно просто по синусу) и обычный sin AC сигнал нам не подойдет - там можно использовать произвольный сигнал который можно задать например в формате PWL (указываете время и значения кривой точками, он интерполирует соседние), можно расписать одну фазу - сделать повтор и получим повторяющийся сигнал или с помощью любого скриптового языка в цикле нагенерировать свой длинный и сложный сигнал, в котором будет доступна не просто математика - но и логические операторы (if (time > 0.5) {} else {} и т.д.)
дальше мы выгружаем результат в волнопросмоторщик и смотрим как напряжение ведет себя на всем промежутке времени - оч. удобно.
А теперь немного про софт который может быть полезен:
есть несколько SchemeCapture программ (для составления схем в графическом интерфейсе) :
gschem (часть gEDA, kiCAD - OpenSource набор утилит).
По сути если вам нужен анализ схему можно и не указывать а в блокноте написать netlist файл и этого будет достаточно, но если лень учить синтаксис или вам больше нравится GUI или вы планируете дальше делать печатку и т.д. то можете составить схему *.sch
и с помощью gnetlist (далее я буду говорить про утилиты gEDA - это опенсурс набор програм для создания печаток и их анализа) автоматически сконверить в netlist.
Я не привожу подробных примеров - потомучто информации в интернете много, но если вы не знали о таком способе анализа то возможно вам будет это интересно.
Эти программы существуют как набор утилит и их удобно использовать чтобы построить гибкий интерфейс для работы с печатками и их анализом - также там есть gerber viewer, pcb editor, разные вспомогательные утилиты.
Сам я начал пользоваться после CADSoft Eagle поскольку нужен был анализатор, а у этого софта свой формат схем и netlist'ов, хотя есть конвертеры зачем городить костыли когда можно пользоваться софтом который работает с базовыми стандартами. Но у каждого свои предпочтения.