Forum: Analoge Elektronik und Schaltungstechnik LTSpice: 74HC mit virtueller Masse


von Gerd E. (robberknight)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte einen 74HC-IC in meiner LTSpice-Simulation verwenden. Dafür 
gibt es ja in der Yahoo-Gruppe die 74HC-Lib. Funktioniert soweit.

Nun möchte ich den 74HC aber nicht wie sonst auf dem Spice-Ground 
betreiben, sondern 7V darüber. Also der VCC des 74ers auf 12V, sein GND 
auf 7V.

Ich hab jetzt versucht die Label "VCC" und "VGND" in meiner Simulation 
passend zu verbinden. Wie man oben sieht hat das leider nicht geholfen.

Ich bin jetzt nicht so der Meister was Spice-Direktiven angeht, kann mir 
jemand sagen wie ich das mache?

Außerdem möchte ich später verschiedene 74HC-ICs in meiner Simulation 
verwenden, manche auf 12V/7V, andere auf 5V/0V. Wie lege ich
dann fest, welche Einheit wie versorgt wird?

Vielen Dank.

Falls es hilft, hier noch die passenden Ausschnitte aus der 74HC_v.lib:
1
* 2-Schmitt-input NAND gate
2
* tpd 36n/13n/10n
3
* tr 19n/7n/6n
4
* VT+ 1.18/2.38/3.14
5
* VT- 0.63/1.67/2.26
6
.SUBCKT 74HC132  A B Y  VCC VGND  vcc1={vcc} speed1={speed} tripdt1={tripdt}
7
.param td1=1e-9*(13-3-3)*4.0/({vcc1}-0.5)*{speed1}
8
*
9
XIN1  A Ai  VCC VGND  74HC_IN_S_1  vcc2={vcc1}  speed2={speed1}  tripdt2={tripdt1} 
10
XIN2  B Bi  VCC VGND  74HC_IN_S_1  vcc2={vcc1}  speed2={speed1}  tripdt2={tripdt1} 
11
*
12
A1  Ai Bi 0 0 0  Yi 0 0  AND  tripdt={tripdt1}  td={td1}  
13
*
14
XOUT  Yi Y  VCC VGND  74HC_OUT_1X  vcc2={vcc1} speed2={speed1}  tripdt2={tripdt1}
15
.ends
16
*
17
*
18
* Schmitt-input; 1/3*Vcc -> 2/3*Vcc -> 1/3*Vcc
19
.SUBCKT  74HC_IN_S_1  in out  VCC VGND  vcc3={vcc2}  speed3={speed2}  tripdt3={tripdt2} 
20
.param Cval = 0.55e-12*4/({vcc3}-0.5)*{speed3}
21
.param vt1=1.89/4.5
22
.param vh1=0.49/4.5
23
.param gain=(1/{vcc3})
24
*
25
*D1 0   in  DIO1 
26
*D2 in VCC  DIO1
27
R1 in out10 10k
28
C1 out10 VGND {Cval}
29
R2 in VGND 1e8
30
**E1 out20 0 out10 VGND {gain}
31
*B1 out20 0 V=LIMIT(0,V(out10,VGND)*{gain},1)
32
B1 out20 0 V=LIMIT(0,V(out10,VGND)/max(V(VCC,VGND),1),1)
33
AE1  out20 0 0 0 0  0 out 0  SCHMITT  vt={vt1} vh={vh1} vhigh=1  tripdt={tripdt3}
34
.ends
35
*
36
*
37
.MODEL DIO2 D(Is=1e-12 Rs=10)
38
*
39
* Standard output driver
40
.SUBCKT  74HC_OUT_1X  in out  VCC VGND  vcc3={vcc2} speed3={speed2}  tripdt3={tripdt2}
41
.param trise1=6e-9*4.0/({vcc3}-0.5)*{speed3}
42
.param Rout=60*4.0/({vcc3}-0.5)*{speed3}
43
*
44
AE1  in 0 0 0 0  0 out10 0  BUF  tripdt={tripdt3}  trise={trise1}
45
*
46
*E1 out20 VGND out10 0 {vcc3}
47
B1 out20 VGND V=V(out10)*V(VCC,VGND)
48
Rout out20 out {Rout}
49
*D1 0   out  DIO2 
50
*D2 out VCC  DIO2
51
.ends

von Achim M. (minifloat)


Lesenswert?

Gerd E. schrieb:
> Nun möchte ich den 74HC aber nicht wie sonst auf dem Spice-Ground
> betreiben, sondern 7V darüber. Also der VCC des 74ers auf 12V, sein GND
> auf 7V.

Verschieb' doch einfach den Ground vom Rest der Schaltung auf -7V, gib 
dem 74HC seine 5V und dann sollte das auch gehen. Alternativ müsste man 
Modelle der 74er-Reihe finden, die aus Einzeltransistoren gebaut sind 
und nicht nur eine Verhaltensmodellierung in Form von "A-Devices" 
beinhalten. mf

von Gerd E. (robberknight)


Lesenswert?

Joachim минифлоть schrieb:
> Gerd E. schrieb:
>> Nun möchte ich den 74HC aber nicht wie sonst auf dem Spice-Ground
>> betreiben, sondern 7V darüber. Also der VCC des 74ers auf 12V, sein GND
>> auf 7V.
>
> Verschieb' doch einfach den Ground vom Rest der Schaltung auf -7V, gib
> dem 74HC seine 5V und dann sollte das auch gehen.

Ok, das würde für die 74HCs auf 12V/7V natürlich funktionieren.

> Alternativ müsste man
> Modelle der 74er-Reihe finden, die aus Einzeltransistoren gebaut sind
> und nicht nur eine Verhaltensmodellierung in Form von "A-Devices"
> beinhalten.

Kann man nicht irgendwie die Thresholds und Output-High und -Low mit nem 
Offset verändern?

Am besten wäre es wenn dieser Offset nicht fest als "GND+7V" 
einprogrammiert werden müsste, sondern an einem Netz-Label in der 
Schaltung hängt. Denn je nach Belastung etc. im Rest meiner Schaltung 
kann der Offset der beiden Zweige etwas variieren und das hat evtl. 
Einfluss auf das Verhalten.

von Johannes E. (cpt_nemo)


Lesenswert?

Joachim минифлоть schrieb:
> Alternativ müsste man
> Modelle der 74er-Reihe finden, die aus Einzeltransistoren gebaut sind
> und nicht nur eine Verhaltensmodellierung in Form von "A-Devices"
> beinhalten. mf

Nein, das geht auch mit den "A-Devices". Die haben einen Common-Pin, das 
ist immer der 8. Pin (s. LTSpice-Hilfe).

Man kann also schreiben:

A1  Ai Bi COM COM COM Yi nYi COM  AND  tripdt={tripdt1}  td={td1}

Auch an allen anderen Stellen, an denen das Netz "0" vorkommt, muss "0" 
durch "COM" ersetzt werden.

Weiterhin muss das COM-Netz auch herausgeführt werden und von außen auf 
das passende Potential gelegt werden. Schau dir dazu einfach mal die 
Symbole für digitale Gatter in LTSpice an, die haben einen Pin mit der 
Bezeichnung "Com" zu genau diesem Zweck.

von Helmut S. (helmuts)


Lesenswert?

Hallo Gerd,

Rechts-Mausklick auf das Symbol 74HC132 im Schaltplan

SpiceModel: VCC 0

-->

SpiceModel: VCC VGND


Es gibt auch eine Library 74HC_v.lib. Bei der ist die Ausgangsspannung
proportional zu VCC.

Gruß
Helmut

von Gerd E. (robberknight)


Lesenswert?

> Rechts-Mausklick auf das Symbol 74HC132 im Schaltplan
>
> SpiceModel: VCC 0
>
> -->
>
> SpiceModel: VCC VGND

Wunderbar, das wars. Vielen Dank.

Funktioniert wie gewünscht. Über einen anderen Label/Netznamen an dieser 
Stelle kann ich jetzt auch verschiedene Level innerhalb einer Simulation 
realisieren.

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.