Использование моделей Spice в Proteus

  Понадобилось смакетировать схему в Proteus 7.10 с применением LDO стабилизатора AMS1117-5. Обнаружил, что данной модели нет, лучшее что может предложить мой Proteus, это 78L05. Непорядок, надо исправлять, т.е. попытаться добавить нужную модель в симулятор.
  В симуляторе Proteus могут использоваться 3 типа моделей — схематическая, Spice и DLL. Для первой на дочернем листе надо собрать схему из моделируемых примитивов Proteus, впоследствии преобразовав этот лист в файл *.MDF и подключив его к графическому примитиву. Proteus предоставляет средства для создания такого типа моделей. Для второй надо найти и скачать из инета уже созданную умными головами модель Spice для нужного компонента (в ASCII формате) и опять же подключить к графическому примитиву. Средств для создания такого типа моделей Proteus не продоставляет. Самостоятельное изготовление DLL моделей доступно только программистам, тем более и соответствующий SDK для них (моделей) Labcenter закрыл. Естественно и никаких средств для создания моделей такого типа Proteus не продоставляет.
  В работе с Proteus рускоязычным пользователям может помочь замечательный цикл статей "FAQ (ЧаВО) по PROTEUS для начинающих и не только" от А. Христианчика (ник Halex07). На сайте Kazus.ru они доступны в разрозненном виде в порядке изложения. Для удобства Halex07 собрал первые 8 глав в 4 части (вместе с кодом и примерами) и дал на них ссылки для скачивания. Это же самое FAQ также доступно в формате Proteus.pdf (без кода и примеров). Также этот FAQ доступен в сборнике «РадиоЕжегодник» №24, 2013, «Proteus по-русски». На сайте Kazus.ru существует и незаконченная 5 часть FAQ, но она только на форуме в порядке изложения. Далее для краткости ссылки на FAQ будут именоваться как (FAQ_3.11, т.е. глава 3.11).
  Статья представляет собой вольный перевод раздела "Using Spice Models" хелпа Proteus.

Примечание от Labcenter Electronics

  Многие из основных производителей компонентов теперь предоставляют модели симуляторов SPICE для своих продуктов. Поскольку ProSpice основан на исходном коде Berkeley Spice, у вас должно быть относительно мало проблем с использованием таких моделей (FAQ_3.1). Однако перед попыткой использовать сторонние модели необходимо решить ряд проблем:
  • Модель SPICE представляет собой файл списка соединений ASCII. Он не содержит никакой графической информации и поэтому не может быть размещен непосредственно на схеме. Это означает, что вам понадобится часть библиотеки ISIS для соответствующего устройства, а также модель Spice. К сожалению, для схемных частей библиотеки нет стандартного формата файлов, поэтому вам обычно нужно сделать это самостоятельно.
  • В списке соединений Spice модель вызывается, обращаясь к подсхеме с использованием X-карты. Связывание узлов схемы с узлами модели определяется порядком, в котором узлы схемы задаются на карте X. Например

    XU1 46 43 32

  • означает, что узел 46 схемы соединен с узлом 1 модели. Аналогично узел 46 связывается с узлом 2, а узел 32 привязывается к узлу 3. К сожалению, эта схема означает, что номерные узлы модели не именуются. Хуже того, между номерами модельных узлов и номерами контактов физического устройства редко существует привязка — во-первых, физическая модель может иметь NC (не подключенные) контакты, и они вряд ли когда-либо учитываются при нумерации узлов модели Spice. Могут также быть серьезные осложнения с помощью многоэлементного устройства, такого как TL074 — реализует ли модель один операционный усилитель или четыре?   На практике это означает, что необходимо указать какую-либо явную перекрестную ссылку, чтобы сообщить ISIS, какой номер узла модели Spice использовать для каждого вывода на устройстве, поскольку ни имя буфера ISIS, ни номер пина не могут использоваться по причинам, указанным выше, поэтому было введено специальное свойство устройства SPICEPINS, чтобы сделать это сопряжение максимально безболезненным.
  • Существует много вариантов Spice. Общий предок — Spice 2, и большинство моделей, похоже, написаны в этом стандарте. Тем не менее, значительное число производителей заявляют, что их модели совместимы с PSpice™, запатентованной версией Spice 2, которая была широко разработана за пределами оригинального стандарта. Хотя Spice3F5 имеет множество функций, не поддерживаемых PSpice™, PSpice™ имеет некоторые примитивные типы, которые отличаются друг от друга, а также использует другой синтаксис для некоторых новых вещей, которые были добавлены в оба продукта. Разумеется, подразумевается, что модели, специально написанные для PSpice™, могут не работать с ProSpice.

  Короче говоря, если сторонняя модель работает неправильно, первое, что нужно проверить, это то, что она была написана для SPICE 2 или SPICE 3.

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



данная модель в текущем виде для Proteus непригодна. Возможно знатоки Spice и могут тут что-то сделать, я просто считаю что мне не повезло. Или ищу другую, или пытаюсь сделать схематическую модель.
  После небольшого поиска в инете я нашел модель AMS1117-5 на сайте "ON Semiconductor", архив NCP1117 PSPICE MODELS.ZIP. Нам нужен ASCII файл NCP1117 Model Library.LIB. В Proteus можно создавать свои библиотеки из менеджера библиотек с расширением *.LIB, но в этих библиотеках хранятся только графические модели с прописанными свойствами, схематические модели хранятся в библиотеках *.LML (Lisa Model Library), модели Spice в библиотеках *.SML (Spice Model Library). Поэтому совпадение расширений тут случайное, файл со Spice моделями может иметь расширение *.TXT, *.CIR, *.LIB, *.MOD и т.д., нам необходимо чтобы модели были представлены в ASCII виде.
  В файле NCP1117 Model Library.LIB находятся 9 моделей NCP1117 — регулируемая (ADJ) и 8 моделей на фиксированные напряжения 1.5V, 1.8V, 2.0V, 2.5V, 2.85V, 3.3V, 5.0V, 12V. Файл в ASCII коде, можно начинать делать Spice модели для Proteus.

Шаг 0, создание графической не симулируемой модели

  Графическая модель нужна всем типам симулируемых моделей для связи схематической, Spice или DLL моделей с листом проекта. Поэтому она и будет создана в первую очередь. В FAQ это очень подробно рассмотрено в 4 главе. Я же пробегусь очень коротко.
  Графическую модель можно нарисовать средствами Proteus (2D Graphics), а можно подобрать из имеющейся. Я не художник и обычно беру подходящие из уже имеющихся. Для модели AMS1117-5 я установил на пустой лист модель 78L05 и стукнул ее молотком (шучу, применил операцию "Decompose" из контекстного меню). Здесь важно проверить по даташиту нумерацию пинов требуемой, например я поменял нумерацию GND и VO по даташиту, а также в свойствах GND поставил галку «Rotate Pin Name?» чтобы развернуть надпись горизонтально.



  Затем при нажатой левой кнопке провел по диагонали модели, чтобы выделить все (станет красным) и выбрал из контекстного меню операцию "Make Device". На первой вкладке изменил название модели на NCP1117_50:



  Следующую я просто пролистываю, оставив корпус от 78L05, сейчас корпус модели меня не интересует, модель мне нужна только для симуляции. Если кто-то использует Proteus для рисования печатных плат, может ввести здесь и нужный корпус, впрочем это можно сделать и позднее, в любое удобное время:



  На третьей странице увидим 2 свойства "PACKAGE" и "MODFILE". Про корпус я уже говорил страницей ранее, если он вам не нужен, здесь можно его удалить (кнопка "Delete"). А свойство MODFILE нужно удалить обязательно, так подключаются схематические модели *.MDF, поэтому Spice модели оно не нужно:



  Четвертую страницу пролистываем, даташит и хелп для модели в ее свойствах нас сейчас не интересуют:



  И последняя, пятая страница, представление компонента в селекторе обьектов. Категорию и субкатегорию не меняем, в описании или правим на более соответствующее создаваемой модели, или название копируем из даташита. Производителя я тоже не стал указывать, регуляторы 1117 выпускаются многими фирмами. Тем более модель у меня для Advanced Monolithic Systems, а модель Spice от ON Semiconductor, да и это ни на что не влияет. Выбор библиотеки справа вверху скорее всего у вас будет ограничен пользовательской USERDVC и теми которые вы сами создали (если создавали):



  После нажатия "OK", графическая модель будет создана в указанной библиотеке и доступна через инспектор обьектов. Т.к. это только графическая модель, Proteus предупреждает об этом "No Simulator Model".



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



  что естественно, ведь Spice модель мы еще не подключили.

Сейчас и будем этим заниматься, причем 3 разными способами:
  1. каждая модель в своем отдельном ASCII файле *.MOD;
  2. все модели в общем библиотечном ASCII файле *.LIB (расширение LIB дано условно, просто указывает что это библиотека);
  3. все модели в общем библиотечном бинарном файле *.SML;

Как присоединить модель Spice к схеме, способ 1, Spice модель в отдельном ASCII файле *.MOD

  Создать *.MOD файл для нашей модели очень просто, создайте рабочую папку для модели, в ней из контекстного меню создайте пустой текстовый файл, назвав его ncp1117_50.MOD. Затем найдите в файле NCP1117 Model Library.LIB 5-вольтовую Spice модель 1117, она называется ncp1117_50-x, выделите весь текст от .SUBCKT до .ENDS и скопируйте его в файл ncp1117_50.MOD.
Собственно и все, осталось подключить Spice модель к графической. Создаем в той-же папке что и ncp1117_50.MOD файл дизайна Proteus Test_MOD.DSN. Я обычно создаю пустой текстовый файл с таким расширением. При запуске его на исполнение запускается Proteus и ругнувшись на неправильный формат создает правильный пустой проект с таким именем, остается его сохранить. Находим в инспекторе обьектов нашу "No Simulator Model" графическую модель и помещаем на лист. Из контекстного меню снова запускаем "Make Device", на первом листе меняем название на NCP1117_50_MOD (т.к. я собираюсь привести 3 примера подключения PSpice модели, необходимо чтобы они имели различные имена, иначе каждая последующая будет заменять предыдущую). Потом сразу пролистываем до третьего листа. Чтобы связать графическую модель с *.MOD файлом мы должны добавить 4 свойства.
  • PRIMITIVE
  • SPICEFILE
  • SPICEMODEL
  • SPICEPINS
  Все они заранее предопределены и выбираются из выпадающего списка при нажатии кнопки "NEW". Порядок создания свойств может иметь значение если свойства видимы в свойствах компонента. За видимость свойства отвечает графа «Type». «Normal» — видимое и редактируемое свойство, «Read only» — видимое но не редактируемое, «Hidden» — скрытое. Я установил последнее. В предопределенных свойствах обычно надо заполнить только одну строку — "Default Value".



  Для свойства "PRIMITIVE" надо будет ввести "ANALOGUE,SUBCKT" (без пробела). В хелпе Proteus есть требование чтобы буквы были в нижнем регистре (analogue,subckt). Это или ошибка, или старое требование, все прекрасно работает в верхнем регистре:



  Для свойства "SPICEFILE" это будет название файла ncp1117_50.MOD, содержащего нашу Spice модель ncp1117_50-x. Сначала Proteus ищет этот файл в папке MODELS своего каталога, если не находит, ищет в текущем рабочем каталоге. Если модель не найдена ни в одном из этих мест, то симуляция аварийно прерывается:



  Для свойства "SPICEMODEL" это будет название нашей Spice модели в файле ncp1117_50.MOD.



  Свойство "SPICEPINS" представляет собой список имен пинов, которые находятся на графической модели в ISIS, но в том порядке, в котором они находятся в модели Spice.
Обычно в модели Spice есть и расшифровка номеров пинов по назначению.
.SUBCKT ncp1117_50-x 3 1 2
*External Node Designations
*node 1: VREG (OUTPUT)
*node 2: Ground (Common)
*node 3: Line Voltage
  Первым пином в Spice модели идет 3 (Line Voltage, вход, на схеме ISIS это VI), затем 1 (OUTPUT, выход, на схеме ISIS это VO), затем 2 (Ground, общий, на схеме ISIS это GND). Таким образом в значении свойства "SPICEPINS" мы должны записать VI,VO,GND. Пробелы тут допустимы, но не желательны.



  Пройдя "Make Device" до конца после "OK" вы получите рабочую модель. Я не зря назвал модель NCP1117_50_MOD, теперь новая рабочая модель не заместила старую графическую NCP1117_50 и они обе лежат в библиотеке. Вернее там лежат 9 рабочих моделей с подключенными *.MOD файлами (в свойствах), которые я сделал аналогично, и одна не симулируемая модель, она нам пригодится, еще 2 способа описывать.
  На этом можно закончить описание первого способа создания Spice компонента. Именно этот способ подробно описан в (FAQ_4.7). Недостаток очевиден, для работы компонента необходим *.MOD файл со Space моделью. Очевидно, что множество небольших файлов с учетом размера кластера обычно занимают больше места на жестком диске чем один библиотечный. Если Proteus не найдет Spice файл, выскочит ошибка:



Как присоединить модель Spice к схеме, способ 2, Spice модели в общем библиотечном ASCII файле *.LIB

  Начинаем точно так же, создаем отдельную рабочую папку, кладем в нее библиотечный файл NCP1117 Model Library.LIB. Как я уже говорил расширение файла тут ни на что не влияет, главное чтобы Spice модели были в ASCII формате. Поэтому для сокращения длины имени я переименовал его в NCP1117.PML (типа Proteus Model Library, чем плохо?). Так-же создаем файл дизайна Test_LIB.DSN, помещаем на него графическую не симулируемую модель NCP1117_50, из контекстного меню снова запускаем "Make Device", на первом листе меняем название на NCP1117_50_LIB, переходим на третий лист.
  Для свойств "PRIMITIVE", "SPICEMODEL", "SPICEPINS" действия полностью аналогичны ранее описанным при подключении *.MOD файла.
  Для свойства "SPICEFILE" это будет название файла NCP1117.PML, содержащего нашу Spice модель ncp1117_50-x.



  Для моделей на основе библиотек ASCII, программисты Labcenter предусмотрели вариант подключения Spice моделей без свойства "SPICEFILE". Название файла библиотеки при этом вводится через запятую в свойство "SPICEMODEL":



  Не знаю зачем, по мне так неудобнее, в окошко обычно не влезает, но если кому понравится, пользуйтесь таким способом.
  На этом можно закончить со способом подключения Spice библиотек в ASCII виде. Достоинство здесь в том что данная библиотека содержит 9 Spice моделей, т.е. заменяет 9 *.MOD файлов. Недостаток логически вытекает из этого, поиск нужной модели в неструктурированном ASCII файле всегда линейный и может занять довольно много времени. На данной библиотеке это незаметно, слишком мала, но если моделей будет под сотню, медленный поиск начнет сказываться.
  Если Proteus при запуске симуляции не найдет библиотеку, выскочит ошибка:



Как присоединить модель Spice к схеме, способ 3, Spice модели в общем библиотечном бинарном файле *.SML

  Чтобы сохранить удобство размещения множества моделей в библиотеке и быстрый поиск в ней, и был придуман формат бинарного файла *.SML (Space Model Library). *.SML файл собирается из отдельных файлов *.MOD входящей в состав Proteus утилитой командной строки PutSpice.
  Начинаем как и предыдущих случаях, создаем отдельную рабочую папку, копируем в нее 9 файлов *.MOD из первого способа. Туда же копируем PUTSPICE.EXE из каталога BIN Proteus. Теперь из этого каталога запускаем командное окно Windows. Я это делаю из TotalComander, установив курсор внутри нужной папки в нижнем окне командной строки набираю "cmd" и жму Enter. Командное окно Windows открывается в нужной папке, теперь нужно ввести команду "putspice -L=NCP1117 -C=9 ncp1117_adj ncp1117_15 ncp1117_18 ncp1117_20.MOD ncp1117_25 ncp1117_285 ncp1117_33 ncp1117_50 ncp1117_120". Этим мы создаем библиотеку NCP1117.SML на 9 элементов и помещаем в нее наши *.MOD файлы.



  По выводу в окно можно видеть, что программа обработала все 9 *.MOD файлов, нашла и добавила в создаваемую библиотеку 9 Spice моделей. Закрываем окно, убеждаемся что файл NCP1117.SML в нашей папке создан. После этого можно удалить *.MOD файлы (строго говоря их могла бы удалить сама PutSpice, ключ -D).
  Так же создаем файл дизайна Test_SML.DSN, помещаем на него графическую не симулируемую модель NCP1117_50, из контекстного меню снова запускаем "Make Device", на первом листе меняем название на NCP1117_50_SML, переходим на третий лист.
  Для свойств "PRIMITIVE", "SPICEMODEL", "SPICEPINS" действия полностью аналогичны выполняемым при подключении *.MOD файла.
  Свойство "SPICEFILE" заменяется на свойство "SPICELIB", в котором и надо указать название файла библиотеки NCP1117.SML, содержащего нашу Spice модель ncp1117_50-x.



Если Proteus при запуске симуляции не найдет библиотеку, выскочит ошибка:



Примечание от Labcenter Electronics, обработка ошибок моделирования модели

  Модели подсхем сильно различаются по сложности и дизайну. В результате некоторые модели легче имитировать, чем другие. Как правило, если PROSPICE не может имитировать вашу схему с помощью переведенной модели, то и многое другое не может.
  Мы часто находили, что проблемы сильно ухудшаются из-за плохой схемы. Если у вас есть примечание к приложению для устройства, сравните его с вашей схемой, чтобы убедиться, что, например, вы допускаете достаточного входного тока для успешного смещения входного каскада. Дизайнер модели почти наверняка сделал модель работы с схемами, аналогичными тем, что указаны в примечании к приложению, а не в общем случае.
  ProSpice можно сделать более стабильным (но менее точным), увеличив значение GMIN. По умолчанию используется значение 1E-14, поэтому стоит попробовать 1E-13 и 1E-12. При значениях, подобных 1E-6, вполне вероятно, что любые результаты моделирования не будут иметь никакого отношения к реальности вообще, поэтому выберите самое низкое значение, которое вы можете, и при котором схема моделируется еще более менее достоверно.

Примечание от меня

  Модели Spice для регуляторов NCP1117 работают стабильно при значении GMIN по умолчанию. Но только если пин GND модели подключен к земляному терминалу.



Если поместить на схему никуда не подлюченную модель, при запуске симуляции получите ошибку:



  Причем это явно связано со Space моделью. Я выдрал из версии Proteus 8.4 Spice модели LDO регуляторов LM2940T-5V и LM2940T-10V подключил через *.MOD к своему Proteus 7.10 и увидел такую же точно ошибку без подключения пина GND.

Приложены (примеры для Proteus 7 в архиве):

  • Step0 — папка с файлами NCP1117.LIB и NCP1117.IDX. Это библиотека с графическими моделями описанных компонентов. Всего компонентов 28 — одна не симулируемая модель NCP1117_50, и по девять моделей (регулируемая и фиксированные 1.5V, 1.8V, 2.0V, 2.5V, 2.85V, 3.3V, 5.0V, 12V) с прикрепленными разными способами Spice моделями (*_MOD, *_LIB, *_SML). Второй файл индексный для первого, для быстрого поиска. Особо подчеркну, в этой библиотеке только графические модели компонентов со свойствами, исполняемого кода в ней нет.
  • Step1_MOD — папка с файлами Test_MOD.DSN и отдельные *.MOD файлы для Spice моделей.
  • Step2_LIB — папка с файлами Test_LIB.DSN и NCP1117.PML ASCII библиотеки Spice моделей.
  • Step3_SML — папка с файлами Test_SML.DSN и NCP1117.SML бинарной библиотеки Spice моделей.

Заключение

  Все приложенные примеры учебные, как практически добавить в свой Proteus указанные модели LDO регуляторов? Для всех 3 способов подключения Spice моделей это делается одинаково. В зависимости от способа откройте файл дизайна Test_XXX.DSN на котором есть все 9 моделей нужного типа. По каждой модели правой кнопкой, "Make Device". На первой странице из имени модели убираем преффикс (_MOD, _LIB, _SML). Я добавил их только для того, чтобы модели с разным подключением смогли мирно соседствовать в одной библиотеке NCP1117.LIB, и не затирать друг друга. Остальные 4 страницы проходим без изменений. После нажатия "OK" модель добавится вашу библиотеку USERDVC.LIB и индексный файл USERDVC.IDX и появится в инспекторе обьектов. Проделаем это для всех 9 моделей. После этого в папку MODELS вашего Proteus необходимо добавить код Spice моделей. Это или отдельные файлы *.MOD, или библиотеки NCP1117.PML или NCP1117.SML. После добавления в библиотеку USERDVC Proteus необходимо перезапустить, т.к. он сканирует наличие и содержание библиотек при запуске.

  • +5
  • 10 ноября 2018, 12:22
  • anakost
  • 2
Файлы в топике: NCP1117.ZIP, LM2940T.ZIP

Комментарии (1)

RSS свернуть / развернуть
Прикрепил к статье и архив с Spice моделями регуляторов LM2940T-5V и LM2940T-10V из Proteus 8.4. Может кому понадобится.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.