Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 26.03.2010, 20:08  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только.

4.16. Модели полевых транзисторов различных типов в ISIS а также немного про IGBT.
Все модели примитивов полевых транзисторов в ISIS можно разделить на три группы (Рис. 106).
JFET – полевые транзисторы с управляющим PN-переходом.
MESFET – арсенид-галиевые полевые транзисторы. Обратите внимание, что в другой литературе по SPICE они носят название GASFET, а также на то, что в ISIS присутствует модель PMESFET не существующая в действительности.
MOSFET – МОП-транзисторы с изолированным затвором, которые представлены двумя разновидностями: с четырьмя выводами (подложка изолирована) и тремя (подложка соединена с истоком).
Рассмотрение параметров различных групп начнем с JFET-транзисторов с управляющим PN-переходом, которые базируются на модели Шихмана-Ходжеса (Рис. 107 ).
Поскольку большинство названий параметров для JFET и MESFET совпадают, а отличаются только значения по умолчанию для моделей MESFET в следующем списке будут выделены зеленым цветом, а JFET – красным.
Параметры характерные только для ISIS:
Device initially off OFF (-) Начальное состояние модели.
Initial D-S voltage IC-VDS (-) Начальное напряжение исток-сток.
IC-VGSInitial G-S voltage IC-VGS (-) Начальное напряжение исток-затвор.
Area factor AREA (1) Масштабный множитель для мощных транзисторов (на него умножаются BETA, RD, RS CGS, CGD и IS).
Instance temperature TEMP (27) Текущее значение температуры.
Типичные SPICE параметры моделей JFET или MOSFET:
Threshold voltage VT0 (-2) Пороговое напряжение [В].
Transconductance parameter BETA (0.0001) (0.0025) Коэффициент пропорциональности.
Channel length modulation parameter LAMBDA (0) Параметр модуляции длины канала [1/В].
Gate junction saturation current IS (1e-014) Ток насыщения перехода затвор-канал [А].
Drain ohmic resistance RD (0) Объемное сопротивление области стока [Ом].
Source ohmic resistance RS (0) Объемное сопротивление области истока [Ом].
Zero bias G-S junction capacitance CGS (0) Емкость перехода затвор-исток при нулевом смещении [Ф].
Zero bias G-D junction capacitance CGD (0) Емкость перехода затвор-сток при нулевом смещении [Ф].
Gate junction potential PB (1) Контактная разность потенциалов р-п-перехода затвора [В].
Forward bias junction fit parameter FC (0.5) Коэффициент нелинейности емкостей переходов при прямом смещении.
Doping tail parameter B (1) (0.3) Параметр легирования.
Flicker Noise Coefficient KF (0) Коэффициент, определяющий спектральную плотность фликер-шума.
Flicker Noise Exponent AF (1) Показатель степени, определяющий зависимость спектральной плотности фликер-шума от тока.
Parameter measurement temperature TNOM (27) Температура измерений.
Хочу обратить ваше внимание на то, что в стандартном HELP Протеуса по модели JFET допущены ошибки, в частности ошибочно указаны KF и AF равными 27.
Одним из важных параметров полевого транзистора являются выходные характеристики в зависимости от напряжения на затворе. Давайте в качестве примера построим такую зависимость для транзистора 2N4416 – наш аналог КП303. Сама тестовая схема особенностей не имеет и аналогична снятию выходных характеристик биполярного транзистора, только там в цепи базы применялся источник тока, а здесь мы оставляем источник напряжения (Рис. 108 ).
Настройки графика TRANSFER, который я применил для исследования приведены на Рис. 109.
В прилагаемом архиве этот пример расположен в FET/JFET_char.DSN. Там же приведен пример с моделью КП303Д от О. Петракова. Поскольку модель использовалась тем же методом, что и для диодов и биполярных транзисторов я подробно на этом не останавливаюсь.
А нас ждет обширный список параметров для MOSFET моделей транзисторов. Но прежде небольшая преамбула. SPICE3F5 поддерживает до семи уровней различных MOSFET моделей:
1. MOS1 – модель Шихмана-Ходжеса.
2. MOS2 – модель Владимиреску-Лиу (Беркли MOS2).
3. MOS3 – модель Владимиреску-Лиу (Беркли MOS3).
4. BSIM1 – оригинальная модель BSIM.
5. BSIM2 – новая модель BSIM.
6. MOS6 – модель Сакураи и Ньютона.
7. BSIM3 – последняя модель BSIM версии 3.3.
Нужный тип модели может быть задан явно в свойствах, например:

PRIMITIVE=ANALOG, NMOSFET
LEVEL=5


или:

PRIMITIVE=ANALOG, NBSIM2

Обе записи равнозначны и описывают модель как BSIM2 с каналом N-типа. Для P-типа соответственно надо использовать запись PMOSFET или PBSIM2. Два варианта записи применены для сохранения совместимости с предыдущими версиями SPICE. Уровни с 1 по 3 относятся к SPICE2, а уровни с 4 по 6 я вляются стандартными для SPICE3F5. В Протеусе добавлен уровень 7, для совместимости с последними версиями моделей. Будьте внимательны при использовании моделей взятых из PSPICE, поскольку этот пакет поддерживает модели выше уровня 4 и они могут оказаться несовместимыми с ProSPICE Протеуса. Лабцентр рекомендует предварительно визуально (в скрипте модели) проверить – какой уровень она использует.
Протеус всегда моделирует четырехвыводный MOSFET: Drain (D – сток), Gate (G – затвор), Source (S – исток), Bulk Substrate (B – подложка). Если вы моделируете трехвыводный МОП транзистор, то ProSpice автоматически соединит подложку с истоком.
SPICE-модели MOSFET транзисторов сориентированы на то, чтобы в симуляторах использовать их при моделировании интегральных микросхем (ИС). При этом, поскольку в составе ИС они формируются на одном кристалле, часть их свойств, например L, W, AD, и AS будут присвоены по умолчанию в соответствии с параметрами симуляции DEFL, DEFW, DEFAD и DEFAS из вкладки MOSFET меню SYSTEM=›Set Simulator Option, если не описаны отдельно для конкретного компонента в его свойствах (Рис. 110).
Итак, на Рис. 111 приведена нелинейная схема замещения МОП транзистора, а ниже приведены свойства SPICE-моделей для типов MOS1-MOS3 и MOS6.
Параметры выделенные в отдельные строки:
Length L (DEFL) Длина канала (м);
Width W (DEFW) Ширина канала (м);
Initially OFF (-) Начальное состояние при первой итерации;
Параметры из раскрывающегося списка в свойствах примитива MOSFET:
Drain area AD (DEFAD) Площадь диффузионной области стока (м2);
Source area AS (DEFAS) Площадь диффузионной области истока (м2);
Drain perimeter PD (0) Периметр диффузионной области стока (м);
Source perimeter PS (0) Периметр диффузионной области истока (м);
Threshold voltage VTO (0) Пороговое напряжение при нулевом смещении подложки (В);
Transconductance parameter KP (2e-5) Параметр удельной крутизны (А/В2);
Bulk threshold parameter GAMMA (0) Коэффициент влияния потенциала подложки на пороговое напряжение (В1/2);
Surface potential PHI (0.6) Поверхностный потенциал сильной инверсии (В);
Channel length modulation LAMBDA (0) Параметр модуляции длины канала (1/В только MOS1 и MOS2)
Bulk junction saturation current IS (1e-014) Ток насыщения p-n-перехода сток-подложка (исток-подложка) (А);
Drain ohmic resistance RD (0) Активное сопротивление стока (Ом);
Source ohmic resistance RS (0) Активное сопротивление истока (Ом);
B-D junction capacitance CBD (0) Емкость донной части p-n-перехода сток-подложка при нулевом смещении (Ф);
B-S junction capacitance CBS (0) Емкость донной части p-n-перехода исток-подложка при нулевом смещении (Ф);
Bulk junction potential PB (0.8 ) Контактная разность потенциалов донных р-п- переходов подложки (В);
Gate-source overlap capacitance CGSO (0) Удельная емкость перекрытия затвор-исток (Ф/м);
Gate-drain overlap capacitance CGDO (0) Удельная емкость перекрытия затвор-сток на длину канала (Ф/м);
Gate-bulk overlap capacitance CGBO (0) Удельная емкость перекрытия затвор-подложка (Ф/м);
Flicker noise coefficient KF (0) Коэффициент, определяющий спектральную плотность фликер-шума;
Flicker noise exponent AF (1) Показатель степени, определяющий зависимость спектральной плотности фликер-шума от тока через переход;
Sheet resistance RSH (0) Удельное сопротивление диффузионных областей истока и стока (Ом/кв);
Bottom junction cap per area CJ (0) Удельная емкость (на площадь перехода) донной части p-n-перехода сток(исток)-подложка при нулевом смещении (Ф/м2);
Bottom grading coefficient MJ (0.5) Коэффициент, учитывающий плавность донной части перехода подложка-сток (исток);
Side junction cap per area CJSW (0) Удельная емкость боковой поверхности перехода сток (исток)-подложка при нулевом смещении (на длину периметра) (Ф/м);
Side grading coefficient MJSW (0.33) Коэффициент, учитывающий плавность бокового перехода подложка-сток (исток) (Ф/м);
Bulk junction saturation current density JS (0) Плотность тока насыщения переходов сток(исток)-подложка (А/м2);
Oxide thickness TOX (0.1um) Толщина оксида (м);
Lateral diffusion LD (0) Глубина области боковой диффузии (м);
Surface mobility UO (600cm2/Vs) Поверхностная подвижность носителей (см2/В/с);
Substrate doping NSUB (0) Уровень легирования подложки (1/см2);
Surface state density NSS (0) Плотность медленных поверхностных состояний на границе кремний-подзатворный оксид (1/см2);
Параметры задаваемые вручную в окне Other Properties:
Drain squares NRD (1) Относительное удельное сопротивление стока;
Source squares NRS (1) Относительное удельное сопротивление истока;
Initial D-S voltage ICVDS (-) Начальное напряжение сток-исток (В);
Initial G-S voltage ICVGS (-) Начальное напряжение затвор-исток (В);
Initial B-S voltage ICVBS (-) Начальное напряжение подложка-исток (В);
Parameter measurement temperature TEMP (27) Рабочая температура измерения;
Model Index LEVEL (1) Уровень модели;
Critical field for mobility degradation (MOS2 only) UCRIT (10000V/cm) Критическая напряженность поля, при которой подвижность носителей уменьшается в 2 раза (только MOS2) (В/см);
Critical field exponent in mobility degradation (MOS2 only ) UEXP (0) Экспоненциальный коэффициент снижения подвижности носителей (только MOS2)
Maximum carrier drift velocity VMAX (0) Максимальная скорость дрейфа носителей (м/с);
Total channel charge coefficient NEFF (1.0) Эмпирический коэффициент коррекции концентрации примесей в канале;
Coefficient for forward bias depletion capacitance formula FC (0.5) Коэффициент нелинейности барьерной емкости прямосмещенного перехода подложки.
Параметры BSIM моделей в HELP Протеуса отсутствуют, так как применяются эти модели значительно реже. Их параметры создаются автоматически с помощью прибора для тестирования экспериментальных образцов. Однако, если кого-то интересуют данные модели, то параметры BSIM1 приведены в статье О. Петракова ж. «Схемотехника» №7 2001 и его же книге, упомянутой раньше.
Наиболее «шустрыми» для симуляции считаются модели уровня 1 и 3, при этом модель уровня 1 дает более грубые вычисления, модель уровня 4 применяется для мощных МОП транзисторов.
Ну и в заключении хотелось бы чуть-чуть остановиться на IGBT моделях транзисторов. Как такового примитива IGBT в ProSPICE нет, но SPICE модели в библиотеках присутствуют. Ну и раз есть, то мы и давай пихать их куда попало, тем более что в свойствах ничего такого не указано. Но вот беда – кнопочка там справа есть и обозначена как Device Notes (замечания по компоненту). Картинку не привожу, поскольку у меня на экране текст в замечаниях заползает за окно. Я его полностью «выковырял» и привожу ниже:
Цитата:
If the simulation aborts with "timestep too small" then set:
RELTOL=0.005 (up to 0.01)
ITL4=300 (up to 500)
ITL1=300
and in extreme cases (in order of importance):
GMIN=1e-09
ABSTOL=1e-08
VNTOL=1e-05 (up to 1e-03) only if required
TMAX=10 to 100ns
Для непосвященных в существование других языков кроме русского поясню значения фраз выделенных красным:
Если симуляция прерывается с сообщением «timestep too small» установите: (… далее перечисляются параметры симуляции которые необходимо изменить)
и в крайних случаях (в порядке важности): (опять перечисляются параметры симуляции а для VNTOL поднятие до 1e-03) только если потребуется.
Никаких ассоциаций в связи с этим замечанием не возникает? Тем более, если учесть, что IGBT это и полевой и биполярный транзисторы, а в ряде случаев и защитный диод и «все в одном флаконе». Так что перефразируем Ильфа и Петрова – «грузить IGBT бочками» в своих проектах нам не удастся и «братья Карамазовы» тут не помогут. Но это не значит, что IGBT уж совсем не симулируются. В доказательство приведу пример IGBT_MOSFET.DSN. В нем я выложил в графиках выходные характеристики для парочки тех и других транзисторов, ну а про реалтайм для IGBT, да еще нескольких в проекте видимо придется пока забыть до появления каких-нибудь супер-пупер процессоров или многоядерной версии Протеуса с распределенными вычислениями.
Справедливости ради надо отметить, что первую же модель в библиотеке IGBT - IRG4BC10KD мне не удалось просимулировать даже с помощью графиков, видно что-то «в консерватории не так», ну а остальные вроде ничего – живые.
Ну давайте закончим этот громоздкий материал по полевым транзисторам и наконец вернемся к заброшенной нами еще в начале этого раздела модели ОУ.
Рисунки 106, 107, 108.
Рисунки 109, 110, 111.
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic_106.gif
Просмотров: 832
Размер:	33.0 Кб
ID:	6674   Нажмите на изображение для увеличения
Название: Pic_107.gif
Просмотров: 541
Размер:	22.8 Кб
ID:	6675   Нажмите на изображение для увеличения
Название: Pic_108.gif
Просмотров: 694
Размер:	12.8 Кб
ID:	6676  

Нажмите на изображение для увеличения
Название: Pic_109.gif
Просмотров: 544
Размер:	14.0 Кб
ID:	6677   Нажмите на изображение для увеличения
Название: Pic_110.gif
Просмотров: 549
Размер:	11.9 Кб
ID:	6678   Нажмите на изображение для увеличения
Название: Pic_111.gif
Просмотров: 497
Размер:	29.7 Кб
ID:	6679  

Вложения:
Тип файла: rar FET.rar (207.0 Кб, 1538 просмотров)
Реклама:

Последний раз редактировалось Halex07; 07.08.2010 в 11:06. Причина: правка ошибок
Halex07 вне форума  
Эти 19 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
auara (13.04.2010), avr123-nm-ru (12.04.2010), bozhko (12.04.2010), firew0rker (22.04.2010), grbizly (15.04.2010), linecd (28.03.2010), NikMih_1 (28.05.2011), parcshin (23.04.2011), pav5809 (27.01.2011), ReLe1 (14.08.2011), Svan59 (10.04.2010), Tischon (21.01.2011), Traan (16.09.2013), WjaCHSL (10.04.2010), ДимаК (21.06.2011)
Непрочитано 12.04.2010, 01:17  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только.

4.17. Типы моделей сложных компонентов – взгляд изнутри. Схематичное и поведенческое моделирование. SPICE модели ОУ и компараторов в Протеусе. График частотного анализа.
Мы завершили рассмотрение аналоговых примитивов. Я умышленно упустил рассмотрение некоторых аналоговых моделей – это в основном различные длинные линии: URCLINE, LOSSYLINE, DELAY. Они достаточно хорошо рассмотрены у В. Гололобова в упоминавшейся ранее его книге, и желающие всегда могут ознакомиться с ней самостоятельно, поскольку это редкое, но с моей точки зрения весьма похвальное решение – автор свободно выложил ее на своем сайте. Но работа с этими моделями весьма специфична, а требуются они не так уж и часто. Мы же возвращаемся к заброшенной нами еще в п.п.4.1–4.2 FAQ графической модели ОУ и приступаем к ее «оживлению».
Но прежде я хотел бы остановиться еще на одном характерном аспекте, присущем моделированию сложных составных радиокомпонентов, каковыми являются ОУ и компараторы. До сих пор мы рассматривали модели элементарные: резисторы, диоды, конденсаторы, транзисторы. Но тот же ОУ может содержать их до нескольких десятков. Вернемся опять к упоминавшемуся ранее примеру 741.DSN из папки \SAMPLES\Graph Based Simulation. Откроем его, кликнем правой по графическому изображению ОУ U1 и выберем Goto Child Sheet – переход на дочерний лист этой модели (Рис. 112 ).
Вот здесь то и размещается полная внутрисхемная модель – воспроизведена структура ОУ (Рис.113 ). Как видим, в ней 21 транзистор и 12 резисторов.
Из этого листа в принципе уже можно скомпилировать MDF файл в котором вся эта структура и сохраниться, а впоследствии прикрепить его к графической модели ОУ. Но представьте, что при каждом использовании данной модели операционные точки данного MDF будут просчитываться программой, а их не так уж и мало. Поместив пару-тройку таких ОУ в проект, да еще подав на входы аналоговые сигналы с приличной частотой, мы рискуем полностью затормозить симуляцию – Протеус благополучно зависнет на расчетах внутренних точек моделей. Именно поэтому при создании моделей сложных компонентов разработчики в большинстве случаев отказываются от такого моделирования. Какова же альтернатива? Давайте вспомним те примитивы, которые я так настойчиво навязывал Вам в течение долгого времени. Среди них есть различные управляемые источники тока и напряжения – ну чем не усилители. Задали коэффициент передачи равным усилению ОУ, навесили несколько дополнительных элементов, чтоб имитировать входные и выходные импедансы и частотную характеристику и готово. И самое важное – все это элементарные SPICE-модели, быстрые и не требующие больших ресурсов на математику от компьютера. Такие модели получили название «поведенческие» и широко используются разработчиками.
В отношении ОУ и компараторов данный подход обычно выглядит следующим образом: моделируется входной дифференциальный каскад на транзисторах (биполярных или полевых), а все остальное заменяется управляемыми источниками и минимальным количеством пассивных компонентов: резисторов, конденсаторов и т.п.. Таким образом, мы получаем макромодель сложного компонента.
В качестве примера рассмотрим модель 140УД7 О. Петракова (ж. «Схемотехника» №2, 2002 и его упоминавшаяся ранее книга). На Рис. 114 приведена структура макромодели. Обращаю ваше внимание на то, что в схеме и в журнале и в книге (завидное постоянство!) допущена очепятка. Диод, который стоит справа от dlp между узлами 90-92 конечно же dln, а не Vin как на рисунке. В тексте программы он обозначен правильно.
Ниже приведена полный текстовый скрипт PSPICE для модели ОУ. Как видим, из всей внутренней структуры сохранен только входной диф. каскад, о чем я и упоминал выше.
Код:
* connections:          non-inverting input
*                         | inverting input
*                         | | positive power supply
*                         | | | negative power supply
*                         | | | | output
*                         | | | | |
.subckt K140UD7    1 2 3 4 5            
*
  c1   11 12 8.661E-12
  c2    6  7 30.00E-12
  dc    5 53 dy
  de   54  5 dy
  dlp  90 91 dx
  dln  92 90 dx
  dp    4  3 dx
  egnd 99  0 poly(2),(3,0),(4,0) 0 .5 .5
  fb    7 99 poly(5) vb vc ve vlp vln 0 10.61E6 -1E3 1E3 10E6 -10E6
  ga    6  0 11 12 188.5E-6
  gcm   0  6 10 99 5.961E-9
  iee  10  4 dc 15.16E-6
  hlim 90  0 vlim 1K
  q1   11  2 13 qx
  q2   12  1 14 qx
  r2    6  9 100.0E3
  rc1   3 11 5.305E3
  rc2   3 12 5.305E3
  re1  13 10 1.836E3
  re2  14 10 1.836E3
  ree  10 99 13.19E6
  ro1   8  5 50
  ro2   7 99 100
  rp    3  4 18.16E3
  vb    9  0 dc 0
  vc    3 53 dc 1
  ve   54  4 dc 1
  vlim  7  8 dc 0
  vlp  91  0 dc 40
  vln   0 92 dc 40
.model dx D(Is=800.0E-18 Rs=1)
.model dy D(Is=800.00E-18 Rs=1m Cjo=10p)
.model qx NPN(Is=800.0E-18 Bf=93.75)
.ends
*$
Немного остановимся на данном скрипте, поскольку тут появилось много новых, значимых для нас элементов. Само описание модели начинается с точки и аббревиатуры .subckt (subcircuit – подсхема), далее ее название K140UD7 и перечень всех точек с внешними связями (иными словами выводов) 1 2 3 4 5. Как всегда, все строки, стартующие со звездочки * являются комментариями и приведены для облегчения восприятия программы. Так, например, в начале помещены описания назначения выводов, которые направлены к соответствующим номерам узлов вертикальными, расположенными один над другим разделителями. Ниже строки .subckt расположено описание непосредственно субсхемы в каждой строке компонент, номера узлов к которым он подключен и его номинал или ссылка на модель.
Например:
c1 11 12 8.661E-12 - конденсатор, включенный между узлами 11 и 12 емкостью 8.661 пФ
или
q1 11 2 13 qx – транзистор, подключенный к узлам 11, 2, 13 (соответственно КБЭ) с моделью qx
Здесь надо остановиться подробнее. Обратите внимание, что в конце скрипта расположено описание самих моделей, примененных в подсхеме так же начинающихся с точки. Это два варианта диодов – dx и dy и модель NPN транзистора – qx. Параметры примитивов указаны в скобках – это мы уже встречали. Почему я здесь заострил наше внимание? В данном случае все нормально, поскольку применены типовые примитивы и модель будет работать в Протеусе. Но иногда, разработчики для экономии времени указывают здесь ссылки на конкретные компоненты, расположенные в других библиотеках – я приведу чуть ниже пример того же О. Петракова с компаратором. Вот в таком случае, если модель отсутствует в библиотеках вашей программы, вы получите ошибку симуляции со ссылкой на несуществующую модель. Об этом необходимо помнить, перетаскивая в Протеус SPICE модели из других программ: ОrCAD, MicroCAP, Multisim и т.п. или используя PSPICE модели фирм-производителей компонентов, извлеченные из готовых библиотек. Ну и в конце текстового описания модели стоит завершающий оператор ends.
И еще один для кого-то может быть не очень приятный сюрприз. Посмотрите на структуру макромодели и сравните с графической моделью, к которой мы это будем прилеплять – использованы только входы, выход и питание, а два вывода реальной микросхемы остаются незадействованными. И это не прихоть О. Петракова, создавшего модель К140UD7. У большинства SPICE-моделей дополнительные выводы балансировки и коррекции как в Протеусе, так и в других симуляторах благополучно «висят в воздухе». Так что все попытки навешивать на них дополнительные элементы и добиться при этом изменения результатов симуляции будут абсолютно бесполезной тратой времени. И встретив при запуске симуляции некоторых ОУ желтое предупреждение Pin такой то no simulated, не пугайтесь – просто в модели нет описания для этого вывода и ISIS его игнорировал. Но не всегда, когда пин отсутствует, вылезает такое предупреждение. Возьмем, например столь всеми любимый LM318 от National Semiconductor со SPICE-моделью из библиотеки ISIS. Включаем флажок и видим (Рис. 115 ).
Какие тут могут быть цепи баланса и т.п., они даже и не упоминаются. Только входы, выход и питание.
Ну вот, теперь настала пора вытащить из забвения ту графическую модель ОУ, которую мы создали в п.п.4.1- 4.2 этого FAQ. Мы ее тогда сохранили как 741R. Ну а теперь будем делать из нее K140UD7. Процедура аналогична присоединению SPICE модели к примитивам, но есть и своя специфика. Итак, втаскиваем нашу графическую модель в проект, который сохраняем в некоторой папке у меня в примере это 140UD7. В этой же папке должен лежать и библиотечный SPICE файл с расширением .LIB, в котором должна присутствовать наша модель K140UD7. У меня в примере это OU_RU.LIB. Кроме 140УД7 там еще парочка моделей. Проверяем цоколевку по любой документации. Опля! Не хватает одного пина – CK. Это не проблема. «Декомпозим» нашу графическую модель молотком и добавляем недостающее. Затем выделяем всю нашу графику (скрипт я удалил, но можно было и не удалять) и опять давим Make Device, ну т.е. повторяем процедуру из п.п.4.1- 4.2, но с некоторыми отличиями. На первой вкладке назовем наш девайс K140UD7, префикс оставим прежним DA (ну или поставьте U, как стандартно для м/сх в ISIS). Вторую, где назначается Package пока пропустим – его можно назначить и позже. Все отличие начинается на третьей вкладке, где и остановимся подробнее. Здесь необходимо проделать следующие манипуляции:
• Через кнопку New из всплывающего списка назначаем SPICEMODEL как показано на Рис.116. В Property Default в окне Default Value прописываем нашу модель и библиотеку, где она расположена. K140UD7,RU_LIB (Внимание! Важно! Здесь и далее после запятых пробел отсутствует!).
• Аналогичным образом через кнопку New добавляем свойство PRIMITIVE как показано на Рис. 117. В Default Value вводим ANALOGUE,SUBCKT.
• Ну и теперь аналогично добавляем последнее свойство SPICEPINS. В Default Value через запятую без пробелов перечисляем все активные (т.е. те которые в нашей SPICE-модели в строке .subckt) в соответствии с их именами (а не номерами – не путайте) в графической модели. У нас это будут – POS IP,NEG IP,V+,V-,OPРис. 118. (Важно! Вот здесь для входов пробел в POS IP и NEG IP присутствует, потому что он есть в именах выводов графической модели).
Далее проходим по вкладкам до конца и завершаем создание модели как и ранее, выбрав для нее на последней вкладке из раскрывающегося списка Device Category Operational Amplifiers (категория – операционные усилители), Device Sub-categorySingle (подкатегория – одиночные), ну а в Device Manufacturer (производитель) – можно вбить кому что в голову взбредет, я лично для наших компонентов пишу ExUSSR. Сохраняется все это по нажатию OK в библиотеке USRDVC. Потом можно будет перенести эту модель в другую библиотеку через менеджер библиотек.
Теперь проверяем работоспособность нашей созданной модели – она должна появиться в левом окне селектора компонентов. Добавляем ее в проект, обвешиваем необходимой периферией (резисторами и генератором на входе) – я выбрал вариант неинвертирующего усилителя с коэффициэнтом усиления 2 (равные резисторы). Напомню, что для такого варианта
Uвых=Uвх*(1+R1/R2)
Результат графической симуляции представлен на Рис. 119.
Ну вот, убедились, что модель работоспособна – пора загнать ее в корпус. Кликаем правой кнопкой по модели в проекте и выбираем из всплывающего меню самый нижний пункт Packaging Tools (То же самое можно проделать выделив компонент и выбрав значок синяя микросхема с гаечным ключом в верхнем меню ISIS). Нам будет представлено окно Package Device (Рис. 120 ). Если вы идете туда первый раз, то предварительно всплывет сообщение ISIS Information c рекомендациями по изменению размеров окна Package Device – его можно сразу закрыть, предварительно поставив флажок – больше не напоминать.
В Package Device пока корпуса нет. Нажимаем кнопку Add и выбираем из библиотек ARES нужный. Я для начала назначу корпус DIP с восьмью ногами (Рис. 121) – обратите внимание, что в ARES он называется DIL (Dual-In-Line), а DIP (Dual-In-Plane) там называются корпуса такого же типоразмера, но монтируемые не в отверстия (Hole), а на поверхность, т.е. планарно.
Конечно же, зная название корпуса, можно было его быстро найти через строку Keywords как и в ISIS, введя часть названия или целиком. Когда привыкните – рекомендую пользоваться этим способом. Но, тем не менее, корпус мы нашли и нажмем OK. Наш корпус появился в черном окне справа, выводы стали доступными – заканчиваем назначение, нажав кнопку Assign Package(s). Затем во всплывшем окне Selext Library For Packaged Device убеждаемся, что корпус будет сохранен в той же библиотеке, что и модель (USRDVC) и сохраняем все кнопкой Save Package(s).
В принципе, мы могли бы и сразу назначить еще один корпус для круглого варианта микросхемы, но это можно сделать и позже. Тем более, что в ARES бесполезно искать русский круглый корпус 301.8-1, но есть похожие, – например: TO77, правда ключик у него находится напротив восьмой ноги.
На этом процедура создания работоспособной модели ОУ К140УД7 практически закончена. Давайте в качестве теста проведем частотный анализ нашей модели. Добавим в проект график FREQUENCY из левого меню Graph Mode. Зайдем в его свойства и установим (применительно к схеме из Рис. 119) параметры как на Рис. 123.
Здесь в качестве источника сигнала мы выбрали генератор Uin, задали ему начальную частоту 10 Гц, конечную частоту 10 МГц, интервал по оси X декадный (в 10 раз), ну и количество шагов 10 (можно и больше). Затем втащим на поле графика наш выходной зонд Uout, причем и к левой оси (в левый верхний угол – это частотная характеристика – будет зеленой) и к правой оси ( в правый нижний угол – это фазовая характеристика – будет красной) и запустим график на исполнение. Результат приведен на
Рис. 124. По частотной зеленой трассе мы видим, что наш не инвертирующий усилитель на К140УД1 имеет спад усиления, начиная со 100 кГц, который в районе 10 МГц пересекает ось 0 дБ и продолжается вплоть до 10 МГц, где достигает -35 дБ. По правой шкале Y и красной трассе можно отследить изменение фазы сигнала в градусах.
Весь процесс создания модели ОУ во вложении OU_COMP1 папка 140UD7.
Ну а теперь немного остановимся на упрощенной модели компаратора от О. Петракова, как я и обещал выше. Сама макромодель 521СА3 из литературы, упоминаемой выше, приведена на Рис. 125. Как видим, в качестве транзисторов автор применил свои модели КТ315А. Конечно, если выполнить модель и не вложить в нее модели этих транзисторов, то работать она не будет. Но в данном случае они полностью присутствуют, поэтому можно промоделировать компаратор в ISIS аналогично тому, как мы моделировали ОУ.
Ниже приведен оригинальный текст модели 521CA3 из вышеупомянутых источников. К сожалению, в таком виде модель в Протеусе полностью неработоспособна.
Код:
* ----- Упрощённая макромодель компаратора  521CA3 -----------
*
*                            Открытый эмиттер
*                            |   Не инвертирующий вход
*                            |    |   Инвертирующий вход
*                            |    |    |   Минус источника питания
*                            |    |    |    |   Открытый коллектор
*                            |    |    |    |    |   Плюс источника питания
*                            |    |    |    |    |    |
.SUBCKT 521CA3       1    2    3    4    7    8 
R1 8  9 1K
R2 8 10 1K
*    С   B   E  - порядок перечисления выводов транзисторов.
Q1   9   2  11   KT315A
Q2  10   3  11   KT315A
Q3   7  12   1   KT315A
I1 (4 11) 2mA ; источник тока 2мА.
*
G1 (12 1) (9 10) 0.1     
.model KT315A NPN (Is=23.68f Xti=3 Eg=1.11 Vaf=60 Bf=108 Ne=1.206 
+       Ise=23.68f Ikf=.1224 Xtb=1.5 Br=4.387G Nc=1.8 Isc=900p Ikr=20m Rc=5 
+       Cjc=7p Mjc=.333 Vjc=.7 Fc=.5 Cje=10p Mje=.333 Vje=.7 
+       Tr=130.5n Tf=1n Itf=40m Vtf=80 Xtf=1.1 Rb=10)
.ENDS
*$
Во-первых, автором допущена ошибка в описании источника тока I1. Обратите внимание – на схеме источник стоит правильно, а в тексте модели принято первой точкой указывать положительный полюс источника, т.е. узел 11, а запись следующая: I1 (4 11) 2mA. Получается, что источник включен с точностью до наоборот.
Но не это главное. Автор произвольно расположил узлы SUBCKT, и первым у него идет открытый эмиттер выходного транзистора. Не знаю, может PSPICE и допускает такие вольности, но ProSPICE Протеуса упорно не хотел корректно работать, пока я не расположил узлы с общепринятой последовательностью – входы, питание, выходы. В результате скорректированная строка получилась следующего вида применительно к схеме Рис. 125:
Код:
*            Неинвертирующий вход
*                      | Инвертирующий вход
*                      | | Плюс источника питания
*                      | | | Минус источника питания
*                      | | | | Открытый эмиттер
*                      | | | | | Открытый коллектор
*                      | | | | | |
.SUBCKT 521CA3 2 3 8 4 1 7
После таких изменений модель заработала как надо. Во вложении в папке 521SA_Petrakova присутствуют два проекта и два файла .LIB. В файле 521CA3.DSN (к нему относится 521CA.LIB) рассмотрен сам процесс создания модели и там источник тока оставлен в оригинальном включении (неправильном). Изменен только порядок перечисления выводов, чтобы добиться хоть какой то работоспособности. В файле 521SA3correct.DSN (к нему относится 521SA.LIB) скорректировано включение источника тока I1, а также модель транзистора заменена на примитив с минимально измененными от принятых по умолчанию параметрами. Эта модель и работает как надо (сравните графики там и там) и ресурсов компа кушает меньше.
На этом я закончу процесс рассмотрения SPICE моделирования. Нам осталось только поучиться упаковывать самостоятельно SPICE библиотеки. Ну а далее на примере все тех же операционных усилителей перейдем к схематичному моделированию в Протеусе.
Рис. 112, 113, 114.
Рис. 115, 116, 117.
Рис. 118, 119, 120.
Рис. 121, 122, 123.
Рис. 124, 125.
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic_112.gif
Просмотров: 646
Размер:	38.5 Кб
ID:	7402   Нажмите на изображение для увеличения
Название: Pic_113.gif
Просмотров: 1152
Размер:	90.6 Кб
ID:	7403   Нажмите на изображение для увеличения
Название: Pic_114.gif
Просмотров: 635
Размер:	61.9 Кб
ID:	7404  

Нажмите на изображение для увеличения
Название: Pic_115.gif
Просмотров: 557
Размер:	36.3 Кб
ID:	7405   Нажмите на изображение для увеличения
Название: Pic_116.gif
Просмотров: 524
Размер:	43.8 Кб
ID:	7406   Нажмите на изображение для увеличения
Название: Pic_117.gif
Просмотров: 505
Размер:	39.4 Кб
ID:	7407  

Нажмите на изображение для увеличения
Название: Pic_118.gif
Просмотров: 492
Размер:	41.2 Кб
ID:	7408   Нажмите на изображение для увеличения
Название: Pic_119.gif
Просмотров: 550
Размер:	10.8 Кб
ID:	7409   Нажмите на изображение для увеличения
Название: Pic_120.gif
Просмотров: 476
Размер:	49.1 Кб
ID:	7410  

Нажмите на изображение для увеличения
Название: Pic_121.gif
Просмотров: 671
Размер:	74.1 Кб
ID:	7411   Нажмите на изображение для увеличения
Название: Pic_122.gif
Просмотров: 463
Размер:	55.4 Кб
ID:	7412   Нажмите на изображение для увеличения
Название: Pic_123.gif
Просмотров: 473
Размер:	14.6 Кб
ID:	7413  

Нажмите на изображение для увеличения
Название: Pic_124.gif
Просмотров: 482
Размер:	8.4 Кб
ID:	7414   Нажмите на изображение для увеличения
Название: Pic_125.gif
Просмотров: 491
Размер:	80.2 Кб
ID:	7415  
Вложения:
Тип файла: rar OU_COMP1.rar (88.4 Кб, 1280 просмотров)

Последний раз редактировалось Halex07; 13.03.2013 в 12:49. Причина: правка ошибок
Halex07 вне форума  
Эти 20 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
alexey222 (23.04.2010), artan_job (05.05.2010), bozhko (02.05.2010), buble_lab (15.10.2010), BXG (19.04.2010), grbizly (13.05.2010), ig3757 (11.06.2010), kuksin (03.05.2010), Mg1 (14.07.2010), parcshin (23.04.2011), pav5809 (27.01.2011), reaboi (23.04.2010), ReLe1 (14.08.2011), S[lver (06.09.2015), Tischon (21.01.2011), Traan (16.09.2013), ДимаК (21.06.2011)
Непрочитано 09.06.2010, 19:35  
skarl
Прохожий
 
Регистрация: 09.06.2010
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 1 сообщении
skarl на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только.

Сообщение от Halex07 Посмотреть сообщение
К сожалению, безвременно ушедший Виктор Данилович
Не Виктор, а Всеволод. Его памяти мой отец посвятил 6-е изд. двухтомника "Электронная лаборатория на IBM PC..."
--------------------------------------------------------------------------------------------------
Признаю, вкралась опечатка, исправляю. Просто у меня в ВУЗе был преподаватель Виктор Данилович, теперь уже тоже покойный, и тоже по одной из дисциплин, связанных с электроникой. Когда набирал текст видно машинально вспомнил и его.
Halex
--------------------------------------------------------------------------------------------------
ЗЫ. Приятно, что мои скромные начинания привлекли внимание и других авторов книг по электронному моделированию. Рад приветствовать на форуме КАЗУС Сегея Васильевича. Надеюсь теперь не ошибся?
Хм. Сейчас проверил, точно очепятался, но всего один раз. На предыдущей странице имя отчество Разевига уже было правильное.

Последний раз редактировалось Halex07; 10.06.2010 в 00:17.
skarl вне форума  
Эти 4 пользователя(ей) сказали Спасибо skarl за это сообщение:
pav5809 (27.01.2011), Tischon (21.01.2011), Traan (16.09.2013)
Непрочитано 10.06.2010, 01:20  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только.

4.18. Создание собственных Spice-библиотек (.SML) с помощью утилиты PUTSPICE.EXE.
В п.4.12 мы уже познакомились с утилитой PUTSPICE.EXE, но знакомство это носило поверхностный характер. Сейчас, когда мы уже имеем представление об использовании SPICE-моделей сторонних разработчиков в Протеусе настала пора применить ее в действии. Для начала предлагаю потренироваться на уже существующих в ISIS моделях, для которых отсутствует симуляция (No simulation model). В качестве подопытных кроликов в нашем случае будем использовать модели ОУ и компараторов Texas Instruments. Для начала прогуляемся на сайт фирмы (а конкретно на их страничку Центра проектирования E-lab) по следующему адресу:
http://focus.ti.com/adc/docs/midleve...ontentId=31690
Здесь находятся модели для различных симуляторов (Рис. 126 ), в том числе независимые: General (их совсем немного) и множество моделей PSPICE. Вот ZIP файл (архив 26МБайт) с последними нас и интересует, поскольку мы уже убедились, что после их проверки на работоспособность, они вполне применимы для моделирования в ISIS.
Распакуем архив ti_pspice_models.zip в какую-нибудь папку на своем компьютере. В полученном подкаталоге будет множество папок с названиями компонентов, причем часть из них будут пустыми, а часть с ZIP-файлами соответствующих моделей. Начнем с компараторов и в первую очередь с наиболее часто встречающихся – LM111…311. Откроем архив LM111_PSpice_Model.zip из папки LM111. Там находится одноименный файл с расширением 301. По сути – это обычный текстовый файл, ну а расширение, судя по всему, относится к версии PSPICE. Нас оно интересует в том плане, что в папке MODELS Протеуса модели этого типа хранятся в библиотеке TEX301.SML, а, например, модели Texas Instruments, которые после распаковки будут иметь расширение 5_1 в библиотеке TEX5_1.SML. Нам предстоит переименовать его в LM111.MOD, поскольку, как мы знаем, ISIS поддерживает для SPICE-моделей расширения MOD и LIB. Ну и попутно с помощью любого текстового редактора заглянем внутрь самого файла, чтобы убедиться, что в нем нет ничего предосудительного. Ниже приведено его содержимое.
Код:
* LM111 VOLTAGE COMPARATOR "MACROMODEL" SUBCIRCUIT
* CREATED USING PARTS VERSION 4.03 ON 03/07/90 AT 12:28
* REV (N/A)
* CONNECTIONS:   NON-INVERTING INPUT
*                              |  INVERTING INPUT
*                              |  | POSITIVE POWER SUPPLY
*                              |  |  | NEGATIVE POWER SUPPLY
*                              |  |  |  |  OPEN COLLECTOR OUTPUT
*                              |  |  |  |  | OUTPUT GROUND
*                              |  |  |  |  |  |
.SUBCKT LM111    1 2 3 4 5 6
*
  F1    9  3 V1 1
  IEE   3  7 DC 100.0E-6
  VI1  21  1 DC .45
  VI2  22  2 DC .45
  Q1    9 21  7 QIN
  Q2    8 22  7 QIN
  Q3    9  8  4 QMO
  Q4    8  8  4 QMI
.MODEL QIN PNP(IS=800.0E-18 BF=666.7)
.MODEL QMI NPN(IS=800.0E-18 BF=1002)
.MODEL QMO NPN(IS=800.0E-18 BF=1000 CJC=1E-15 TR=102.5E-9)
  E1   10  6  9  4  1
  V1   10 11 DC 0
  Q5    5 11  6 QOC
.MODEL QOC NPN(IS=800.0E-18 BF=103.5E3 CJC=1E-15 TF=11.60E-12 TR=48.19E-9)
  DP    4  3 DX
  RP    3  4 6.667E3
.MODEL DX  D(IS=800.0E-18)
*
.ENDS

Типичный файл SPICE-модели. Убедившись, что ничего лишнего в модели не присутствует – тестируем модель. Для этого создаем проект, с ее использованием. В проект добавляем LM111 (именно ту No simulation от Texas Instruments), затем, выделив ее давим Make Device. На третьей вкладке добавляем следующие свойства:
SPICEMODEL = LM111
SPICEFILE = LM111.MOD
PACKAGE = DIL08
PRIMITIVE = ANALOGUE,SUBCKT
SPICEPINS = +IP,-IP,VCC+,VCC-,COL OUT,EMIT OUT

Обратите внимание, что я добавил свойство не SPICELIB, как мы делали ранее, а SPICEFILE и задал ему значение LM111.MOD – ведь именно так мы назвали файл модели (Рис. 127 ).
Все остальное оставляем без изменений и проходим весь процесс Make Device до конца. Модель с присоединенными параметрами сохраняем пока по умолчанию в библиотеке USRDVC. После этого обвешиваем нашу микросхему периферией для теста (я использовал простенький, как и выше) и проверяем, что она адекватно реагирует. Конечно, стоило бы поподробнее потестировать, но для наших целей и этого пока достаточно. Весь процесс во вложении TEX_INS/COMPAR_TEST/LM111_PSpice_Model/LM111.DSN.
Аналогично я проверил LM211 и LM311. Все модели работают. Далее есть два пути: создать свою SML-библиотеку, или закинуть их в существующую.
Рассмотрим первый вариант. Складываем наши файлы .MOD в одну папку, туда же кладем саму утилиту PUTSPICE.EXE из папки BIN Протеуса. Лучше, если путь к папке будет как можно более коротким, чтобы не мучить зря клавиатуру и свои мозги. Далее запускаем командную консоль и создаем библиотеку, например TEX301_1 на 200 элементов следующей командой:
PUTSPICE –L=TEX301_1.LML –C=200
После чего другой командой:
PUTSPICE –L=TEX301_1.LML –D LM111.MOD LM211.MOD LM311.MOD
укладываем туда наши файлы. Обратите внимание, что я использовал ключ –D, который сотрет файлы .MOD с диска после их упаковки в библиотеку. Сейчас мы туда заложили три файла, а если бы их было много – поди, разберись: что уже положил, а что нет. А так стерлись, значит упаковал. Весь процесс на Рис. 128 (там я сначала запустил PUTSPICE без параметров, чтоб вывести подсказку.
На законный вопрос любознательных: а зачем вообще упаковывать .MOD в .SML? – ведь можно было просто побросать их в папку MODELS Протеуса, отвечу – так они занимают меньше места, да и бардак в MODELS разводить не стоит. Таким образом мы можем и дальше добавлять в нашу библиотеку модели вплоть до 200 штук. Когда эта процедура надоест, помещаем наш файл TEX301_1.LML в паку MODELS Протеуса. Но на этом наш творческий процесс не закончен. Ведь графические модели, то у нас в библиотеке USRDVC, да и в качестве исполняемых им назначены файлы .MOD, а не библиотека .SML. Для начала снова вытаскиваем наши модели в окно проекта (не перепутайте с теми, что без моделей) и проходим для каждой повторно Make Device. На третьей вкладке удаляем свойство SPICEFILE (Рис. 128 ) и добавляем свойство SPICELIB со значением TEX301_1.LML (Рис. 130 ).
Теперь нам осталось зайти в менеджер библиотек - Library =› Library Manager и перенести наши модели из USRDVC в TEXOA (Рис. 131 ), где им законное место.
Однако, это не так то просто сделать. Во-первых, для файла TEXOA.LIB в папке LIBRARY Протеуса необходимо снять атрибут «только чтение». Во-вторых, TEXOA.LIB забита по завязку, поэтому сначала надо удалить там существующие LM111, LM211 и LM311, выбирая их и используя кнопку Delete Item. Лишь потом, кнопка Move Item станет активной, как на Рис. 131. Ну вот теперь наши мытарства закончены и мы имеем в библиотеках Протеуса готовые к использованию компараторы от Texas Instruments со SPICE-моделями вместо опостылевшей фразы No Simulation. В принципе, сняв заранее защиту записи с библиотеки TEXOA.LIB, можно было сразу перезаписывать модели там. Но все же я не рекомендую проводить такие операции тем, кто не очень «дружит» с компьютером, ну или заранее создайте резервные копии модифицируемых библиотек – файлов с расширениями .LIB и .IDX, чтобы иметь возможность вернуть все на круги своя в случае неудачи.
Теперь рассмотрим второй вариант добавления моделей. Для этого сначала перестрахуемся и создадим резервную копию родной библиотеки - файлы TEXOA.LIB и TEXOA.IDX из папки LIBRARY и файл TEX301.SML из папки MODELS Протеуса. С файла TEXOA.LIB снимаем защиту от записи и при операции Make Device сохраняем изменения в существующей модели не в USRDVC, а непосредственно в TEXOA. Затем, конечно предварительно сняв атрибут «только чтение», с помощью PUTSPICE.EXE упакуем наши модели в родную библиотеку TEX301.SML так, как мы делали после создания новой. Все остальные процедуры по удалению в свойствах SPICEFILE и добавлению SPICELIB проводим также как и выше, ну, естественно задав для SPICELIB значение родной TEX301.SML.
Аналогично поступаем и с моделями операционных усилителей. Примеры тестирования трех ОУ: LM318, LM358, TL022 во вложении в папке OU_TEST.
Конечно же, таким способом можно добавить и отсутствующие в библиотеках Протеуса модели, но предварительно потребуется создать графическую модель и назначить ей соответствующий Package (корпус). Рассмотрим это на примере инструментального усилителя INA111, PSPICE-модель которого есть в вышеупомянутом архиве. Я хочу остановиться на этой модели потому, что на данном примере можно рассмотреть сложную субсхему SPICE. По цоколевке корпуса и назначению выводов этот усилитель совпадает с существующим в Протеусе INA122, поэтому процесс создания будет достаточно простым. Мы просто втаскиваем в проект прототип и в процессе создания (Make Device) меняем везде INA122 на INA111. Для этого на первой вкладке изменяем Name на INA111, на третьей убираем свойство SPICELIB и добавляем SPICEFILE со значением INA111.MOD. Аналогично изменяем значение SPICEMODEL на INA111. Ну и самое главное – это не забыть изменить последовательность выводов в свойстве SPICEPINS, иначе модель работать не будет. Дело в том, что у прототипа (кстати, особо любознательные могут распаковать модель INA122 из INA122 _PSpice_Model.zip и посмотреть в шапке на фамилию автора – весьма познавательно, испытайте гордость за соотечественника) применена иная, чем в модели INA111 последовательность перечисления выводов, а это важно для симулятора ProSPICE (об этом я уже упоминал). Теперь о том, в чем изюминка SPICE-модели INA111. Приведу только начало файла INA111.MOD, поскольку он слишком большой.
Код:
* INA111 = A1_111 + A2_111 + A3_111 OP AMPS + PRECISION RESISTOR NETWORK
* CREATED ON 12/1/92 AT 10:00 HB
* REV.A
* REV.B  18 JUNE 97 NPA: MOVED LEGAL DISCLAIMER TO BEGINNING OF FILE
*
*
***** INA111 SUB-CIRCUIT
* CONNECTIONS:          NON-INVERTING INPUT
*                                      |   INVERTING INPUT
*                                      |    |   POSITIVE POWER SUPPLY
*                                      |    |    |   NEGATIVE POWER SUPPLY
*                                      |    |    |    |   OUTPUT
*                                      |    |    |    |    |   REFERENCE
*                                      |    |    |    |    |    |   GAIN SENSE 1
*                                      |    |    |    |    |    |    |   GAIN SENSE 2
*                                      |    |    |    |    |    |    |    |
.SUBCKT INA111          1   2   3   4   5   8   9  10
*
***** A1_111 SUB-CIRCUIT
* CONNECTIONS:          NON-INVERTING INPUT
*                           |   INVERTING INPUT
*                           |    |   POSITIVE POWER SUPPLY
*                           |    |    |   NEGATIVE POWER SUPPLY
*                           |    |    |    |   OUTPUT
*                           |    |    |    |    |
X1                     15  17   3   4  11   A1_111
***** A2_111 SUB-CIRCUIT
* CONNECTIONS:          NON-INVERTING INPUT
*                          |   INVERTING INPUT
*                          |    |   POSITIVE POWER SUPPLY
*                          |    |    |   NEGATIVE POWER SUPPLY
*                          |    |    |    |   OUTPUT
*                          |    |    |    |    |
X2                     15  16   3   4  12   A2_111
*
***** A3_111 SUB-CIRCUIT
* CONNECTIONS:          NON-INVERTING INPUT
*                          |   INVERTING INPUT
*                          |    |   POSITIVE POWER SUPPLY
*                          |    |    |   NEGATIVE POWER SUPPLY
*                          |    |    |    |   OUTPUT
*                          |    |    |    |    |
X3                     14  13   3   4   5   A3_111
Обратите внимание на то, что внутри файла модели усилителя .SUBCKT INA111 присутствуют еще три подсхемы усилителей, начинающиеся соответственно с X1, X2 и X3. Сами эти усилители в модель не входят, поскольку ранее встречается завершающий оператор .ENDS. Их содержимое расписано уже за ним в соответствующих .SUBCKT для A1_111, A2_111 и A3_111 также завершающимися собственными .ENDS. В этом можете убедиться сами, открыв файл INA111.MOD в любом текстовом редакторе. Вот такая «навороченная» модель. Ну и еще одна особенность, которую мне пришлось поправить для использования в Протеусе. В конце пришлось закомментировать (поставить звездочку в начале строки) следующую директиву: .ENDS INA111, иначе ProSPICE при симуляции злостно ругался и выдавал ошибку. На этот факт следует обратить внимание тем, кто самостоятельно будет применять модели сторонних разработчиков. В остальном модель оказалась полностью работоспособной, что подтверждается ее тестированием в приложенном файле TEX_INS\IN_AMP_TEST\INA111_PSpice_Model\INA111.DSN. В папке INA118_PSpice_Model аналогично созданная модель другого инструментального усилителя. Здесь в файле INA118DFREQ.DSN дополнительно приведены частотные графики при различных значениях усиления, которые можно сравнить с присутствующими в даташитах на данные компоненты. Даташиты PDF «весят» немного, поэтому я их также вложил в одноименные папки.
Рисунки 126, 127, 128.
Рисунки 129, 130, 131.
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic_126.gif
Просмотров: 593
Размер:	17.2 Кб
ID:	8730   Нажмите на изображение для увеличения
Название: Pic_127.gif
Просмотров: 468
Размер:	15.2 Кб
ID:	8731   Нажмите на изображение для увеличения
Название: Pic_128.gif
Просмотров: 481
Размер:	15.6 Кб
ID:	8732  

Нажмите на изображение для увеличения
Название: Pic_129.gif
Просмотров: 465
Размер:	16.4 Кб
ID:	8733   Нажмите на изображение для увеличения
Название: Pic_130.gif
Просмотров: 476
Размер:	15.1 Кб
ID:	8734   Нажмите на изображение для увеличения
Название: Pic_131.gif
Просмотров: 460
Размер:	26.1 Кб
ID:	8735  

Вложения:
Тип файла: rar TEX_INS.rar (873.3 Кб, 1347 просмотров)

Последний раз редактировалось Halex07; 07.08.2010 в 13:24. Причина: правка ошибок
Halex07 вне форума  
Эти 18 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
Bird55 (11.05.2016), bozhko (14.06.2010), Gromyhev (23.01.2011), haruta (20.08.2010), ig3757 (11.06.2010), joogorden (02.11.2011), nikcher-65 (15.08.2010), NikMih_1 (28.05.2011), parcshin (23.04.2011), pav5809 (27.01.2011), ReLe1 (14.08.2011), Tischon (21.01.2011), Traan (16.09.2013), vale1 (15.06.2010), ДимаК (21.06.2011)
Непрочитано 10.06.2010, 01:24  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только.

Итак, часть II FAQ по Протеусу закончена окончательно и бесповоротно. К этому моменту исправлены и грамматические ошибки в онлайн и PDF версиях части II, спасибо тем, кто мне на них указал. Часть I еще не поправлена до конца.
Во вложении к этому посту PDF вариант второй части по предыдущий пост. Там же приложены все примеры и в качестве бонуса за долгое молчание - библиотеки некоторых русских компонентов - архив LIBRUS. Чтобы добавить их в свою копию - распаковываем, и копируем из соответствующих папок архива в соответствующие папки установленной программы. Ест-но я не изголялся до такой степени, чтобы делать 3D модели, например для древних стабилитронов Д814, и вообще добавил их в новом миниатюрном исполнении. Основная задача была, чтоб это симулировалось в ISIS.
Вот перечень того, что в библиотеке:
Диоды:
КД209А - модель KD209A
КД209Б - модель KD209B
КД209В - модель KD209V
КД209Г - модель KD209G
КД212А - модель KD212A
КД503А - модель KD503A
КД522А - модель KD522A
Стабилитроны:
Д814А - модель D814A
Д814Б - модель D814B
Д814В - модель D814V
Д814Г - модель D814G
Д814Д - модель D814D
КС133А - модель KS133A
КС156А - модель KS156A
Транзисторы NPN:
КТ315А - модель KT315A
КТ315Б - модель KT315B
КТ315В - модель KT315V
КТ315Г - модель KT315G
КТ315Д - модель KT315D
КТ315Е - модель KT315E
КТ315Ж - модель KT315J
КТ315И - модель KT315I
КТ3102А - модель KT3102A
КТ3102Б - модель KT3102B
КТ3102В - модель KT3102V
КТ3102Г - модель KT3102G
КТ325Б - модель KT325B
КТ363А - модель KT363A
КТ368Б - модель KT368B
КТ602АМ - модель KT602A
КТ646А - модель KT646A
КТ815Г - модель KT315G
КТ819А - модель KT819A
КТ831А - модель KT831A
КТ926А - модель KT926A
КТ939А - модель KT939A
КТ3117А - модель KT3117A
Транзисторы PNP:
КТ361А - модель KT361A
КТ361Б - модель KT361B
КТ361В - модель KT361V
КТ361Г - модель KT361G
КТ361Д - модель KT361D
КТ361Е - модель KT361E
КТ3107А - модель KT3107A
КТ3107Б - модель KT3107B
КТ3107В - модель KT3107V
КТ3107Г - модель KT3107G
КТ626А - модель KT626A
КТ814Г - модель KT814G
КТ818А - модель KT818A
Операционные усилители:
К140УД7 (КР140УД708 ) - модель 140UD7
К140УД11 - модель 140UD11
К140УД1408 - модель 140UD1402)
Компараторы:
КР521SA3 - модель 521SA3
КР554СА3 - модель 554SA3

Ну а мы приступаем к 3-й части Мармезонского балета.
Вложения:
Тип файла: rar FAQ_partII.rar (4.75 Мб, 9231 просмотров)

Последний раз редактировалось Halex07; 13.08.2010 в 11:47.
Halex07 вне форума  
Эти 95 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
120147 (22.06.2011), 4712357482 (21.06.2011), 6ap6oc (14.02.2018), abigsam (08.09.2011), alexey-prokofyev (18.07.2011), allmaker (15.05.2012), anatol378 (10.06.2010), andan (01.02.2011), Andriy_O (15.12.2011), andzhar (20.12.2010), ankar (28.06.2016), artman66 (07.01.2012), auara (24.12.2010), AVL (12.01.2013), avr123-nm-ru (17.08.2010), awsvfhbyf (15.11.2010), barmaley2010 (29.04.2015), bi_max (28.09.2011), bozhko (14.08.2010), CERGEI1982 (21.06.2010), chikiloksik (04.03.2011), chkmatulla (16.03.2011), Daddy_Karlo (29.01.2012), DimAlt (22.04.2012), dron2200 (08.08.2011), dsh314 (23.02.2013), dzeer (15.03.2012), enigm (01.08.2010), EvgenWL (12.02.2011), fvtkby (24.09.2011), gbf1 (26.09.2016), GNN (17.08.2010), gres_go (13.03.2011), haruta (10.06.2010), jabberok (17.06.2013), kosig (21.09.2010), kot-69 (11.08.2010), kozeka (20.02.2012), krab223 (21.09.2012), kuksin (20.07.2010), Left Radio (28.11.2010), magioza (02.04.2015), makser1 (24.09.2010), mgvmax (23.06.2010), mihail (10.11.2010), Nemo-123 (01.07.2010), NickerS (31.05.2015), Noks_st (18.09.2019), parcshin (23.04.2011), pav5809 (27.01.2011), Picman (26.08.2010), pifa (13.08.2010), Proff_CP (01.12.2011), ReLe1 (14.08.2011), robika (27.04.2011), sa502 (13.08.2010), serg7799 (12.06.2010), sharip_2000 (22.09.2010), Shurik_kor (16.09.2012), Skovorodka (19.04.2011), strvv (25.02.2011), STTT (11.06.2010), ticksp (24.02.2014), Tischon (21.01.2011), Traan (13.09.2013), vale1 (14.08.2010), valvlad (13.05.2011), Victgr59 (05.09.2010), vik64 (13.10.2010), VO-VAN (21.10.2010), vysvg (02.03.2011), wal7 (23.03.2011), WjaCHSL (15.08.2010), xorkrus (17.09.2013), YUDSV7 (20.08.2011), yurpono (02.12.2011), zhitya (09.12.2010), ZUKK (19.06.2010), Алекс63 (05.06.2023), ДимаК (21.06.2011)
Непрочитано 13.08.2010, 11:46  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только.

FAQ (ЧаВО) по PROTEUS для начинающих и не только.
ЧАСТЬ III. PROTEUS для фанатов.
5. Иерархия проектов Протеуса.
5.1. «Пойми, студент, сейчас к людям надо помягче, а на вопросы смотреть ширше…»(к/ф «Операция Ы и другие приключения Шурика»).
До сих пор мы в основном строили дизайны в ISIS на одном листе проекта. Также мы знаем, что всегда можно добавить дополнительные листы с помощью меню Design =› New Sheet. При этом последующие листы могут иметь отличные от первого форматы. Например, первый лист имеет формат А4, второй – А3, третий – А4, а четвертый – А1. Это так называемый «плоский» проект, поскольку все листы принадлежат к одному уровню. Если рассматривать бумажный аналог, то это как бы один том многотомника. Мы можем листать страницы и переходить с первой на вторую, пятую десятую и назад. В пределах плоского проекта действует глобальная нумерация элементов и цепей (проводов) и шин питания. Все это хорошо, когда наш проект содержит десяток-другой элементов. Но, представим себе, что мы разрабатываем многополосный фильтр или даже просто стереофонический усилитель с двумя идентичными каналами. И что? Будем рисовать одно и то же дважды, трижды и т.д. Нет, конечно. Как и в обычных бумажных вариантах, мы можем структурировать наш проект. Например, основной лист будет содержать только блок схему, с которой будут ссылки на другие листы, содержащие отдельные принципиальные схемы блоков (модулей). Мало того, мы можем применить какие-нибудь нестандартные (пока назовем их так) компоненты, например – датчики, которые тоже будут иметь собственные принципиальные схемы. Программа ISIS позволяет связать все это в единое целое, да еще и заставить работать в виртуальном виде. Количество вложенных уровней иерархии может достигать восьми. Графически это можно представить так, как на рисунке 1 ниже.
Из рисунка следует, что непосредственный переход возможен только между листами верхнего (первого) уровня. Выход на уровень два возможен только со второго и третьего листов, причем с определенных элементов схемы: Sub-Circuit – подсхем (или модулей) и какого-то конкретного компонента собственной разработки листа 3. Ну а переход на третий уровень в данном случае возможен только с Child sheet (дочернего листа) одного из модулей уровня 1 и то в два приема: сначала на дочерний лист уровня 2, а уж с него на третий.
Мы уже пользовались переходами на дочерние листы и обратно, но для тех, кто страдает амнезией, напомню, что переход осуществляется с модуля или компонента щелчком по нему правой кнопкой и выбором опции Goto Child Sheet (или СTRL+C). У элементов, не имеющих дополнительных листов эта опция неактивна (серая). Возврат на родительский лист осуществляется также щелчком правой кнопкой по свободному от элементов и проводов полю дочернего листа и выбором опции Exit to Parent Sheet. Ну и маленькое отступление для поклонников тотального перевода и русифицированных версий. Конечно, Child Sheet дословно переводится как «детский лист». Но согласитесь, звучит это как-то несерьезно. Поэтому, еще с первой версии FAQ, я выбрал для себя такую пару Parent/Child родительский/дочерний – и в дальнейшем использую только ее. Поэтому, если в вашей русификаторе переведено как детский, то это не ко мне. Я свою стратегию изложения материала менять не собираюсь.
К сожалению, открыв чужой проект ISIS, абсолютно невозможно угадать: какое количество уровней в нем заложено, и какие элементы схемы имеют дочерние листы. Если с модулями вопросов не возникает – они просто не могут функционировать без собственных подсхем, то в отношении компонентов этого не скажешь. Одним из моих любимых занятий на заре освоения Протеуса было тщательное изучение посредством клацания правой кнопкой мыши по всем компонентам прилагаемых примеров из папки SAMPLES установленного Протеуса. Поэтому, на будущее возьмите себе за правило при разработке проектов на листах верхних уровней делать пометки (вставлять текстовые скрипты) о том, какие компоненты схемы содержат дочерние листы. Этим Вы облегчите жизнь и себе, открыв проект через год-два, и другим, если будете пересылать проект на сторону. На этом краткий экскурс по иерархии можно закончить. Примеров здесь прикладывать не буду, а просто сошлюсь на некоторые характерные из стандартных SAMPLES, поставляемых с программой.
Schematic & PCB Layout\Features.DSN – в правом верхнем углу листа проекта стереоусилитель с двумя одинаковыми каналами – модулями с синей рамкой. Каждый модуль содержит дочерний лист. Типичный пример использования модулей.
Schematic & PCB Layout\Epe.DSN – многостраничный проект программатора ПЗУ. На втором и третьем листах содержатся модули, имеющие дочерние листы.
Graph Based Simulation\741.DSN – операционник U1 содержит дочерний лист с внутренней структурой микросхемы. Типичный пример полного схематичного аналогового моделирования.
Graph Based Simulation\DAC0808.DSN – микросхема U1 также обладает дочерним листом, но здесь уже смешанное цифро-аналоговое поведенческое (т.е. структура воспроизведена не тотально) моделирование.
Interactive Simulation\Animated Circuits\Osc03.DSN – еще один пример смешанного моделирования таймера 555. На дочернем листе таймера есть пояснения разработчика к модели.
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic_1.gif
Просмотров: 728
Размер:	51.6 Кб
ID:	10919  

Последний раз редактировалось Halex07; 13.08.2010 в 14:12.
Halex07 вне форума  
Эти 8 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
bi_max (28.09.2011), bozhko (22.09.2010), kurzin (17.11.2019), pav5809 (27.01.2011), ReLe1 (14.08.2011), Tischon (21.01.2011), Traan (16.09.2013), ДимаК (21.06.2011)
Непрочитано 13.08.2010, 14:11  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только.

5.2. Sub-Circuit - «коробочки для схем». Подробнее о модулях и их особенностях.
Ну, вот мы и добрались до первого прообраза будущих наших Shematic моделей – модуля или подсхемы (опять для любителей дословной трактовки). Необходимость в применении модулей возникает при использовании в проекте однотипных участков схемы. Поместить модуль в проект очень просто. Выбираем в левом меню режим Subсircuit или, щелкнув правой лапкой мышки по полю листа, выбираем Place =› Sub-Circuit и уже левой кнопкой рисуем модуль нужного размера (Рис. 2 ).
По умолчанию Протеус подставит модулю имя SUB?, которое затем можно изменить, зайдя в свойства модуля двойным щелчком левой или через опцию Properties по правой кнопке мыши. После того, как модуль нарисован, настала пора расставить ему порты ввода/вывода, выбирая их в селекторе. Я расставил все возможные, чтобы Вы имели представление, как они выглядят. Здесь надо учитывать одну особенность Протеуса – порты можно ставить только слева и справа тела модуля, но никак не сверху и не снизу – ISIS Вам просто не даст этого сделать. Выбрав нужный тип порта, наводим указатель на левую или правую окантовку модуля и при появлении перекрестия X щелкаем мышкой для установки. По умолчанию порты не имеют имени, поэтому после расстановки заходим двойным щелчком в свойства каждого порта и присваиваем ему имя. Для портов-шин действует тот же принцип,что и для обычных шин – в квадратных скобках после имени указываются начальный и конечный номера через ДВЕ точки. Еще один принцип, которого рекомендуют придерживаться разработчики: входы размещать слева, а выходы справа. В принципе это не столь криминально, просто общепринято и повышает читабельность схемы, так что если очень хочется, то можно и выходы слева прицепить. Ну вот, собственно и вся процедура размещения модуля в схеме. Дальнейшие действия осуществляются уже на дочернем листе нашего модуля, который становится доступным сразу, как только мы поместили модуль в проект. Для перехода на дочерний лист щелкаем по телу модуля правой кнопкой и выбираем в открывшемся меню опцию Goto Child Sheet.
Вот на этом листе мы и скомпонуем нашу подсхему. В качестве «подопытного кролика» для этого упражнения я решил использовать весьма популярные у нас 8-ми разрядные сдвиговые регистры 74HC595. Возможность последовательной загрузки данных и буферный регистр для их хранения идеально подходят для создания многоразрядной статической индикации с сегментными индикаторами на базе этих микросхем. Тема не нова, и много раз обсуждалась на различных страницах сети, в том числе и на форуме Казус.
Мы здесь рассмотрим создание универсального модуля для Протеуса на основе этих регистров, который затем можно будет перетаскивать из проекта в проект всякий раз, когда нам потребуется вывести информацию на сегментные индикаторы. Применение модуля сократит время на создание проекта и, самое главное, место на основном листе. Итак, поскольку засовывать в модуль один корпус 74HC595 не имеет смысла, их будет два. В этом варианте мы сможем управлять с помощью одного модуля 8-ми разрядным семисегментным индикатором. Поехали…
Открываем новый проект и рисуем модуль. Затем размещаем нужные нам порты. Давайте прикинем: что надо на первом этапе. Входы: для данных – назовем его DATA, тактовый для сдвига – назовем его CLK, для переноса данных в выходной регистр – назовем его LOAD. На первом этапе достаточно, тем более, всегда можно их добавить, что мы и сделаем позже. Теперь поговорим о выходах. Для двух регистров их будет как минимум 16. Если мы будем использовать отдельные порты, то вся выгода по экономии места в проекте теряется. Мы получим вместо двух корпусов один большой модуль с кучей выходов. Давайте спрячем их все в шину – и место не занимает, и доступность сохраняется. А чтобы это было строго по Путински, 8 мух – разрядов в одну, а 8 котлет – сегменты+точка – в другую. И ничто не помешает нам всегда мух с котлетами «замешать». Первоначальный вариант получился как на рисунке 3.
Переходим на Child Sheet и рисуем нашу схему из двух регистров. Для организации взаимосвязи между портами на основном (родительском) листе и схемой на дочернем на последнем используются терминалы из селектора левого меню при выборе режима Terminals Mode. Метки (Labels) терминалам, когда их немного проще присвоить через раскрывающийся список. При этом там будут представлены именно те имена, которые мы присвоили портам на родительском листе (Рис. 4).
Немного остановлюсь на представлении шин на дочернем листе. Их можно сформировать как из отдельных терминалов, как это сделано у меня, так и с помощью шины. Во втором случае шине необходимо присвоить лэйблы проводникам входящим в шину и на один из ее концов посадить шинный терминал с именем, совпадающим с шинным портом родительского листа (Рис. 5).
Первоначальный вариант схемы модуля получился таким, как на Рис. 6.
Однако давайте подумаем – что мы упустили с точки зрения универсальности. Модуль получился уж слишком функционально законченным. А если мне потребуется больше разрядов? Ну, например, захочется использовать 16-ти сегментные индикаторы. Не мешало бы иметь возможность расширения. И она у нас есть – выход Q7’ второго регистра. Поэтому в окончательном варианте я добавил еще и терминал от него, а на родительском листе соответствующий порт для соединения с входом DATA следующего модуля. И еще одно замечание. В реальном устройстве завешивание неиспользуемых входов на питание VCC, конечно-же пришлось бы делать через резисторы, но для симулятора это не принципиально.
Ну, вот и весь процесс создания модуля. Теперь переходим на родительский лист и, предварительно навесив отладочную «мишуру», приступаем к тестированию работоспособности. В качестве отладочных средств на первом этапе очень удобно использовать элементы LOGICPROBE, LOGICSTATE и LOGICTOGGLE из библиотеки Debugging Tools. Навешиваем на соответствующие входы-выходы модуля и запускаем симуляцию (Рис. 7).
Первый же тест показал, что модуль работает. Теперь поговорим о некоторых особенностях применения модулей. Во-первых, обратите внимание, что тестирование я проводил с родительского листа. Как модули, так и модульные компоненты, о которых речь пойдет ниже, не должны содержать элементы индикации на дочернем листе. В противном случае вы рискуете либо получить сообщение об ошибке, либо модуль будет вести себя неадекватно. Поэтому, если вы собираетесь поместить на дочерний лист схему, в работоспособности которой не уверены на все 100%, то лучше отладить ее в отдельном проекте, сохранить как Export Section, а затем импортировать на дочерний лист вашего модуля. Вторая особенность – если продублировать модуль на родительском листе и попробовать запустить симуляцию, то получим ошибку – сообщающую о наличии дубликата имени, т.е. у второго модуля необходимо сменить хотя бы один символ в имени модуля. Кроме того, поскольку используется сквозная нумерация элементов, на дочернем листе второго модуля ISIS автоматически присвоит элементам номера, продолжающие общую нумерацию в проекте. Чтобы этого избежать, можно, находясь на дочернем листе, зайти в свойства листа через меню Design=›Edit Sheet Properties и установить флажок Non-phisical sheet. И третья важная особенность – все изменения, внесенные на дочернем листе одного модуля, автоматически отражаются и на другой модуль, расположенный на этом листе и имеющий одноименное свойство Circuit (схема). Применимо к нашему примеру, я оставил имя схемы CCT001, которое программа ISIS сама присвоила по умолчанию (Рис. 3). Допустим, мы все же решили включить резистор на подтяжку входов MR к питанию. Установив этот резистор в одной Sub-Circuit, зайдите на дочерний лист другой с ССT001, и вы увидите тот же резистор. Ну, вот вкратце все по теме Sub-Circuit. Если я что-то и упустил, то оно всплывет далее, поскольку в развитие темы мы переходим к модульным компонентам, у которых много общего с Sub-Circuit. Во вложении описанный выше пример создания модуля из двух сдвиговых регистров.
Рис. 2, 3, 4.
Рис. 5, 6, 7.
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic_2.gif
Просмотров: 502
Размер:	10.2 Кб
ID:	10946   Нажмите на изображение для увеличения
Название: Pic_3.gif
Просмотров: 605
Размер:	8.2 Кб
ID:	10947   Нажмите на изображение для увеличения
Название: Pic_4.gif
Просмотров: 526
Размер:	34.8 Кб
ID:	10948  

Нажмите на изображение для увеличения
Название: Pic_5.gif
Просмотров: 422
Размер:	10.0 Кб
ID:	10949   Нажмите на изображение для увеличения
Название: Pic_6.gif
Просмотров: 451
Размер:	17.0 Кб
ID:	10950   Нажмите на изображение для увеличения
Название: Pic_7.gif
Просмотров: 492
Размер:	21.4 Кб
ID:	10951  

Вложения:
Тип файла: rar Shift_16.rar (14.4 Кб, 907 просмотров)

Последний раз редактировалось Halex07; 13.08.2010 в 23:57.
Halex07 вне форума  
Эти 8 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
bozhko (14.08.2010), parcshin (23.04.2011), ReLe1 (14.08.2011), Tischon (21.01.2011), Traan (16.09.2013), wellcom (21.06.2013), ДимаК (21.06.2011)
Непрочитано 13.08.2010, 23:58  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только.

5.3. Модульные компоненты – более продвинутая разновидность модулей. Сохранение подсхемы во внешнем файле для дальнейшего использования.
Конечно, использование Sub-Circuit значительно облегчает жизнь разработчику, но согласитесь, что все равно не очень удобно таскать подсхемы из проекта в проект. А если модуль создан давно, то и разыскать его в нагромождении файлов проектов бывает сложнее, чем создать новый. Поэтому Sub-Circuit наиболее удобны тогда, когда одинаковые участки схем встречаются в одном проекте. А как быть если мы хотим создать модуль для длительного и частого применения? Выход есть. Если мы заглянем в свойства любого компонента, взятого из библиотеки ISIS, то обнаружим там возможность подключения иерархического модуля, т.е. все того же дочернего листа (Рис. 8 ).
Причем данная опция присутствует как у существующих в библиотеках компонентов, так и у вновь созданных. Вот этим мы сейчас и воспользуемся. Чтобы сохранить преемственность, превратим наш модуль, созданный в предыдущей главе, в модульный компонент. Для начала создадим графическую модель нашего регистра. Делается это так же, как мы рассматривали в предыдущей части FAQ на примере ОУ. Как и там, рисуем тело компонента, расставляем выводы (pins) и присваиваем им имена. Номера можно и не присваивать – ведь это не реально существующий в природе компонент. Я опять воспользуюсь возможностью сделать выход шинами, чтобы сократить количество отдельных выходов. Итак, в конечном итоге в проекте получилась следующая графика – Рисунок 9.
Пока компонент еще не создан, вы можете это заметить по перекрестиям на концах выводов компонента, к которым у готовой модели будут подключаться проводники. Ну, дальше ничего нового не предвидится, обводим все это творчество мышкой, чтобы выделить и … Make Device. На первой вкладке процедуры присваиваем компоненту имя и, если есть желание, то префикс. Конечно же, надо позаботиться, чтобы имя было уникальным и не совпадало с уже имеющимися в библиотеке компонентами. Естественно, что корпуса (Packagings) на второй вкладке и какие либо дополнительные свойства на третьей (Component Properties & Definitions) мы нашей графической модели не присваиваем. По умолчанию, как я уже неоднократно подчеркивал, ISIS предложит сохранить модель в USRDVC. Пусть так и будет, чтоб не путаться. После того, как модель создана она автоматически появится в селекторе компонентов открытого проекта, ну и конечно занесется в библиотеки ISIS в ту категорию, которую вы присвоили на последней вкладке Make Device.
Теперь вытаскиваем вновь созданный компонент из селектора в поле проекта, заходим в его свойства и ставим галочку Attach hierarchy module. Вот теперь по меню правой кнопки мыши у нас для компонента стал активным Goto Child Sheet. Дальнейшие действия ничем не отличаются от процедуры создания модуля. Единственное отличие состоит в том, что в раскрывающемся списке имен терминалов на дочернем листе будут появляться не имена портов, а имена выводов (пинов) нашей графической модели.
Возвращаемся на основной лист, навешиваем к модели тестирующие компоненты и проверяем работоспособность. Ну, казалось бы, все – модель создана и функционирует. Но пять проблемы с перетаскиванием. Ведь внутренняя схема модели находится на дочернем листе. В ISIS предусмотрено решение и этой проблемы. Вспомните, как мы заходили в свойства дочернего листа и ставили галочку Non-phisical sheet. А ведь там имеется и еще один флажок – External .MOD file?. Вот он-то нам и нужен. Устанавливаем этот флажок и давим ОК (Рис. 10). Теперь в папке с проектом появится файл SHIFT16.MOD. Этот файл в сжатой форме содержит нашу схему с дочернего листа.
Дальше придется воспользоваться избитой фразой из телепередачи «Телемагазин на диване»: «Но и это еще не все… в придачу, совершенно бесплатно…» нам необходимо снова провести процедуру Make Device для нашего компонента. Задержимся на первой вкладке (Рис. 11 ).
Раньше мы не обращали внимания на пункт External Module, а вот теперь он нам пригодится. Вписываем туда полное имя с расширением нашего файла и проходим процедуру Make Device до победного конца. Больше ничего нигде не меняем. Ну и на финальный вопрос Протеуса заменить ли существующую модель ответим утвердительно. Вот теперь наш модульный компонент полностью готов. Тестируем его как и в предыдущем разделе или автоматизировав процесс (Рис. 12 ). Здесь я добавил парочку инверторов и цифровой генератор и закольцевал два модуля. Получилась простенькая бегущая строка (Эх, вспомнил молодость – свой курсовой проект на 22(!!!) корпусах 133ТМ2 – висела у деканата и высвечивала «Вечерний радиоприборостроительный факультет»).
Ну и как там, в телемагазине… не все, есть еще один нюанс. Наш файл .MOD по-прежнему лежит в папке с проектом, т.е. доступен только оттуда. Если мы хотим оставить наш компонент для использования в других проектах, его надо переложить в папку MODELS установленного Протеуса. Если этого не сделать, то достав компонент из библиотеки и запустив симуляцию, Вы либо получите сообщение об отсутствии нужного файла .MOD, либо просто на выходе компонента не будет никаких сигналов.
На этой особенности остановимся подробнее, поскольку далее в процессе изложения материала я буду выкладывать примеры, новые компоненты в которых работать будут, но для сохранения их у себя необходимо будет проделывать некоторые действия, в частности процедуру Make Device, ну и перекладывание файлов моделей в папку MODELS программы. Сейчас это MOD, далее будут MDF и LML. Это особенность программы. Файлы моделей ISIS сначала ищет в папке с открытым проектом, если их там нет, то в папке MODELS Протеуса, а уж если и там не находит, то посылает нас, мягко говоря, в «эротический круиз». Поэтому, даже просто открыв приложенные примеры, вы обнаруживаете работающие проекты – там в самом проекте сохранена модель и графическая и для симуляции, но в вашей копии Протеуса никаких изменений не происходит, пока вы не произведете вышеуказанных действий. Поскольку я такие учебные модели сохраняю у себя в библиотеке USRDVC, которую периодически очищаю от мусора, то рекомендую тоже проделывать и Вам.
Ну вот мы и сделали последний шаг к схематичным моделям. Пора приниматься за них.
Рисунки 8, 9, 10.
Рисунки 11, 12.
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic_8.gif
Просмотров: 452
Размер:	47.4 Кб
ID:	10962   Нажмите на изображение для увеличения
Название: Pic_9.gif
Просмотров: 389
Размер:	31.1 Кб
ID:	10963   Нажмите на изображение для увеличения
Название: Pic_10.gif
Просмотров: 524
Размер:	41.7 Кб
ID:	10964  

Нажмите на изображение для увеличения
Название: Pic_11.gif
Просмотров: 427
Размер:	42.1 Кб
ID:	10965   Нажмите на изображение для увеличения
Название: Pic_12.gif
Просмотров: 527
Размер:	41.2 Кб
ID:	10966  
Вложения:
Тип файла: rar Mod_Component.rar (16.0 Кб, 864 просмотров)

Последний раз редактировалось Halex07; 14.08.2010 в 09:41.
Halex07 вне форума  
Эти 10 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
bozhko (14.08.2010), haruta (20.08.2010), kuksin (15.08.2010), pav5809 (27.01.2011), ReLe1 (14.08.2011), saba-2 (14.08.2010), Tischon (21.01.2011), Traan (16.09.2013), ДимаК (21.06.2011)
Непрочитано 14.08.2010, 10:16  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

5.4. «Шаг вперёд, два шага назад» (В.И. Ленин). Или опять ОУ – на этот раз идеальный и его Shematic model. Введение в Model Definition Files (MDF).
Ну что это за симулятор без идеального операционного усилителя. В MicroCAP есть, в Multisim-е есть и в OrCAD тоже… A ISIS? Да тоже есть, только приберег я его до этого момента, потому что это не встроенная модель как в вышеперечисленных программах, а схематичная – на основе аналоговых примитивов. Для тех, кто подзабыл, ну или просто не знал, напомню определение идеального операционного усилителя. Под идеальным операционным усилителем подразумевается ОУ, имеющий бесконечно большой коэффициент усиления по напряжению в бесконечно широкой полосе частот, а также бесконечно большое входное и бесконечно малое выходное сопротивления. Еще у него бесконечно большое подавление синфазных помех, нулевой температурный дрейф. Конесно, в природе такое супер-творение не встречается, но в моделировании используется часто. Поэтому идеальный ОУ и включен в большинство пакетов моделирования. В ISIS модели идеальных ОУ расположены в отдельной подкатегории Ideal в библиотеке Operational Amplifiers (Рис. 13). Мы рассмотрим классический трехвыводный ОУ – прямой и инверсный входы и единственный выход. Модель этого ОУ называется OPAMP, и в окне предпросмотра можно убедиться, что это Schematic Model.
Для начала достанем наш OPAMP из библиотеки и убедимся в его работоспособности и в том, что он отвечает требованиям идеального ОУ. Конечно, если мы начнем его тестировать во всем «бесконечном», то получим массу ошибок – возможности программы и компьютера не безграничны. Поэтому ограничимся неинвертирующим включением с коэффициэнтом усиления 2 и полосой частот до 1 ГГц. Желающие могут протестировать и с другими Ку, изменив соотношение (R1+R2)/R2. Результаты представлены в TEST_OPAMP/IDEAL.DSN и на Рис.14. Ну что, похоже действительно –«идеальный».
Теперь займемся реинкарнацией схематичной модели OPAMP, ведь всегда интересно посмотреть – что там внутри. Для этого нам потребуется утилита GETMDF.EXE, с которой мы уже знакомы по п.4.12 предыдущего раздела FAQ и файл библиотеки LML, содержащей наш MDF. MDF –расшифровывается как Model Definition File (файл назначений модели). Он содержит всю информацию о входящих в модель компонентах и их связях. Обратите внимание, что MDF модели в библиотеке LML называется не OPAMP, а OA_3PIN. Обнаружить это можно тремя способами.
Во-первых, в окне Preview (Рис. 13) имя MDF стоит в скобках.
Во-вторых, если модель уже стоит в проекте, входим в Properties и ставим галку Edit all properties as text. Обнаруживаем: {MODFILE=OA_3PIN}
Ну и третий, экзотический способ. Можно запустить утилиту Make Device для OPAMP и дойти до третьей вкладки Component Properties & Definitions. Там смотрим значение по умолчанию (Defaut Value) для MODFILE, а затем нажимаем Cancel.
В любом случае нам необходимо найти библиотеку с OA_3PIN в папке MODELS Протеуса. Тут уже каждый действует в меру своих наклонностей и навыков. Я, например, как приверженец Total Commander с незапамятных времен, использую его возможности поиска, потому что на дух не выношу стандартный «собачий» поиск Винды, да и не находит он при стандартных условиях поиска нужный файл – только что проверил. Ну, уж если совсем никак, то можно последовательно открывать каждый файл с расширением .LML (их в версии 7.6 всего 21) в текстовом редакторе и искать в нем текст OA_3PIN. Для тех же, кто использует Total Commander или аналогичные файловые менеджеры вводим в условиях поиска файл *.LML с текстом OA_3PIN и в секунды находим нужный нам ANALOG.LML. Далее все как в п.4.12. Копируем этот файл и утилиту GETMDF.EXE в отдельную папку и запускаем ее из консоли следующей командой:
GETMDF.EXE –L=ANALOG.LML –A
Можно и не указывать расширения:
GETMDF –L=ANALOG –A
Не забудьте про пробелы перед ключами, начинающимися с тире. В результате (вот чем мне нравится эта утилита!) мы получим более ста отдельных файлов с расширением MDF, среди которых и нужный нам файл OA_3PIN.MDF. Все остальное в помойку, а его мы будем рассматривать, открыв любым редактором текста. Для наиболее ленивых пользователей он приложен в папке MDF_FILES. Там же еще несколько файлов моделей ОУ и компараторов из этой библиотеки для самостоятельного изучения.
Откроем OA_3PIN.MDF в текстовом редакторе и познакомимся с его содержимым. Начало файла нас мало интересует – там информация о создателях и дате создания и модификации. Нас же интересуют разделы начинающеиеся с символа звездочки.
Раздел свойств *PROPERTIES содержит пять свойств:
Код:
*PROPERTIES,5    
GAIN=1E6
VNEG=-15
VPOS=15
ZI=1E8
ZO=1
Мне кажется, даже непосвященному легко догадаться, что GAIN – усиление, VNEG и VPOS – отрицательное и положительное напряжения питания, ZI и ZO – соответственно входное и выходное сопротивления ОУ.
Далее следует пустой раздел назначений по умолчанию для модели – *MODELDEFS,0.
Следующий раздел *PARTLIST интересует нас особо, поскольку в нем перечислены все компоненты (примитивы), входящие в схему модели:
Код:
*PARTLIST,8    
D1,DIODE,,N=100m,PRIMITIVE=ANALOG,TEMP=27
D2,DIODE,,N=100m,PRIMITIVE=ANALOG,TEMP=27
R1,RESISTOR,‹ZO›,PRIMITIVE=PASSIVE
R2,RESISTOR,‹ZI›,PRIMITIVE=PASSIVE
R3,RESISTOR,‹ZI›,PRIMITIVE=PASSIVE
V1,VSOURCE,‹VPOS›-100m,PRIMITIVE=ANALOG
V2,VSOURCE,‹VNEG›+100m,PRIMITIVE=ANALOG
VCI1,VCISOURCE,‹GAIN›/‹ZO›,PRIMITIVE=PASSIVE
Всего примитивов 8 – число в заголовке раздела после запятой. Два диода D1 и D2 с жестко прописанным коэффициентом инжекции N=100m. Тройка резисторов R1, R2 и R3 с сопротивлениями ZO и ZI соответственно, которые (!!!) численно прописаны выше в свойствах. Далее следуют два примитива источников напряжения VSOURCE, обеспечивающие питание модели и также численно прописаны в PROPERTIES. Они понижены от заданных по умолчанию на 100 милиВольт. Ну и завершает список «главное действующее лицо» - управляемый напряжением источник тока VCISOURCE с коэффициентом передачи GAIN/ZO – это и есть коэффициент усиления ОУ.
На что в списке компонентов хотелось бы обратить внимание.
• Использованы только примитивы. Это не обязательное правило, но очень существенное. Вот свежий бытовой аналог. Только что подошла жена и гонит в магазин за продуктами. Вход в магазин (повернулся и посмотрел в окно) навскидку 200м по прямой. У меня два варианта: «примитивно» дотопать напрямую ножками или поехать на Хендае, который торчит под окном у подъезда, но при этом придется сделать небольшой «крюк почета» вокруг газона и детской площадки, да еще заводиться, с кем-то разъезжаться на двух пересечениях дорог и парковаться у магазина. Делайте вывод – что быстрее. Вот так и со схематичными моделями – примитивно, но быстро или из готовых библиотечных компонентов, которые отягощены своими, подчас противоречащими нужным свойствами.
• Те свойства, которые прописаны пеменными в разделе PROPERTIES присваиваются компонентам в угловых скобках (знаки больше меньше). Здесь уместно и применение простых формул, как с коэффициентом у VCI1 и напряжениями питания, в которых из VPOS минусуется и к VNEG плюсуется 100mV.
• Поскольку ZO стоит в знаменателе дроби оно не должно быть равно нулю. Об этом следует помнить, задавая пределы изменений величин свойств на третьей вкладке Make Device. Для данного параметра надо будет установить вариант Positiv, NonZero.
Далее идет раздел *NETLIST, содержащий непосредственно список цепей нашей схематичной модели. Список совсем небольшой, всего 6 цепей и мы уже рассматривали – как такой список формируется, когда знакомились с Netlist Compiler в соответствующем разделе п.4.4. Просто еще раз напомню и укажу некоторые особенности. Узлы, не имеющие внешних связей, начинаются со знака решетки (в Протеус эквивалентен символу №), далее следует пятизначный списочный номер цепи и через запятую количество подключений к узлу. В следующих строчках перечислены непосредственно подключения. Например, к узлу #00001 подключены две цепи: анод диода D2 и вывод + источника V2. Те узлы, которые имеют внешние выводы компонента (на дочернем листе терминалы) начинаются с имени этого вывода (терминала). Например, неинвертирующий вход +IP имеет 4 подключения, а именно: два входных терминала +IP и POS_IP (это для универсальности в графической модели неинвертирующий вход можно обозвать и так и так), вход P источника VCI1 и вывод 1 резистора R3.
Код:
*NETLIST,6    
#00000,2
D1,PS,K
V1,PS,+

#00001,2
D2,PS,A
V2,PS,+

OP,5
OP,OT
VCI1,PS,+
R1,PS,1
D1,PS,A
D2,PS,K

+IP,4
+IP,IT
POS_IP,IT
VCI1,PS,P
R3,PS,1

-IP,4
-IP,IT
NEG_IP,IT
VCI1,PS,N
R2,PS,1

GND,7
GND,PT
V1,PS,-
V2,PS,-
R3,PS,2
R2,PS,2
VCI1,PS,-
R1,PS,2
Ну, а завершает файл раздел внешних шлюзов, который как всегда пуст - *GATES,0.
Приступаем к воссозданию модели идеального трехвыводного ОУ. Для начала нам потребуется графическая модель, которую можно создать самостоятельно, а можно и просто Decompose существующую и убрав все лишнее – текстовый скрипт. На всякий случай убедимся, что наименования выводов соответствуют тому, что мы видели в MDF. На Рис. 15 я их слегка раздвинул, и сделал Name видимым для наглядности.
Теперь сохраняем нашу графическую модель Make Device с собственным именем, например MY_OPAMP в USRDVC. Пока я ей никаких свойств и уж тем более корпусов не присваивал, да корпус идеальному ОУ и не нужен. Ну и теперь, как и для модульного компонента, присоединим к ней дочерний лист. После перехода на дочерний лист, рисуем схему, сообразуясь с разобранным выше MDF. Набираем нужные примитивы из библиотеки Modelling Primitives и соединяем их между собой в соответствии со списком цепей. В результате этого довольно нудного и кропотливого творчества у меня получилась на дочернем листе следующая схема (Рис. 16):
Вы можете заметить, что вместо числовых параметров значений для компонентов подставлены переменные и формулы из раздела PARTLIST MDF-файла. Чтобы все это заработало и Протеус не ругался на отсутствие числовых (numeric) значений у компонентов желтыми «горчичниками», на дочернем листе необходимо поместить текстовый скрипт (левое меню Text Script Mode) со значениями, принятыми по умолчанию. Содержание скрипта будет следующим:
Код:
*DEFINE
GAIN=1E6
VNEG=-15
VPOS=15
ZI=1E8
ZO=1
Фактически я полностью скопировал раздел *PROPERTIES из фала MDF, только заменил слово PROPERTIES словом DEFINE. Ну вот, теперь можно вернуться на основной родительский лист проекта и попробовать протестировать – что у нас получилось. Если наш модульный компонент (а ведь пока это практически он) ведет себя, как и его прототип OPAMP из библиотек Протеуса, то все мы сделали правильно. Реинкарнация схемы модели из MDF состоялась. Но пока мы не сделали ничего сверхестественного, ведь это тот же модульный компонент с дочерним листом, как и в предыдущем параграфе.
Все, хватит испытывать терпение публики – делаем MDF. Почему-то все считают, что это очень сложно и доступно только корифеям. А между тем, процедура очень проста. Обязательно уходим вновь на дочерний лист – это важно, поскольку компилятор работает именно с активного листа. Теперь заходим в верхнее меню Tools, где выбираем опцию Model Compiler. ISIS тут же предложит сохранить файл MDF с названием как у нашего дизайна в папке MODELS. Но меня это не устраивает. Зачем захламлять папку учебными моделями, достаточно сохранить ее в папке с нашим проектом. Ведь при запуске симулятора сначала модель все равно ищется в папке проекта. Да и имя лучше изменить на одноименное с моделью, или подходящее по смыслу. Сохраняю, как IDEAL.MDF. Вот теперь можно открыть этот файл в текстовом редакторе и сравнить с исходным OA_3PIN.MDF.
Конечно-же полного совпадения не будет. Во-первых, данные в шапке файла будут соответствовать текущим системным, ведь файл только что создан. Во-вторых, наш скрипт *DEFINE благополучно превратился в *PROPERTIES, как и в исходном файле. Вот как раз он и *PARTLIST должны полностью совпадать с прототипом. Если это не так, то где-то вы что-то упустили. А вот *NETLIST по содержанию должен совпадать, а по порядку следования узлов и цепей может и отличаться. Обусловлено это следующим. Вы не можете точно воспроизвести порядок действий первоначального разработчика, т.е. порядок прорисовки им схемы на дочернем листе. Поэтому может оказаться, что цепь с номером #00001 в вашем MDF окажется с номером #00005 или #00013. Кроме того, у двухполюсных компонентов: резисторов, конденсаторов, катушек наименования выводов скрыты и обычно просто носят цифровой вид 1 и 2. Для нас и для симуляции абсолютно без разницы первый или второй вывод подключены к данному узлу схемы, но компилятор MDF воспроизводит это буквально. Поэтому там, где в исходном MDF стоит, например, R2.PS,1 в новом файле окажется R2.PS,2. Соответственно надо убедиться, что на его место в другом узле угодил первый вывод. Вот такие нюансы надо учитывать, когда вы пытаетесь полностью восстановить схему по чужому MDF. Еще раз подчеркну, что на работоспособности модели такие перестановки абсолютно не сказываются.
Итак, файл MDF создан, проверен, но пока лежит без дела. У нас по-прежнему висит приделанным дочерний лист, с которым и работает наша модель. Пришла пора вновь запускать Make Device. Нам все чаще и чаще предстоит к ней обращаться. На третьей вкладке через кнопку New добавляем нашей модели свойство MODFILE и прописываем ему в значении IDEAL.MDF (Рис. 17). В принципе, расширение можно было и не указывать, ISIS все равно для этого свойства будет искать именно MDF, но на первых порах лучше перестраховаться. Пока больше ничего не добавляем, будем последовательными и не станем торопить события. Вновь доходим до конца процедуры и давим OK.
Теперь, если мы вытащим из селектора модель MY_OPAMP в поле проекта, то мы уже не сможем попасть у нее на дочерний лист, поскольку при добавлении IDEAL.MDF ISIS лишил нас такой возможности. Но зато мы получили свою первую Schematic model. Если перетащить файл IDEAL.MDF в папку MODELS программы, то мы можем ее использовать в любом другом проекте, просто добавив в него MY_OPAMP из библиотек Протеуса. Но вот беда, свойства то у него можно менять только в окне Other Properties, набирая вручную. А у прототипа OPAMP они присутствуют в виде набора дополнительных окон. Делать нечего, придется научиться и этому «фокусу». Вперед, на третью вкладку Make Device! Конечно-же, в списке стандартных по кнопке New мы их не найдем. Ведь для каждой модели такой набор может отличаться. Поэтому там мы выбираем Blank Item (Пустой пункт) и набираем нужные нам параметры вручную. Давайте добавим для примера усиление, а в добавке остального можете попрактиковаться сами. Процесс приведен на Рис. 18.
Итак, рассмотрим подробно.
• В графу Name заносим наименование нашего параметра так, как он выглядел у нас на дочернем листе и в MDF, т.е. для усиления это будет GAIN, а например, для положительного питания VPOS;
• В графу Description - краткое описание свойства. Эх, порадую поклонников русификаций, здесь уместен даже русский язык, и чтобы доказать я набрал Коэф-нт усиления;
• В графе Type выбираем тип значения нашего свойства. Поскольку он достаточно большой – выбираем Float (c плавающей запятой);
• В графе Limits выбираем ограничения, которые будет контролировать ISIS для нашего значения. Наше усиление должно быть Positive, Non-Zero (положительным, не равным нулю). При этом окна минимума и максимума не активны;
• В следующей графе Type, одноименной с той что двумя этажами выше выбирается как будет отображаться наше свойство: Normal – отображается с окном доступным для изменения, а если поставить, например, ReadOnly– то менять мы его уже не сможем, окно будет серым.
• В графе Default Value задаем численное значение нашего свойства 1E6 (миллион);
• Ну и последняя графа Visibility определяет, будет ли видно наше свойство под графической моделью при добавлении ее в проект.
Завершив процедуру Make Device до конца, в Properties нашей модели мы увидим следующую картинку (Рис. 19).
Аналогичным способом добавляются и остальные свойства модели, причем их можно было добавить и сразу все в одном проходе Make Device.
Подведем итог вышеизложенному материалу и, наконец, распрощаемся надолго с аналоговыми моделями, потому что нас ждет новая тема создания цифровых и смешанных схематичных моделей.
1. При использовании одинаковых участков схем в одном проекте проще и быстрее создать модули Sub-Circuit, однако для долговременного использования лучше подходят модульные компоненты.
2. Изучение чужих файлов MDF-компонентов дает нам возможность понять принципы построения схематичных моделей, обнаружить недокументированные свойства и применить их для создания собственных моделей. Труд этот кропотливый и требует терпения и внимательности для достижения нужных результатов.
3. При создании собственных схематичных моделей с компонентов лучше всего подходят примитивы, т.к. наименее нагружают компьютер и тормозят симуляцию.
4. При создании любых компонентов все «активные» элементы не должны располагаться на дочернем листе.
5. MDF-файлы или MOD-файлы должны располагаться либо в папке с разрабатываемым проектом, либо в папке MODELS программы Протеус, чтобы быть доступными симулятору при запуске.
6. Поскольку мы создавали идеальную модель, мы воспользовались встроенными источниками напряжения, при моделировании реальных компонентов потребовались бы выводы питания у графической модели, т.е. как у той модели, что мы делали для SPICE.
На этом пока все по этой теме. Во вложении в папке OPAMP_REMAKE процесс воссоздания модели, а в папке MY_OPAMP_MDF создание схематичной модели MY_OPAMP с MDF.
Рисунки 13, 14, 15.
Рисунки 16, 17, 18.
Рисунок 19.
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic_13.gif
Просмотров: 448
Размер:	57.7 Кб
ID:	11056   Нажмите на изображение для увеличения
Название: Pic_14.gif
Просмотров: 440
Размер:	60.5 Кб
ID:	11057   Нажмите на изображение для увеличения
Название: Pic_15.gif
Просмотров: 335
Размер:	5.8 Кб
ID:	11058  

Нажмите на изображение для увеличения
Название: Pic_16.gif
Просмотров: 493
Размер:	29.6 Кб
ID:	11059   Нажмите на изображение для увеличения
Название: Pic_17.gif
Просмотров: 418
Размер:	16.1 Кб
ID:	11060   Нажмите на изображение для увеличения
Название: Pic_18.gif
Просмотров: 411
Размер:	15.2 Кб
ID:	11061  

Нажмите на изображение для увеличения
Название: Pic_19.gif
Просмотров: 353
Размер:	9.8 Кб
ID:	11062  
Вложения:
Тип файла: rar Ideal_OPAMP.rar (72.2 Кб, 995 просмотров)

Последний раз редактировалось Halex07; 17.08.2010 в 07:54.
Halex07 вне форума  
Эти 10 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
bozhko (22.09.2010), haruta (20.08.2010), parcshin (24.04.2011), pav5809 (27.01.2011), ReLe1 (14.08.2011), Tischon (21.01.2011), Traan (16.09.2013), YUDSV7 (20.08.2011), ДимаК (21.06.2011)
Непрочитано 17.08.2010, 07:55  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: FAQ (ЧаВО) по PROTEUS для начинающих и не только

6. Создание схематичных цифровых (Digital) и смешанных (Mixed) моделей.

6.1. Цифровые, аналого-цифровые и цифро-аналоговые примитивы и их свойства.
Если для создания аналоговых схематичных моделей необходимы аналоговые примитивы, которые мы подробно рассмотрели в предыдущей части FAQ, то для создания цифровых моделей используются цифровые, которые значительно проще и во много раз быстрее работают. Вся информация по этим примитивам доступна в HELP Протеуса ProSPICE Primitives в разделе Digital Modelling Primitives по цифровым и Mixed Modelling Primitives по аналого-цифровым и цифро-аналоговым примитивам. Я не стану здесь рассматривать каждый вариант также подробно, как для аналоговых, поскольку у большинства у них набор свойств и параметров почти совпадает. Нам необходимо усвоить общую тенденцию формирования названий свойств и тогда в любой момент вы сможете извлечь это из собственной памяти, а если есть сомнения, то подсмотреть в HELP. Помощь по конкретному элементу всегда доступна непосредственно из окна проекта. Есть как всегда два варианта попадания в HELP: щелкаем по элементу правой кнопкой мыши и выбираем опцию Display Model Help или входим в окно Edit Component и там нажимаем кнопку Help справа. Все цифровые и смешанные примитивы располагаются в том же разделе библиотек Протеуса, что и аналоговые, но разбиты по нескольким суб-категориям (Рис. 20).
Если со всевозможными сложными по структуре компонентами вопросов не возникает, то по элементарной логике необходимы некоторые пояснения. Для примера на Рис. 21 я поместил «разобранный» элемент двухвходового И у которого включил подсветку наименований выводов и обычный D-триггер, у которого имена и так уже включены. Итак, у любого логического элемента входы имеют имена D0, D1 и т.д., а выход именуется Q. Вот это и важно усвоить, чтобы понять следующий материал.
Зайдем в вышеупомянутый HELP, например для той же элементарной логики - раздел The Standard Gate Models. Нас интересуют в первую очередь временные параметры. Я полностью приведу их здесь.
[HTML]Time Type From/To Edge Default Notes
TDLHDQ Delay D# =› Q L =› H 0
TDHLDQ Delay D# =› Q H =› L 0
TGQ Glitch Any =› Q Pulse TDxxDQ[/HTML]
По сути именно они определяют быстродействие логического элемента той или иной серии микросхем: ТТЛ, КМОП или ЭСЛ. Давайте попробуем расшифровать ту абракадабру, которая находится в первом столбце, применив элементарные знания английского языка.
Возьмем, например, TDLHDQ. Раскладываем: Time Delay – временная задержка; Low – низкий; High – высокий; D – это вход ЛЭ; Q – выход. А теперь, как персонаж Крамарова из «Джентльменов удачи», произнесем это на нормальном, гражданском языке: «Временная задержка передачи переднего фронта сигнала со входа на выход логического элемента». Проверяем себя по столбцам. Действительно: во втором столбце тип указан Delay – задержка, в третьем From/To (от… / к…) указано от D с решеткой (напомню, что в Протеусе решетка – это номер), в четвертом Edge (фронт) указан с L на H, т.е. передний с 0 к 1, ну и значение по умолчанию указано 0, т.е. задержка в примитиве полностью отсутствует. Аналогично можно разобрать и вторую строку, только там речь идет о заднем фронте, поскольку стоит сочетание HL.
Для третьего параметра Time Glitch Q переходная задержка импульса с любого (Any) из входов на выход значение по умолчанию жестко связано с первыми двумя и самостоятельно изменяется в зависимости от них, поэтому на нем останавливаться особо не будем.
А вот вариации первых двух в зависимости от типа логики и входа элемента нам будут встречаться довольно часто. Например, у того же D-триггера мы встретим параметры TDLHCQ или TDSQ. Нетрудно догадаться по аналогии, что первый из них временная задержка передачи переднего фронта со счетного входа (английское Clock) на выход Q, а вторая со входа предустановки S. Для элементов с третьим состоянием в аббревиатуре сокращения появится символ Z (например, TDLZOQ). Надеюсь, общая тенденция построения Протеусной «фени» для временных параметров ясна, и в дальнейшем не вызовет у вас затруднений, тем более, что всегда можно заглянуть в HELP. Но, забегая вперед, отмечу, что в большинстве случаев все прочие задержки привязаны по умолчанию к первым двум, которые мы рассмотрели. Поэтому, если они не оговорены особо, то и изменяются автоматически вместе с TDLHDQ и TDHLDQ.
Теперь рассмотрим несколько свойств, которые разбросаны по всему HELP, а иногда и не описаны, но представляют при моделировании определенный интерес.
INIT – начальное состояние. В зависимости от типа элемента при старте симуляции переводит его в определенное состояние. Например, если для триггера в окне Other Properties свойств записать строку INIT=1, то при старте он окажется «взведенным», т.е. на выходе Q будет 1, на !Q будет 0. Для счетчиков или сдвиговых регистов это свойство устанавливает начальное состояние счетчика (Рис. 22).
ARESET и ALOAD – еще два свойства, присущих примитивам счетчиков и регистров. Первое из них разрешает асинхронный сброс, а второе асинхронную загрузку. По умолчанию оба равны FALSE, для разрешения записываем, например сброс – ARESET=TRUE.
LOWER и UPPER – для примитивов счетчиков позволяют установить соответственно нижний и верхний предел счета. По умолчанию нижний предел 0, а верхний 2n-1, где n –число разрядов. Например, если для примитива восьмиразрядного счетчика на Рис. 22 записать UPPER=10, то мы превратим его в десятичный счетчик.
INVERT – это свойство позволяет проинвертировать состояние любого входа/выхода цифрового примитива. Например, если для примитива D-триггера (Рис. 21) записать INVERT=SET,RESET (обратите внимание, что после запятой перед RESET пробел отсутствует!!!), то асинхронная установка/сброс триггера будут производиться не логическими единицами, а логическими нулями на соответствующих входах. Для счетного входа такая запись означает изменение установочного фронта импульса, т.е. если устанавливался по переднему, то будет устанавливаться по заднему.
SCHMITT – недокументированное свойство, в HELP нигде не описано. Позволяет придать входам логического элемента свойства порогового элемента с гистерезисом переключения – триггера Шмитта. У триггеров Шмитта, например 40106, 4093 включено по умолчанию. В большинстве случаев помогает для обычных логических элементов использовать их в качестве типовых RC-генераторов, т.к. типовые схемы генераторов на логических элементах в ISIS напрочь отказываются работать. Объясняется это тем, что в реальных элементах используются как раз аналоговые свойства входов, которые в моделях не реализованы. Записывается свойство так: SCHMITT=D0 (включить свойство триггера Шмитта для входа D0).
Еще ряд свойств, присущих отдельным цифровым примитивам мы рассмотрим позже, в ходе их использования для построения схематичных моделей.
А теперь поясню – почему мы здесь же будем рассматривать и некоторые свойства смешанных аналого/цифровых примитивов. Ряд их свойств используется ProSPICE и для цифровых моделей, чтобы придать им большее сходство с реальными компонентами. Здесь мы познакомимся с наиболее значимыми, которые пригодятся нам в дальнейшем, а остальные рассмотрим по мере изучения моделей.
• Аналого-цифровые свойства (раздел HELP Mixed Mode Modelling Primitives =› ADC Interface Object Model):
Здесь сразу же хотелось бы обратить внимание на то, что в отличие от чисто цифровых аналоговый вход элемента объявляется как A, а цифровой выход как D, забегая вперед, для цифр-оаналоговых с точностью до наоборот – вход D, выход A.
VTL и VTH – расшифровываются как Voltage Threshhold (порог переключения по напряжению) соответственно для низкого – L и высокого – H уровня. Могут записываться как в абсолютных значениях, например, VTL=0.6 – нижний порог 0,6В, так и в процентах к питающему напряжению VTH=70% - верхний порог переключения 70% от напряжения питания.
VLH и VHHVoltage Low Hysteresis и Voltage High Hysteresis – соответственно гистерезис переключения с неопределенного на низкий и с неопределенного на высокий уровни. Если пороги заданы в процентах, то и гистерезисы должны задаваться в процентах, а если VTL и VTH заданы в абсолютных единицах, то и гистерезисы должны быть прописаны в них. Обратите внимание, что установка VLH и VHH в нули может привести к потере сходимости вычислений, т.е. ошибкам симулятора и перегрузке процессора компьютера.
Типичные значения по умолчанию: VTL=30%, VTH=70%, VLH=VHH=10%.
• Цифро-аналоговые свойства (раздел HELP Mixed Mode Modelling Primitives =› DAC Interface Object Model):
VLO, VHI, VUD – соответсвенно напряжения для низкого, высокого и неопределенного уровня. По умолчанию VLO=0%, VHI=100% и VUD=50%. Эти свойства применимы к цифровым входам.
RLO, RHI, RUD – выходные сопротивления для сигналов низкого, высокого и неопределенного уровней. Первые два по умолчанию 1Ом, а RUD=(RLO+RHI)/2, т.е.тоже 1Ом. Есть еще параметр RTS=100МОм обозначающий выходное сопротивление для высокоимпедансного состояния.
TRISE и TFALL – время (Time) подьема (Rise) и время спада (Fall) - передний и задний фронты выходного сигнала. По умолчанию оба равны 1наносек. Эти два временных параметра гарантировано моделируются только в случае, если глобальная переменная TTOL в параметрах симуляции ISIS (System =› Set Simulator Options) меньше чем они (Рис. 23)
Думаю, что для начала достаточно свойств цифровых и смешанных примитивов, и на этом можно остановиться. Пора рассмотреть – как они используются для моделирования цифровых микросхем различных серий и переходить непосредственно к моделированию.
Рисунки 20, 21, 22.
Рисунок 23
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic_20.gif
Просмотров: 519
Размер:	187.7 Кб
ID:	11064   Нажмите на изображение для увеличения
Название: Pic_21.gif
Просмотров: 338
Размер:	5.5 Кб
ID:	11065   Нажмите на изображение для увеличения
Название: Pic_22.gif
Просмотров: 443
Размер:	10.1 Кб
ID:	11066  

Нажмите на изображение для увеличения
Название: Pic_23.gif
Просмотров: 343
Размер:	8.6 Кб
ID:	11067  

Последний раз редактировалось Halex07; 17.08.2010 в 11:01.
Halex07 вне форума  
Эти 13 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
bozhko (22.09.2010), dialog55 (27.09.2011), haruta (20.08.2010), hudoykl (09.09.2010), Ironium (22.01.2016), kuksin (20.08.2010), parcshin (24.04.2011), ReLe1 (14.08.2011), Tischon (21.01.2011), Traan (16.09.2013), ДимаК (21.06.2011)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импульсная зарядка для авто-аккумуляторов (новодел) Falconist Источники питания и свет 1915 14.03.2024 19:56
Linux-ваше мнение Tvenn Делимся опытом 6169 23.08.2015 08:57
Pictiva TM 128 X 64 OLED Module (SSD0323) + AVR + PROTEUS - рабочий проект для начинающих OttoStirliz Микроконтроллеры, АЦП, память и т.д 8 28.05.2010 16:59


Часовой пояс GMT +4, время: 08:51.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot