gefunden LTspice Modell CD4033

Hallo Frank,

das erste übermittelte File war der subckt-Text direkt vom Bauteil. Da dies nicht funktionierte, bin ich dem Vorschlag aus der Anleitung gefolgt, nämlich der Konvertierung aus dem Schaltplan.
Ich werde jetzt mal das Beispiel mit dem Wienoscillator aus der Anleitung 1:1 nachbilden und sehen, ob das funktioniert.
Da die Micro-Cap 12-Lib über 16000 Bauteile umfasst, wäre eine erfolgreiche Konvertierbarkeit natürlich sehr wertvoll, da man dann die LTspice-Lib etwas "auffüllen" könnte.
Micro-Cap 12 kostete mal 4500U$ und war oder ist noch kostenlos zum Download erhältlich, da der Besitzer altershalber aufhörte und aus "Dankbarkeit" den Download frei zur Verfügung stellt(e),
software erhältlich bei www.spektrum-soft.com
Ich bleib noch am Thema dran.

Gruß,
Udo
 
Hallo Udo,

schön, daß Du am Thema bleibst!
Die Strukturen im Micro-Cap-Modell enthalten prozedurale Elemente und Funktionen (z.B. CHANGED_LH(), DELAY(), LOGICEXP(), AND(), DFF(), PINDLY()). Zumindest ein paar Funktionen kann man auch in den Subckts der mit LTspice kompatiblen cd4000.lib erkennen (DFLOP, AND, BUF, SCHMITT, ...).
Ich habe - bisher vergeblich - nach Tools gesucht, die die Micro-Cap-SUBCKTs konvertieren. Für die Suche müßte man die Namen der verschiedenen Styles kennen.

CD4033.txt und cd4000.lib haben gemeinsam, daß sie nicht aus vielen Einzelbauteilen bestehen, sondern das Verhalten des CMOS-Bauteils von außen beschreiben; mit Hilfe von logischen Zuweisungen und Zeitverzögerungen. Also sollte eine Übersetzung grundsätzlich möglich sein.

Danke für den Hinweis auf die Micro-Cap-Seite! Micro-Cap war die allererste Schaltungssimulation, die ich auf meinem PC hatte; damals noch mit MS-DOS. :cool:

Gruß, Frank
 
Hallo Udo,

das hat schon mal keine Labels mehr, aber bei der Simulation kommen immer noch Fehler:
bei .param-Zeilen, die die Funktion import() enthalten, und bei .model-Zeilen, bei denen LTspice offenbar mit den Anführungsstrichen a la ATOD1="ATOD_4000B" nicht klarkommt, und schließlich noch
Fatal Error: Undefined subcircuit: cd4033b.
"CD4033B" kommt nur am Ende der Zeile X1 clk 0 reset 3 12 0 4 5 6 7 8 9 10 11 CD4033B vor. Keine Ahnung, was die macht.

Weil die Parameter der .param-Zeilen und das Model der .model-Zeilen nirgendwo sonst in der CD4033B.lib benutzt werden, habe ich diese Zeilen mal ausgekommentiert.
Bis auf den Fatal Error verschwinden die Fehler. (Wahrscheinlich würde das Modell so nicht funktionieren, aber man muß sich ja mal rantasten.)

Gruß, Frank
 
Hallo Frank,

da mein Spezialgebiet die Leistungselektronik ist, bin ich in Sachen Programmiersprachen (Syntax...etc.) nicht so bewandert. Mit den Subckt-Einträgen bin ich da überfordert. Du scheinst da eher firm zu sein.
Das Thema interessiert mich aber. Deshalb habe ich Analog.com angeschrieben und denen meine files geschickt.
Ich hoffe auf ein Feedback von den Analog-Experten. Sobald ich was habe, melde ich mich wieder.

Gruß, Udo
 
Das wäre natürlich wesentlich besser als herumzuraten! (y-)
Da bin ich auch mal gespannt. Wenn die Unterschiede nicht zu komplex sind, kann ich - zumindest für Windows - ein Konvertierungsprogrämmchen schreiben.

Gruß, Frank
 
Hallo Frank,
hatte auf Hilfe von Analog.com gehofft. Leider können(?) die auch nicht weiterhelfen.
RE: FW: Problem with importing spice model subckt into LTspice [Analog Devices](SR-225584-D7Z7V0)

Posteingang



CIC EMEA <CIC.EMEA@analog.com>
14:07 (vor 1 Stunde)​

an mich
Hi Udo,

Your query was forwarded to my team.
Unfortunately, the issue we are seeing here with this design is not just related to importing the model properly into LTspice. My first suggestion was going to be that the model script should be with extension of either .lib or .sub, that was the reason the tool wasnt able to find the library file for the model. But that dint help much as the model script has lot of different external dependencies for variables as well as the parameters which cannot be resolved.

So unfortunately this spice model is not compatible with LTspice.

Kind regards,
Rohan

Rohan Gurav

Applications Engineer

European Centralized Application Center (CAC)
Analog Devices
CIC.emea@analog.com<mailto:CIC.emea@analog.com>

Analog Devices (ADI) makes no warranties and assumes no liability for applications assistance or customer product design. Please be aware you are fully responsible for all design decisions and engineering with regard to your products, including decisions relating to the application of ADI products. By providing technical information, ADI does not intend to offer or provide engineering services or advice concerning your designs.


From: Udo Huhn-Rohrbacher <u.huhn.rohrbacher@googlemail.com>
Sent: Sunday, September 12, 2021 8:25 AM
To: Alonso, Gabino <Gabino.Alonso@analog.com>
Subject: Problem with importing spice model subckt into LTspice

[External]

Dear Mr. Alonso,

I tried to import a component spice file, available in the MicroCap-12 Simulator, into LTSpice. I followed the instructions given by Spectrum-software.com. By doing this, I used MicroCap's Converter, which could translate a circuit in a way, that a subcircuit will be written into as text file.
In LTspice, I used the Autogenerated function to create the .asy-file.

The component is a CD4033B CMOS Decade Counter Divider.

Now, when I try to simulate the simple circuit, I get a couple of error messages, which I cannot solve with my knowledge.
I've attached the files.

Can you or another expert give me an advice how to solve this problem ?

Thank you very much
with best regards

Gruß, Udo
 
Hallo Udo,

das ist schade, aber immerhin haben sie schnell geantwortet.

Es stimmt, es stehen einige Variablen, Funktionen und Parameter im Modell, deren Aufgabe nicht ersichtlich ist. Außerdem gibt es Verweise auf Modelle in DIGIO.LIB, und "CD4033B" (Ursache für den Fatal Error) ist nicht definiert.

So unfortunately this spice model is not compatible with LTspice.
Tja, soviel zu "spice-kompatibel" ... . Möglicherweise konvertiert der MicroCap-Konverter nur für bestimmte Anwendungen fehlerfrei.
So hat man leider keinen Zugang zu den (Logik-)Modellen von MicroCap.

Gruß, Frank
 
  • Danke
Reaktionen: Udo
Hallo Frank,
ich war noch wegen einer anderen Thematik mit einem Herrn Marcos Alonso in Kontakt. Dieser hat in Youtube mehrere Videos veröffentlicht. Darunter habe ich gut beschriebenes Video gesehen, bei
dem man von einem Datenblatt bzw. dem darin ennthaltenen Schaltplan ein subckt + *.asy erzeugen kann. Das wäre noch eine Möglichkeit, wie man an das Bauteil kommen kann.
- Datenblatt CD4033B download
- Video von Marcos Alonso ansehen (Info siehe Anhang screenshot) + etwas Arbeit beim Erzeugen des Schaltplanes (Innenleben 4033) in LTspice.

Gruß, Udo
 

Anhänge

  • Screenshot (233).png
    Screenshot (233).png
    577,3 KB · Aufrufe: 5
Hallo Udo,
ein super Vortrag, vielen Dank!(y-) Da war einiges Neues für mich dabei!
Die Logik-Funktionen werden mit Gattern aus der CD4000.lib gebildet, und am Schluß generiert LTspice das Symbol, so wie Du schon drauf hingewiesen hattest.

Das probiere ich auch mal. In der Innenschaltung des CD4033 sieht man einige D-Flip-Flops. In der CD4000.lib gibt es eines, CD4013, das müßte also grundzipiell klappen.
Möglicherweise braucht die Simulation bei der Menge an Bauteilen ziemlich lange.
"Entdecke die Möglichkeiten!" :)

Gruß, Frank
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Udo
So, einige Anstrengungen später ... :)
Nach der Anleitung von Marcos Alonso habe ich nun die Innenschaltung nach dem CD4033-Datenblatt von TI entdröselt. Ich durchsuchte die CD4000.LIB nach passenden Bauteilen und bildete z.T. Ersatzschaltungen, wenn es notwendig war oder sich die Schaltung vereinfachen ließ; siehe die Anmerkungen in schmuckem Rot.
CD4033_scribble.png

Heraus kam die Schaltung in CD4033_construction.asc. Die Signal-Namen sind die aus dem Micro-Cap-Export. Einige Zeit mußte ich mit den Flip-Flops experimentieren, weil es Unterschiede in Anzahl und Bezeichnung einiger Pins gibt. Zum Testen enthält die Schaltung auch einige Signalquellen, die die Eingänge manipulieren. Dabei kam es mir darauf an, das alle Segment-Ausgänge unterschiedliche Signale haben. Ob sie korrekt sind, überprüfte ich nicht.

In CD4033_schematic.asc ist das Modell ohne die Testumgebung. Ich exportierte den von Marcos Alonso angegebenen Part der Netlist in eine Datei CD4033.SUB und ergänzte sie auch. Eins im Sinn, die Reihenfolge der Pins in der .SUBCKT-Zeile muß noch angepaßt werden, wenn das Symbol fertig ist.

Als nächstes autogenerierte ich ein Symbol für den CD4033. Da ich gerade nicht weiß, wie man mit dem LIB-Editor den SUBCKT einträgt, kopierte ich per Texteditor den entsprechenden Eintrag aus der CD4033B.ASY von Udo hinein. Als nächstes stellte ich die Reihenfolge der Pins fest (in CD4033.ASY Rechtsklick auf jeden Pin: "Netlist Order" ist die gesuchte Ordnungszahl) und stellte die .SUBCKT-Zeile in CD4033.SUB entsprechend um. (Alternative: Reihenfolge in der LIB ändern.)

So, ASY und SUB waren fertig. Jetzt brauchte ich noch eine ASC-Datei, die das Modell testet, hier: CD4033_model_test.ASC.
Vorausgesetzt, mir unterlief kein Fehler bei den Gattern und ihren Verschaltungen, so müßten auch die Segmente richtig angesteuert werden. Bitte testen!!

Edit: Obige Skizze korrigiert. Ein 4075 war als UND- statt als ODER-Gatter gezeichnet.

Gruß, Frank
 

Anhänge

  • CD4033.asy
    1,1 KB · Aufrufe: 11
  • CD4033.sub
    2,6 KB · Aufrufe: 5
  • CD4033_model_test.asc
    1,8 KB · Aufrufe: 7
  • CD4033.asc
    8,4 KB · Aufrufe: 5
  • CD4033_construction.asc
    9,8 KB · Aufrufe: 4
Zuletzt bearbeitet:
Das ist ja geil.
Und vielen Dank, dass Du das hier mit uns teilst.
Wenn es ausgereift ist, poste das bitte in die bibliotheken-sektion.
 
Hallo Frank,
egal ob schon alles funktioniert oder noch nicht. Für Deine Arbeit muss ich jetzt schon den Hut ziehen. Auf jeden Fall haben wir Erfahrung gesammelt. Erfahrung ist bekanntlich die Summe aller
Reinfälle. Wenn die Simulationen flutschen, hat es sich auf jeden Fall gelohnt, so hartnäckig am Ball zu bleiben.
Gratulation!
Ich melde mich wieder, sobald ich mit den Tests weiter bin.
Gruß, Udo
 
You are welcome! :)
gerade habe ich noch ein paar doppelte Anhänge entfernt, sie waren in der Vorschau nicht zu sehen gewesen, deswegen hatte ich sie nochmal hochgeladen.

Gruß, Frank
 
Hi Frank,
bei mir funktioniert Deine Schaltung ohne zu meckern.
Ich hab jetzt mal die Schaltung in MicroCap-12 aufgebaut und verglichen.
Dabei habe ich auch mal einen Ausgang "A" geplottet.
Hier ist der einzige Unterschied: In LTspice geht A nach GND, bei MCap bis auf ca.2V
Ich hänge ein Bildschimfoto an, links MCap und rechts LTSpice. Leider sieht man nicht
mehr soviel bei 8 Kanälen.
Gruß,Udo
 

Anhänge

  • Screenshot (35).png
    Screenshot (35).png
    328,8 KB · Aufrufe: 6
Hallo Udo,
fleißig, fleißig!
Benutzt Dein Aufbau das CD4033-Micro-Cap-Modell?

Einen Unterschied sehe ich noch. Bei Deinem Aufbau kommen die Ausgangssignale an V(CARRYOUT) und V(A) nur bei V(s_RESET) = 5V, so wie es auch im Datenblatt steht.
Bei meinem Aufbau kommen sie dagegen nur bei V(s_RESET) = 0 V. Das könnte auch der Grund dafür sein, daß bei den beiden Aufbauten auch V(RBO) unterschiedlich ist. Eventuell muß ich den Reset doch noch anders an die Flip-Flops anschließen.

Ein paar Minuten später: Die Eingänge PRE und CLR der CD4013-Flip-Flops zu vertauschen oder anders vorzuspannen, brachte keinen Erfolg. Wenn man aber den Inverter am Reset-Eingang wegläßt, werden die Signale gemäß Datenblatt durchgeschaltet. Im Datenblatt des CD4013 hat der Reset-Eingang positive Logik - im Gegensatz zum Schaltbild von TI. Also ist es schlüssig, den Inverter wegzulassen. Ich werde das Modell korrigieren.

Wieder etwas später: Die folgenden Dateien sind hier aktualisiert:
CD4033_model_test.asc
CD4033_construction.asc
CD4033.sub
CD4033.asc

Hast Du an V(A) eventuell einen Pull-Up-Widerstand angeschlossen? Unbelastet sollte dieser CMOS-Ausgang auf 0 V schalten können.
Gehen die anderen Ausgangssignale V(B) .. V(G) auch nur bis 2 V runter?



Gruß, Frank
 
Zuletzt bearbeitet:
Hallo Frank,
ja, ich habe in MicroCap dessen Model benutzt.
Die 2V habe ich nur beim Ausgang A gesehen. (B bis G habe ich bislang noch nicht benutzt). A habe ich zunächst garnicht, dann mit 10k nach GND belastet. Wenn ich mit 1k belaste werden die 2 V geringer (ca. 1,4V) aber Va_high geht dann
auch nur bis ca. 4,5V.
Ob das MicroCap Model stimmt, wissen wir aber auch nicht !
Machen wir einfach mal weiter. Schade, daß LTspice kein 7-segment Display hat, das blinken könnte. Egal.
Gruß Udo
 
Hallo Frank,
mit MicroCap12 brauche ich nicht weitermachen. Das model ist falsch! Siehe Anmerkung von Harris im angehängten screenshot.
Da bist Du wohl auf dem besseren Weg.
Gruß Udo
 

Anhänge

  • Screenshot (36).png
    Screenshot (36).png
    276,7 KB · Aufrufe: 5
Hi Udo,
Machen wir einfach mal weiter. Schade, daß LTspice kein 7-segment Display hat, das blinken könnte. Egal.
Ich hab' da mal was vorbereitet ... :)

Die EXE-Datei (Windows) im Anhang enthält ein Script, das ein solches Display im Takt der Segmentspannungen V(a) .. V(g) zum blinken. Zusätzlich stellt es noch die Signale V(Carryout) und V(RBO) dar. Dafür arbeitet es eine Export-Datei ab.

Nach der Simulation klicke auf das Plot-Fenster und dann auf File / Export. Dort wählst Du V(a) .. V(g), V(RBO) und V(Carryout) aus. Als Dateiname wird der Name der Simulation mit der Endung .txt vorgeschlagen.

Dann starte das Programm Show7Segment.exe von der Kommandozeile oder per Batch-Datei:
Show7Segment.exe CD4033_model_test.txt Start=0.0995 Ende=0.2005 Delay=0.5 Intervall=0.001 hell=FF4000 dunkel=C0C0C0
Der erste Parameter ist der Name der exportierten Datei, dieser MUSS angegeben werden. Enthält der Dateiname Spaces, so schließe ihn mit Anführungszeichen ein.
Die restlichen Parameter - die alle ein Gleichheitszeichen enthalten - sind optional, weil es dafür voreingestellte Werte gibt.

Start Anfang des betrachteten Zeitbereichs in Sekunden (siehe Plot-Fenster)
Ende Ende des betrachteten Zeitbereichs in Sekunden
Intervall In diesem Zeitintervall wird die exportierte Datei "abgetastet", in Sekunden. (Bei einem Clock von 1 ms wäre hier z.B. Intervall=0.001 sinnvoll.)
Delay Verzögerungszeit für die Anzeige aufeinanderfolgender Abtastungen, in Sekunden (voreingestellt: 0.5 Sekunden)
hell RGB-Wert für ein helles Digit, (V(<Segment>) >= 2,5 V).
dunkel RGB-Wert für ein ausses :) Digit, (V(<Segment>) < 2,5 V).

Wenn Du nur die Digits zu einem bestimmten Zeitpunkt betrachten willst - z.B. bei 145 ms, dann gib an: Start=0.145 Ende=0.145 .

Edit:
Leider funktionierte das Hochladen der EXE-Datei nicht. Sie war in einem ZIP-Archiv, weil die Forensoftware keinen .exe-Typ akzeptiert. Das half aber nicht; wie ich soeben sah, wurde das ZIP-Archiv bei der automatischen Überprüfung entpackt - das hätte ich mir auch denken können - und als infiziert gekennzeichnet. Die EXE-Datei erzeugte ich mit einem Tool von 2009 (Autohotkey 1.0.48.5), mit dem ich schon seit vielen Jahren arbeite, auch beruflich.

@spicer Gibt es eine andere Möglichkeit, die EXE-Datei hochzuladen? Wenn nicht, würde ich sie z.B. bei Dropbox ablegen und hier den Link posten. Wäre das ok?
@Udo Würdest Du überhaupt eine EXE-Datei von mir ausprobieren? Wir kennen uns ja nicht, deswegen wäre ich darüber überhaupt nicht böse.

Den Anhang habe ich erstmal wieder gelöscht.

Gruß, Frank
 
Zuletzt bearbeitet:

Benutzer welche diesen Thread betrachten (Mitglieder: 0, Gäste: 1)

Zurück
Oben