nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 12 Dec 2017 06:23



Reply to topic  [ 305 posts ]  Go to page Previous  1 ... 17, 18, 19, 20, 21  Next
Proteus C++ DLL's 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
я поступал с ними - "как они делают (в Labcenter), так и я сделаю - по аналогии"... :mrgreen:
И, кстати, всё правильно получалось! :o Хотя мне была понятна лишь теденция, но не был понятен её смысл... :-?
Смотрим на тенденцию:
Quote:
{*DEVICE}
NAME=PIC16F84A
...
{PRIMITIVE=DIGITAL,1684}

{*DEVICE}
NAME=ATMEGA16
...
{PRIMITIVE=DIGITAL,16}

{*DEVICE}
NAME=ATTINY15
...
{PRIMITIVE=DIGITAL,15}


Там где {PRIMITIVE=DIGITAL,ХХХХ} это ХХХХ сокращают до числа
или до числа и буквы после него.
Смысл, как мне кажется в том, что ХХХХ в модели считывается как строка, и если это строка из символов цифр или из
символов цифр и буквы после них, то она очень легко превращается в INT.

А по значению этого INT включают SWITCH ... и различают или отдельные модели в одной DLL,
или же различие в свойствах модели также в пределах одной DLL.

Нет, конечно, можно и так:
Quote:
if(!lstrcpy(device,"PIC16F84A")) .....;

Но превратить параметр {PRIMITIVE=DIGITAL,1684} как мне кажется,
и проще и быстрее...

_________________
iLavr


27 Oct 2017 11:34
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Я немного более подробно разобрался со свойством {ITFMOD=XXX}.
И вот почему - при моделировании некоторых схем подключение в точки схемы аналогового осциллографа
нарушает работу этой схемы. Подключение же аналогового осциллографа в ту же точку схемы через инвертор
на работу схемы негативного влияния не оказывает... :-?

Особенно это заметно в схемах на моделях семейства CMOS 4000.
Вот, к примеру, моя схема для тестирования здешней модели TV-дисплея:
Attachment:
TVdisp33.gif
TVdisp33.gif [ 15.71 KiB | Viewed 453 times ]

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

Я, конечно, понимаю, что в реальной жизни подключение щупа осциллографа в схему, безусловно,
влияет на её работу, но здесь же всё-таки моделирование, и причем цифровое... :-?

Оказалось, что если в моделируемую схему подключается аналоговый прибор, а осциллограф в Proteus -
аналоговый прибор, то схема моделируется в смешанном режиме, в котором за многие параметры
моделируемой схемы отвечает этот самый ITFMOD. И о влиянии его рассказано в Proteus VSMSDK.
Ниже приведен адаптированный перевод раздела Mixed Mode Interface Models:
Attachment:
Mixed Mode Interface Models.gif
Mixed Mode Interface Models.gif [ 36.18 KiB | Viewed 453 times ]

Ну и вот параметры, которые содержит этот самый файл ITFMOD.MDF, на одну из строк которого
и ссылается {ITFMOD=XXX}, следующие:
ITFMOD.MDF wrote:
*MODELDEFS,15
CMOS : RHI=100,RLO=100,TRISE=1u,TFALL=1u,V+=VDD,V-=VSS
NMOS : RHI=100,RLO=10,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VCC,V-=GND
TTL : RHI=50, RLO=5,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,RPOS=5k,RNEG=20k,V+=VCC,V-=GND,FLOAT=HIGH
TTLHC : RHI=5,RLO=5, V+=VCC,V-=GND
TTLHCT : RHI=5,RLO=5, V+=VCC,V-=GND
TTLLS : RHI=100, RLO=10,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,RPOS=12k,RNEG=50k, V+=VCC,V-=GND,FLOAT=HIGH
TTLS : RHI=25, RLO=2.5,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,RPOS=5k,RNEG=20k,TRISE=0.5n,TFALL=0.5n, V+=VCC,V-=GND,FLOAT=HIGH
PLD : RHI=20,RLO=20, V+=VCC,V-=GND,FLOAT=HIGH
PIC : RHI=20, RLO=20,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VDD,V-=VSS
8051 : RHI=20, RLO=20,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,RPOS=5k,RNEG=20k,V+=VCC,V-=GND,FLOAT=HIGH
AT89 : RHI=20, RLO=20,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,RPOS=5k,RNEG=20k,V+=VCC,V-=GND,FLOAT=HIGH
HC11 : RHI=20, RLO=20,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VDD,V-=VSS
AVR : RHI=20, RLO=20,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VCC,V-=GND
MSP430 : RHI=20, RLO=20,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VCC,V-=GND
RS232 : VLO=-8.5,VHI=8.5,RHI=300,RLO=300,VTL=1.2,VHL=0.5,VTH=1.7,VHH=0.5,RPOS=5k,RNEG=5k,V+=VCC,V-=GND,FLOAT=HIGH
LPC2100: RHI=20, RLO=20,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH=0.2,V+=VDD,V-=VSS

У нашей модели процессора выбран {ITFMOD=CMOS} - тоже местами "усилял"
конструкцию мощными повторителями, когда моделировал "KPOXУ", ибо осциллограф тоже мешал местами. :-?

_________________
iLavr


27 Oct 2017 20:33
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Как-то неудачно вышло, что когда я упаковывал документ Word с переводом Mixed Mode Interface Models
в рисунок *.gif, конец документа обрезало, а я и не заметил... :osad:

А сегодня - заметил. Вот окончание перевода документа Mixed Mode Interface Models:
Attachment:
Mixed Mode Interface Models2.gif
Mixed Mode Interface Models2.gif [ 5.48 KiB | Viewed 438 times ]


Если кому-либо покажется, что перевод местами неточен или некорректен, то вот сам оригинал документа:
Attachment:
MixedModeIntMod.zip [9.91 KiB]
Downloaded 6 times

_________________
iLavr


28 Oct 2017 12:09
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
при моделировании некоторых схем подключение в точки схемы аналогового осциллографа
нарушает работу этой схемы. Подключение же аналогового осциллографа в ту же точку схемы через инвертор
на работу схемы негативного влияния не оказывает... :-?

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

Джентельмены, кто у нас пользуется Proteus, пособите... а то мозг вскипит - ибо уже не знаю, на что и погрешить... :o

Вот осциллограф подключен к видеосигналу через 2 инвертора в роли буфера:
Attachment:
Disp1.gif
Disp1.gif [ 10.68 KiB | Viewed 411 times ]

Видеосигнал - ОТЛИЧНЫЙ! На дисплее то, что и должно быть!

А теперь осциллограф подключен к видеосигналу напрямую:
Attachment:
Disp2.gif
Disp2.gif [ 12.39 KiB | Viewed 411 times ]

Полное ощущение, что он вносит в видеосигнал НАВОДКИ! :o

Но ведь этого не может быть! :o Это же симуляция! :o
У этого виртуального прибора входное сопротивление порядка 1ГОм, а входной ёмкости и вовсе нет!

Я в выходные пошарил поиском по интернету. Да - эту модель аналогового осциллографа многие ругают,
но у них он ПОКАЗЫВАЕТ ЧТО-ТО НЕ ТАК!
А у меня получается, что ОСЦИЛЛОГРАФ ВМЕШИВАЕТСЯ В РАБОТУ МОДЕЛИРУЕМОЙ СХЕМЫ! :esurprised:
А ЭТОГО БЫТЬ В ПРИНЦИПЕ НЕ ДОЛЖНО!

В архиве - обсуждаемый проект и две dll-библиотеки: дисплея и этого осциллографа.
Attachment:
Disp.zip [76.03 KiB]
Downloaded 11 times

Как мы знаем, Proteus при старте берет dll-библиотеки сначала из папки проекта.

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

_________________
iLavr


30 Oct 2017 10:50
Profile
Senior

Joined: 12 Feb 2016 16:39
Posts: 178
Reply with quote
подтверждаю, в протеус 8.5 подключение осциллографа полностью нарушает работу этой схемы! :o


30 Oct 2017 15:37
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
PVV wrote:
подтверждаю, в протеус 8.5 подключение осциллографа полностью нарушает работу этой схемы! :o

А попробуй подключи в эти точки собственный 4-канальный осциллограф, который есть в Протеус 8.5 ?
А этот временно выкинь совсем.

_________________
iLavr


30 Oct 2017 16:40
Profile
Maniac

Joined: 05 Nov 2008 22:47
Posts: 234
Location: 81.28.208.238
Reply with quote
Я тоже с похожим сталкивался (версия 7-10).
Осциллограф не хотел ничего показывать, пока к измеряемому выводу не подключил
просто еще один инвертор.


30 Oct 2017 20:51
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
aav8 wrote:
Осциллограф не хотел ничего показывать, пока к измеряемому выводу не подключил
просто еще один инвертор.

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

Но у меня-то он показывает, но получается, что мешает схеме работать, хотя и не должен.
Может быть, я чего непонимаю... хотя чего уж проще... :-?

_________________
iLavr


31 Oct 2017 11:39
Profile
Senior

Joined: 12 Feb 2016 16:39
Posts: 178
Reply with quote
4-х канальный ведет себя полностью аналогично 2-х канальному - портит вывод... :esurprised:


31 Oct 2017 16:02
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
PVV wrote:
4-х канальный ведет себя полностью аналогично 2-х канальному - портит вывод... :esurprised:

Не ожидал... :osad: Хотелось всё списать на старую версию моего Протеуса... :-?
Если честно - даже не знаю, что и предположить...

Хотя я уже почувствовал, что "что-то" вредит когда делал модель "Крохи":
Attachment:
proc.gif
proc.gif [ 3.81 KiB | Viewed 359 times ]

Сигналы ЦПУ просто внаглую продублированы мощными формирователями,
как раз из-за того, что было непонятно, откуда лажа лезет... :-?
Но в тот момент мне просто некогда было раздумывать.


P.S. Собственно, одно предположение есть, из-за него я и перевел этот самый ITFMOD
и Mixed Mode Interface Models.

Фактически в Протеусе работают одновременно 2 симулятора PSpise и Dsim.
Чисто цифровые модели симулирует только Dsim и опирается он на вот эти соглашения:
Image
Это числа типа INT, и цифровые модели передают их с выходов на другие входы под управлением Dsim.
Когда мы включаем в узел цифровой схемы аналоговый осциллограф, Протеус начинает работать в этом
самом Mixed Mode.
Он "приделывает" цифровой модели на выход ЦАП и начинает симулировать её аналоговые свойства
на выходе, чтобы смог работать PSpise.
Вот этот момент и мешает всей остальной цифровой схеме от этой точки - портит её работу.
А на выходе одиночного вентиля аналоговый сигнал создают сугубо для входа аналогового осциллографа,
а вход его (этого элемента) никак цифровой схеме не мешает - он как и был - цифровой.

Отсюда оргвывод: цифровые схемы аналоговым осциллографом смотреть сугубо через отдельный
вентиль-повторитель! 8)
А цифровой логический анализатор - по идее мешать не должен, если он чисто цифровой...
Но в Протеусе трудно быть в чем-то уверенным. Я с удивлением узнал, к примеру, что вот эти индикаторы -
аналоговые! :o
Attachment:
indi7seg.gif
indi7seg.gif [ 2.2 KiB | Viewed 358 times ]

Но моделируют вовсе не аналоговые свойства светодиодов... просто они так влючаются аналоговым способом
по сути при помощи очень ублюдошных аналоговых компараторов. :exclaim:

_________________
iLavr


31 Oct 2017 19:24
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
А цифровой логический анализатор - по идее мешать не должен, если он чисто цифровой...

Похоже, я прав в своей догадке, а логический анализатор Протеуса - чисто цифровой! :lol:
Attachment:
indilogc.gif
indilogc.gif [ 62.78 KiB | Viewed 357 times ]

_________________
iLavr


31 Oct 2017 20:29
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Ну и становится понятным в свете вышесказанного, почему, когда я моделировал "Кроху",
меня "спасло" вот это решение:
Attachment:
primitive.gif
primitive.gif [ 5.96 KiB | Viewed 344 times ]

Элементы, которыми я "забуферировал" линии шины управления нашего процессора - это
логические примитивы Протеуса.
Они несут в себе только логическую функцию. И аналоговых свойств им Протеус приписать
не может.

Из этих элементов делается вся остальная "настоящая" логика Протеуса - они располагаются
на дочернем листе у "настоящих" логических элементов, и им посредством скриптов присваивают
из файла ITFMOD.MDF задержки и аналоговые своства выходов, характерные для каждой логической
серии.

А микропроцессору у нас присвоен параметр {ITFMOD=CMOS}, значит при имитации аналоговых
свойств его выходов Протеус использует вот эту строку:
CMOS : RHI=100,RLO=100,TRISE=1u,TFALL=1u,V+=VDD,V-=VSS

Получается, что прицепив на выходы микропроцессора идеальные повторители, я никак схему
цифровую не изменил, но запретил Протеусу имитировать свои ЦАП и АЦП в точках подключения
аналогового осциллографа.

_________________
iLavr


01 Nov 2017 08:18
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Я с удивлением узнал, к примеру, что вот эти индикаторы - аналоговые! :o
Image
Но моделируют вовсе не аналоговые свойства светодиодов... просто они
так влючаются аналоговым способом, по сути при помощи очень ублюдошных
аналоговых компараторов. :exclaim:

Я в принципе по жизни очень люблю в стационарной измерительной аппаратуре вот эти индикаторы
типа ИН-16, ИН-18.
Attachment:
ИН-18_P1010013.jpg
ИН-18_P1010013.jpg [ 52.09 KiB | Viewed 335 times ]

На мой взгляд, они читаются гораздо лучше семисегментных, безынерционны и "тёплые, ламповые" на вид.

К тому же они управляются дешифратором типа "код-позиция", и если в схеме уже есть дешифратор
типа "код-позиция", то индикация очень проста. Не придется извращаться в стиле "дешифратор-шифратор". :wink:
Image
Но в Протеусе моделей индикаторов типа ИН-16, ИН-18 нет, поэтому я решил их сделать из моделей
как раз 7-сегментных индикаторов.

Оказалось, что 7-сегментные индикаторы сделаны как аналоговые элементы и довольно прямолинейно.
Attachment:
7SEG_SCH.gif
7SEG_SCH.gif [ 6.45 KiB | Viewed 335 times ]

Примитив аналогового компаратора отслеживет порог включения (1.5 В) после чего замыкает свои выводы
и через датчик тока начинает протекать ток, если он достиг 10 мА, датчик тока "включает" картинку
нужной цифры на индикаторе.
Если подумать - ток попрет весьма большой... но у Протеуса же нет батареек... :lol:

Ну и по этому принципу я себе сделал цифровой индикатор типа ИН-16, ИН-18 :
Attachment:
7SEG_DISP.gif
7SEG_DISP.gif [ 4.46 KiB | Viewed 335 times ]

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

Но прежде, чем сделать свою модель, я пошарил по просторам интернета, и увидел, что не один я
желал моделей индикаторов ИН-16, ИН-18 в Протеус.
В архиве - подборка всего, что я нашел:
Attachment:
IN_18_.rar [45.06 KiB]
Downloaded 7 times

Сам я их не видел, проекты под более старшую модель Протеус, чем у меня... Собственно, поэтому
я и написал для себя свой вариант модели этих индикаторов... :wink:


P.S. Попробовал эти индикаторы на новом ноутбуке под Протеус 7.7 Pro - да, неплохо эмулируют
ИН-16, ИН-18, но в 7-сегментном виде. Надо будет свой "тёплый ламповый" довести до ума...
:wink:

_________________
iLavr


01 Nov 2017 11:31
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
aav8 wrote:
Осциллограф не хотел ничего показывать, пока к измеряемому выводу не подключил
просто еще один инвертор.
Ну вот у меня сейчас у товарища версия 8.2 стоит - осциллограф показывает дурь какую-то.

Потестировал сегодня разные варианты под Windows 7 и Proteus 7.7 Pro - да, есть у аналогового
осциллографа
подобные "глюки". На мой взгляд, лучше всего они "лечатся", если оба канала подключать
в исследуемую цифровую схему через этот самый примитив - BUFFER из Modelling Primitives.
Тем паче, что он и лишних задержек не вносит.

_________________
iLavr


02 Nov 2017 23:47
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
aav8 wrote:
Quote:
Ну раз уж, думаю, он 74181 симулировал в Proteus...
Есть 74HC181 - рабочая...

Джентльмены, а поделитесь у кого она есть рабочая?
У меня что-то нет её... :-? её файл - 74XX181.MDF 5.8 KB;
А по интернету что-то везде, где есть скачать - требуют регистрации... :osad:

_________________
iLavr


15 Nov 2017 09:18
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 305 posts ]  Go to page Previous  1 ... 17, 18, 19, 20, 21  Next

Who is online

Users browsing this forum: Google [Bot] and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.