Forum: Analoge Elektronik und Schaltungstechnik LTspice: Schmitt Trigger NAND simulieren?


von Bauform B. (bauformb)


Angehängte Dateien:

Lesenswert?

hallo,

mit dem voltage controlled switch SW und einem Widerstand kann man ja 
einen einfachen digitalen Inverter simulieren, z.B. S1 und R30 im Bild. 
S2 bis S5 bilden ein RS-Flip-Flop aus NAND Gattern. Für Schaltschwelle 
und Hysterese kann man auch realistische Werte einstellen, hier für den 
74LV132.

Soweit so einfach -- solange die Betriebsspannung konstant ist. Wenn man 
den Vt Parameter im SW model spannungsabhängig machen könnte, würde die 
Simulation auch für schwankende Spannungen funktionieren; so einfach wie 
Vt=V(n042)*0.5 geht es "natürlich" nicht.

Ich könnte aus diskreten Bauteilen einen ziemlich echten NAND Schmitt 
Trigger nachbauen, aber der SW tut's ja, bis auf diese Kleinigkeit. Wie 
macht man das richtig?

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Hallo,

ich wollte gerade nand.asc mit LTspice öffnen, weil .asc die Endung von 
LTspice-Schaltplänen ist. Da kam aber eine Fehlermeldung. Dann habe ich 
die Datei in Irfanview gezogen und es zeigt einen Schaltplan. Mit Paint 
ging es auch.
Bei Dateien mit .asc erwarte ich eigentlich den richtigen Schalplan von 
LTspice. Nur an dem kann man direkt weiterarbeiten.

Hier eine Lösung für ein NAND mit Schmitt-Eingängen die von der 
Versorgungsspannung anhängen. Der .plt-File wird nur von LTspiceXVII 
akzeptiert. Das veraltete LTspiceIV kann den nicht richtig lesen.

Gruß
Helmut

: Bearbeitet durch User
von Bauform B. (bauformb)


Lesenswert?

Perfekt, dankeschön!
Je nach Siebelkokapazität und Mondphase gab es noch einen 
Schönheitsfehler: "Time step too small", aber den konnte ich mit diesem 
Trick umgehen:
https://www.electronicspoint.com/threads/ltspice-newbie-simple-model-wont-analyze.42802/

Die Schaltung schaut jetzt auch in LTspice viel "natürlicher" aus.

von Helmut S. (helmuts)


Lesenswert?

Bauform B. schrieb:
> Perfekt, dankeschön!
> Je nach Siebelkokapazität und Mondphase gab es noch einen
> Schönheitsfehler: "Time step too small", aber den konnte ich mit diesem
> Trick umgehen:
> 
https://www.electronicspoint.com/threads/ltspice-newbie-simple-model-wont-analyze.42802/
>
> Die Schaltung schaut jetzt auch in LTspice viel "natürlicher" aus.

Hast du TD erhöht?

von Bauform B. (bauformb)


Lesenswert?

Helmut S. schrieb:
> Hast du TD erhöht?

Ja, auf 100 bis 150ns, der 74LV132 hat bei 2 Volt ca. 40ns und in der 
Schaltung geht's eher um Millisekunden.

Ach ja, die Dateiendung: das ist ein Kompromiss aus Screenshot und 
LTspice-.asc ;) Wenn man sich nicht entscheiden kann...

von Helmut S. (helmuts)


Lesenswert?

Bauform B. schrieb:
> Helmut S. schrieb:
>> Hast du TD erhöht?
>
> Ja, auf 100 bis 150ns, der 74LV132 hat bei 2 Volt ca. 40ns und in der
> Schaltung geht's eher um Millisekunden.
>

Kannst du die Schaltung mal anhängen? So viel delay musss nicht sein. Es 
muss auch mit 5ns gehen. Da muss ein anderes Problem dahinter stecken.

> Ach ja, die Dateiendung: das ist ein Kompromiss aus Screenshot und
> LTspice-.asc ;) Wenn man sich nicht entscheiden kann...

Wir mögen beides, screenshot(png) plus die Originaldatei von 
LTspice(.asc) zum mitsimulieren.

: Bearbeitet durch User
von Bauform B. (bauformb)


Angehängte Dateien:

Lesenswert?

Helmut S. schrieb:
> Kannst du die Schaltung mal anhängen? So viel delay musss nicht sein. Es
> muss auch mit 5ns gehen. Da muss ein anderes Problem dahinter stecken.

Anscheinend ein grundlegendes. Der Fehler ist sehr schlecht 
reproduzierbar. Mit der Schaltung im Anhang bricht die Simulation nach 
0.3s mit trouble in U5 oder nach 6.0s mit trouble in U1 ab -- 
anscheinend zufällig, bei mehrfachem Start ohne irgendeine Änderung. 
Vielleicht reicht die Floating Point Auflösung nicht für so große 
Zeitunterschiede.

Um wenigstens jedesmal einen Fehler zu erzeugen hab' ich in der 
Schaltung den Innenwiderstand der Versorgung auf 100 Ohm erhöht, 
ansonsten ist alles Original. Meine LTspice Version ist vom 20.12.2017.

> Wir mögen beides, screenshot(png) plus die Originaldatei von
> LTspice(.asc) zum mitsimulieren.

Du hast es so gewollt. Aber ich glaube, man sollte das Problem einfach 
ignorieren. Die Simulationsergebnisse sind in jedem Fall, mit und ohne 
Abbruch, glaubwürdig. Das reicht mir, die Mathematik dahinter ist mir um 
mehrere Nummern zu hoch.

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Selbst deine Schaltung mit td=160ns bricht ab mit "time step too small".
Wenn man einen maximalen Zeitschritt vorgibt, dann läuft deine Schaltung 
mit td=160ns
.tran 0 8000m 0 0.1m startup


Dann habe ich td=5n gesetzt und es ging wieder nicht mehr.
Ich habe dann trise bei den rückgekoppelten NAND-Gattern hinzugefügt und 
einen 1pF parallel zu U5 geschaltet. Der maximale Zeischritt muss 
weiterhin auf 0.1m stehen.

td=5n trise=5n

C10=1pF

.tran 0 8000m 0 0.1m startup

Ich habe die geänderten Bereiche im Schaltplan eingekreist.


.step TEMP in Schaltungen mit ICs kann voll daneben gehen da die 
SPICE-Modelle von Opamps und anderen Bausteinen nicht dafür ausglegt 
sind. Da passieren dann oft seltsame Dinge die nichts mit dem echten 
Verhalten über Temperatur zu tun haben.

Ich habe dann in meiner ursprünglichen Schmitt-Trigger-Schaltung trise 
hinzugefügt.

: Bearbeitet durch User
von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Hier die korrigierte Schaltung. Trise sollte nur an das NAND.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.