Forum: Analoge Elektronik und Schaltungstechnik Berkeley SPICE Modell in LT-Spice einfügen --> NXP 74HC08PW


von Andreas R. (guldin)


Lesenswert?

Hallo zusammen,

nach langer Suche habe ich mich schließlich hier angemeldet. Und zwar 
bin ich noch ziemlicher Anfänger was LT-Spice betrifft.
Für eine Simulation muss ich unter anderem ein AND-Gate des Herstellers 
NXP verwenden --> 74HC08PW (QUAD 2-input AND-Gate)

Hierfür gibt es lediglich ein Berkeley SPICE Modell:
http://www.nxp.com/products/discretes-and-logic/logic/gates/and-gates/quad-2-input-and-gate:74HC08PW?tab=Design_Tools_Tab

Jetzt wäre es super, wenn mir jemand erklären könnte wie ich das Modell 
einfüge. Mir ist noch unklar, ob ich ein Symbol erstellen muss, oder ein 
vorhandenes AND-Gatter nehmen kann und hierfür dann die Parameter 
einfügen muss.
Desweiteren ist mir noch unklar, was der Unterschied zwischen den 
Dateien
- hc_tfast
- hc_tnomi
- hc_tslow
ist und wie ich diese in ".lib" umwandle bzw. wie und wo ich diese in 
LT-Spice einfüge.

Schon einmal vielen Dank an jeden, der sich die Zeit nimmt und mir 
weiter hilft.

Grüße
guldin

: Verschoben durch User
von Jack (Gast)


Lesenswert?

Die Modelle sind für HSPICE 
(https://www.synopsys.com/tools/Verification/AMSVerification/CircuitSimulation/HSPICE/Pages/default.aspx). 
In wieweit LTSpice dazu kompatibel ist ist immer ein bisschen ein 
Glücksspiel.

Es lohnt sich nur dann diese NXP-Modelle zu verwenden und eventuelle für 
LTSPice anzupassen, wenn du wirklich das Verhalten genau jener NXP 
Logikbausteine simulieren möchtest. Das Ganze wird relativ langsam. Eine 
grundsätzliche Anleitung wie man externe Modelle in LTSpice einbindet 
ist in der integrierten Hilfe in LTSpice, im Bereich FAQ, zu finden.

Wenn dir irgendein 74HC08 reicht, dann gibt es in einer gut bewachten 
LTSpice Gruppe auf Yahoo 74HCxxx Modelle für LTSpice.

Wenn du nur eine AND-Funktion brauchst, dann hat LTSpice eingebaute 
Elemente dafür, die A-Elemente (siehe LTSpice integrierte Hilfe, "A. 
Special Functions"). Mit den A-Elementen muss man ein bisschen 
rumspielen um sie zu verstehen. Die haben von Haus aus keine TTL-Pegel 
und das Verhalten unbenutzter Eingänge ist speziell.

von Helmut S. (helmuts)


Lesenswert?

Hallo,

ich denke hier in der LTspice-group sind Beipiele mit genau diesen 
Modellen im Ordner "Files > Lib > Digital > NXP" drin.

https://groups.yahoo.com/neo/groups/LTspice/files/%20Lib/Digital%20NXP/

Soweit ich mich erinnere hatte ich damit öfters Konvergenzprobleme.

Gruß
Helmut

: Bearbeitet durch User
von Andreas R. (guldin)


Lesenswert?

Vielen Dank für die hilfreichen Antworten. Ich werde es jetzt einmal mit 
dem 74HC08 Modell aus der Yahoo-Group testen.

Hier noch zur Info, was ich damit machen will:
Das AND-Gate ist zwischen zwei µC's verbaut, über welche CAN-Daten 
übertragen werden. Hier entsteht durch Widerstände und einem kapazitivem 
Verhalten der Schnittstellen ein Art Tiefpass. Jetzt muss ich mit einer 
Simulation ermitteln, ob die Daten zuverlässig übertragen werden --> 
Signal muss lange genug an den Eingängen anliegen. An Vcc des AND 
Gatters liegt eine Spannung von 3,3V an.

Verwendet wird dabei ein NXP 74HC1G08 mit nur 2 Eingängen. Da hier kein 
Spice-Model zur Verfügung stand, wollte ich das NXP 74HC08PW (QUAD 
2-input AND-Gate) verwenden, welches sich von den Parametern gleich 
verhält.

Nun bin ich jedoch etwas irritiert, da das Modell in der Yahoo-Group 
sich 74HC08 nennt, jedoch nur 2 Eingänge hat. Aber noch wichtiger: 
inwieweit ist die Abweichung zum originalen NXP-Modell. Kann ich davon 
ausgehen, dass es für mein Vorhaben ausreicht?

von Helmut S. (helmuts)


Lesenswert?

> Nun bin ich jedoch etwas irritiert, da das Modell in der Yahoo-Group
sich 74HC08 nennt, jedoch nur 2 Eingänge hat. Aber noch wichtiger:
inwieweit ist die Abweichung zum originalen NXP-Modell. Kann ich davon
ausgehen, dass es für mein Vorhaben ausreicht?


Alle NXP Modelle enthalten nur ein Gatter.

Dein 74HCT1G08 hat nur die halbe Treiberfähigkeit des 74HCT08 laut 
Datenblatt.
http://www.nxp.com/documents/data_sheet/74HC_HCT1G08.pdf
Zitat: The standard output currents are half those of the 74HC08 and 
74HCT08.



> Des weiteren ist mir noch unklar, was der Unterschied zwischen den
Dateien
- hc_tfast
- hc_tnomi
- hc_tslow

"fast" ist der beste Fall - min. Verzögerung, min. Anstiegszeit, höchste 
Treiberfähigkeit

"nomi" typisch

"slow" ist der schlechteste Fall - max. Verzögerung, max. Anstiegszeit, 
schlechteste Treiberfähigkeit

Kurzschlusströme 74HC86 bei 3,3V mit dem NXP-Modellen
slow 12mA
nomi 18mA
fast 26mA

Dein Baustein kannt dann ungefähr den halben Strom.

: Bearbeitet durch User
von Andreas R. (guldin)


Angehängte Dateien:

Lesenswert?

Hallo erstmal,
ich wünsche euch noch ein gutes neues Jahr! Nach einer kleinen Auszeit 
setze ich mein Projekt wieder fort. Inzwischen haben sich dazu auch ein 
paar Fragen angehäuft.

1. Das AND-Gatter 74HC08 (aus der Yahoo-Gruppe) möchte ich mit einer 
Versorgungsspannung von 3,3V betreiben. Wähle ich dort in den 
Einstellungen, in der Zeile „SpiceLine“ VCC=3.3 funktioniert dies auch. 
Eine separate Spannungsquelle, die ich nach Anleitung eingefügt und VCC 
genannt habe hat jedoch keine Auswirkungen auf das Verhalten der 
Schaltung. Daher bin ich mir nicht mehr sicher, ob diese überhaupt nötig 
ist.

2. Der nächste Punkt wären die beiden Dateien 74HC.lib und 74HC_v.lib 
aus der Yahoo Gruppe. Springt die Spannung an den Eingängen des Gatters 
von 0V auf 3,3V, dann dauert es 18,9ns bis der Ausgang eine Spannung von 
3,3V erreicht hat, egal ob die 74HC.lib  oder die 74HC_v.lib verwendet 
wurde. Bei der 74HC_v.lib steht: „Modified 74HC.lib. Input and output 
depends on real supply voltage. ” Daher vermutete ich, dass die 
Reaktionszeit etwas größer werden müsste und nicht gleich bleibt.

Im Anhang befindet sich der Testaufbau. In den .lib Dateien habe ich die 
Kommentar-Sternchen vor D1 und D2 entfernt, um die „clamp diodes“ zu 
aktivieren. Ich möchte mich schon einmal bei jeder Person bedanken die 
sich die Zeit nimmt, mir in einem oder mehreren Punkten weiterzuhelfen. 
Auch freue ich mich über Verbesserungsvorschläge, das Verhalten noch 
realistischer zu machen und möglichst alles aus diesem Modell 
herauszuholen. Später möchte ich mich trotzdem noch an das HSpice-Modell 
heranwagen.

Gruß
guldin

von Helmut S. (helmuts)


Lesenswert?

Hallo Guldin,

die externe Quelle wird für die Eingangs-und Ausgansspannungen 
verwendet, wenn man die 74hc_v.lib verwendet. Trotzdem muss man aber die 
VCC=3.3 setzen da damit die delays mit einer Formel berechnet werden.

Diese Näherungsforml habe ich mir beim Erstellen dieser Library 
ausgedacht. Es ist natürlich eine Näherungsformel.

.param td1=1e-9*(9-3-3)*4.0/({vcc1}-0.5)*{speed1}


* 2-input AND gate
* tpd 25n/9n/7n
* tr 19n/7n/6n
.SUBCKT 74HC08  A B Y  VCC VGND  vcc1={vcc} speed1={speed} 
tripdt1={tripdt}
.param td1=1e-9*(9-3-3)*4.0/({vcc1}-0.5)*{speed1}
*
XIN1  A Ai  VCC VGND  74HC_IN_1  vcc2={vcc1}  speed2={speed1} 
tripdt2={tripdt1}
XIN2  B Bi  VCC VGND  74HC_IN_1  vcc2={vcc1}  speed2={speed1} 
tripdt2={tripdt1}
*
A1  Ai Bi 0 0 0  0 Yi 0  AND  tripdt={tripdt1}  td={td1}
*
XOUT  Yi Y  VCC VGND  74HC_OUT_1X  vcc2={vcc1} speed2={speed1} 
tripdt2={tripdt1}
.ends

von Andreas R. (guldin)


Lesenswert?

Vielen Dank Helmut,
ich habe es nochmal getestet und glaube auch verstanden. Also wenn ich 
meine Versorgungsspannung auf 3,27V stelle, dann muss diese sowohl in 
der separaten Spannungsquelle, als auch in der Zeile SpiceLine 
hinterlegt sein.
Jetzt würde mich noch interessieren wie ich eine Hysterese einbauen 
könnte. (Ist das realistisch?)
Für den Worst-Case wären es quasi zwei Kennlinien.
--> Werte aus Datenblatt
Betrieb im Bereich -40°C bis +125°C

          | HIGH-level input voltage   |  low-level input voltage
__________|____________________________|__________________________
VCC=2V    | 1,5V                       |  0,5V
VCC=4,5V  | 3,15V                      |  1,35V
VCC=6V    | 4,2V                       |  1,8V

Falls das kein so idealer Ansatz ist, würde ich es doch einmal mit dem 
originalen NXP-Modell versuchen.
http://www.nxp.com/products/discretes-and-logic/logic/gates/and-gates/quad-2-input-and-gate:74HC08PW?tab=Design_Tools_Tab

Das wären dann folgende 3 Dateien:
1. hct.cir
--> ruft die jeweils eingestellten Subcircuits in folgenden Dateien auf
(daher vielleicht unnötig)

2. hc_tslow.cir
--> hier wäre das eigentliche AND-Gatter enthalten (warum hat das nur 
einen Eingang?)

.SUBCKT HC08pck 2 3 1 0
*IN=2, OUT=3, VCC=1, GND=0
XHC08     20  30  10  90          NINV1
XPK14  2 90  3 90 90 90  0 90 90 90 90 90 90  1
+     20 90 30 90 90 90 90 90 90 90 90 90 90 10 pk14
.ENDS

3. tssop.s
--> hier ist .SUBCKT pk14 enthalten. (Widerstände der Anschlusspins)

Da stehe ich jetzt ziemlich auf dem Schlauch, da mir nicht klar ist wie 
die Subcircuits zu verknüpfen sind, um am Ende auch die richtigen 
Anschlüsse zu erhalten. Ich werde jetzt mit dem aktuellen Modell meine 
Simulation testen, aber es wäre schon gut, möglichst an das Original 
heran zu kommen, da es sich um ein sicherheitsrelevantes System handelt. 
(Die Simulationen werden später nochmal mit Messungen verglichen)

Also nochmals Danke!

Gruß
guldin

von Andreas R. (guldin)


Angehängte Dateien:

Lesenswert?

Jetzt habe ich .SUBCKT HC08pck als AutoGenerated Symbol eingefügt, sowie 
die Datei tssop.s in tssop.lib umbenannt und mit einer Spice Directive 
verknüpft.
Das Ergebnis sieht vielversprechend aus. (siehe Anhang)
Allerdings fehlt jetzt noch ein 2. Eingang. Ich hoffe, dass es sich um 
eine Kleinigkeit handelt, aber komme einfach nicht drauf.

von Helmut S. (helmuts)


Lesenswert?

--> Werte aus Datenblatt
Betrieb im Bereich -40°C bis +125°C

          | HIGH-level input voltage   |  low-level input voltage
__________|____________________________|__________________________
VCC=2V    | 1,5V                       |  0,5V
VCC=4,5V  | 3,15V                      |  1,35V
VCC=6V    | 4,2V                       |  1,8V


Diese Zahlen sind die Streuung der Schaltschwelle der Eingänge. Das hat 
nichts mit Hysterese zu tun. Jeder Baustein hat einen Schwellwert 
dazwischen. Typischerweise liegt der Schaltpunkt bei Vcc/2. Es macht gar 
keinen Sinn da etas anderes zu simulieren als eine! bestimmte 
Schaltschwelle. Nimm typisch und es wird am besten der realen Anwendung 
entsprechen.

: Bearbeitet durch User
von Andreas R. (guldin)


Angehängte Dateien:

Lesenswert?

Hallo allerseits,

ich habe letzten Endes von NXP die Werte für VCC=3,3V bekommen.
Der Schaltpunkt kann bei dieser Spannung zwischen 0,99V & 2,31V 
schwanken. (unabhängig von der Temperatur)

Vor das NXP Model habe ich noch ein ideales AND-Gatter von LTspice 
geschaltet (Abb. 1) und das Ganze als Subcircuit in einem neuen Symbol 
verpackt.(Abb. 2)
Vhigh=3.3 und Ref=0.5 im Subcircuit entsprechen VCC=3.3 und THref =0.5 
im fertigen Symbol. (insgesamt drei Symbole für slow/nomi/fast)

Somit kann ich am fertigen Symbol die Schaltschwelle verstellen.
Jetzt meine Frage: Fällt jemandem noch ein gravierender Nachteil auf 
bzw. eine Beschaltung, bei der das Modell versagt?

Nochmals Danke. Jetzt dürfte ich nicht mehr all zulange mit diesem Thema 
nerven :)

Gruß
guldin

: Bearbeitet durch User
von Karsten (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Gemeine,

ich habe ein ähnliches Problem mit dem Einfügen von den NXP HC-Modellen 
in LTSpice. Eigentlich benötige ich ein Modell vom 74HC4066. Das finde 
ich in LTSPice aber nicht. Daher die Idee sich das aus der NXP HC 
library zu extrahieren. Um das ganze zu verstehen habe zunächst mit 
einem überschaubaren Bauteil 74HC00 angefangen. Den Spice Code von NXP 
habe ich angehangen. Der Overhead ist weggelassen wegen der Übersicht.
Wenn ich das ganze richtig interpretiere, dann fehlt hier der zweite 
Eingang des NAND-Gatters. Ist das so richtig oder übersehe ich etwas?
Das nur ein Gatter in der library vorhanden ist, ist soweit o.k. 
Allerdings erschließt sich mir die Verdrahtung des Packages (in meinem 
Fall pk14) nicht.
Daher meine zwei Fragen an die Experten:
a) Fehlt wirklich der zweite EIngang vom NAND Gatter oder übersehe ich 
etwas?
b) Wie ist das Gatter im Package angeschlossen?

Viele Grüße
Karsten

von Andreas R. (guldin)


Angehängte Dateien:

Lesenswert?

Hallo Karsten,

also so wie ich das erkenne, werden zwar die immer verwendeten 
Gehäusepins 14 bzw. 7 für VCC bzw. GND verwendet, jedoch für das 
AND-Gate nur die Anschlüsse 1A und 1Y
-------- .SUBCKT HC00pck 2 3 1 0 --------------------------------
-------- *IN=2, OUT=3, VCC=1, GND=0 -----------------------------

in Folgender Zeile sind Pins 1 bis 14 benannt:
-------- XPK14  2 90  3 90 90 90  0 90 90 90 90 90 90  1 --------

von dort ist nach jedem Pin ein Widerstand in Reihe geschaltet,
nach diesen jeweils in Reihe eine Spule
und die Enden kommen an den "internen" Anschlüssen 15 bis 28 herraus
-------- +     20 90 30 90 90 90 90 90 90 90 90 90 90 10 pk14 ---

Der INV2 ist dann mit den Ursprünglichen Pins verbunden.
-------- XHC00     20  30  10  90          INV2 -----------------

So ist auch der Anschluss GND=0 an Pin 7 (Außenseite des Gehäuse) auf 
den internen Pin 21 (Innenseite des Gehäuses) gelegt. Dieser ist mit der 
Nummer 90 mit INV2 verbunden. Mit 90 sind jedoch auch die übrigen 
Anschlüsse belegt.
Das würde bedeuten, dass die folgenden Pins auf GND gebrückt sind:
1B, 2A, 2B, 2Y, 3A, 3B, 3Y, 4A, 4B, 4Y

Ich gehe davon aus, dass es wirklich nur die zeitliche Verzögerung 
simulieren soll. Nachteil wäre dann natürlich, dass nicht erkannt wird 
was passiert, wenn an Eingang 1A und 1B unterschiedliche Spannungen 
anliegen. Ansonsten könntest du ja wie ich ein ideales AND-Gate aus 
LT-Spice in Reihe zu dem NXP-Modell schalten.

Gruß
Guldin

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.