Forum: Mikrocontroller und Digitale Elektronik 74hc595 - Qa bleibt immer low


von Mark T. (bitts)


Lesenswert?

Hallo,

ich habe einen 74hc595 in LTSpice getestet, aber Qa (Q0) bleibt immer 
low.
Die anderen Ausgänge funktionieren wie erwartet. Die beiden Pulse am 
Eingang werden durchgeschoben.

Kann mir jemand sagen, was falsch läuft?

Die Schaltung sieht so aus:
http://up.picr.de/28428751pz.png

Damit kein Missverständnis auftritt: Der Ausgang, an dem R1 hängt bleibt 
low.

von Jörg R. (solar77)


Lesenswert?

Hat R1 evtl. einen zu kleinen Wert?

Wie ist es wenn Du, nur zum testen, den Dataeingang permanet auf H 
legst?

Kannst Du die Pegel von V2, V3 und Q0 grafisch darstellen?

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Mark T. schrieb:
> ich habe einen 74hc595 in LTSpice getestet, aber Qa (Q0) bleibt immer
> low.

Unwahrscheinlich.

> Die anderen Ausgänge funktionieren wie erwartet. Die beiden Pulse am
> Eingang werden durchgeschoben.
>
> Kann mir jemand sagen, was falsch läuft?
>
> http://up.picr.de/28428751pz.png

Du hast den Takt für das Schieberegister und den Takt für das Latch
direkt verbunden. Unter diesen Umständen ist das Latch (vulgo: die
Ausgänge) dem Schieberegister immer einen Takt hinterher. Das steht
auch so im Datenblatt. Ist es das, was du beobachtest?

von Mark T. (bitts)


Lesenswert?

Jörg R. schrieb:
> Hat R1 evtl. einen zu kleinen Wert?

Die Widerstände haben alle 10k.

> Wie ist es wenn Du, nur zum testen, den Dataeingang permanet auf H
> legst?

Kein Unterschied.

> Kannst Du die Pegel von V2, V3 und Q0 grafisch darstellen?

http://up.picr.de/28429174bj.png

blau = V2
grün = V3
rot = Q0


Axel S. schrieb:
> Mark T. schrieb:
>> ich habe einen 74hc595 in LTSpice getestet, aber Qa (Q0) bleibt immer
>> low.
>
> Unwahrscheinlich.

:-)
Ich kann es selbst nicht glauben, aber der Screenshot zeigt's.

>
> Du hast den Takt für das Schieberegister und den Takt für das Latch
> direkt verbunden. Unter diesen Umständen ist das Latch (vulgo: die
> Ausgänge) dem Schieberegister immer einen Takt hinterher. Das steht
> auch so im Datenblatt. Ist es das, was du beobachtest?

Diese Verzögerung hatte ich erwartet, denn das hatte ich in einem 
Tutorial dieses Forums gelesen.
Für mich sieht es so aus, als ob an Pin Q1 das Signal von Q0 anliegt und 
an Q2 das Signal von Q1, usw.
Das ließe sich dann mit einer Verschiebung der Pinbelegung erklären. 
Allerdings fehlt dann Q7S.

von Mark T. (bitts)


Lesenswert?

Hier habe ich mal den Takt und Q0 bis Q4 dargestellt.

http://up.picr.de/28429283me.png

von Jörg R. (solar77)


Lesenswert?

Mark T. schrieb:
> Hier habe ich mal den Takt und Q0 bis Q4 dargestellt.
>
> http://up.picr.de/28429283me.png

Kannst Du zu dieser Grafik noch den Reseteingang hinzufügen?

Bleibt Q0 auch auf "L" wenn die Simulation länger läuft?


Gute Nacht?

: Bearbeitet durch User
von Forist (Gast)


Angehängte Dateien:

Lesenswert?

Mark T. schrieb:
> Die Schaltung sieht so aus:
> http://up.picr.de/28428751pz.png

Wie schön.

Warum zeigst du sie nicht hier im Forum, wenn du hier deine Frage dazu 
stellst?

von Mark T. (bitts)


Lesenswert?

Jörg R. schrieb:
> Kannst Du zu dieser Grafik noch den Reseteingang hinzufügen?

Ich habe bisher noch nie mit "Label" gearbeitet. Das hier sollte 
deutlicher sein:
http://up.picr.de/28431835mf.png


> Bleibt Q0 auch auf "L" wenn die Simulation länger läuft?

Ich habe es 600s laufen laufen lassen, wobei an DS dauerhaft 5V angelegt 
waren. Q0 bleibt low.

@Forist
In manchen Foren verliert man mit dem Einstellen sämtliche Rechte an 
hochgeladenen Bildern und wenn man versehentlich etwas Falsches 
hochgeladen hat, kann man es nicht mehr ändern. Metadaten werden über 
den ext. Server eliminiert.

von Mark T. (bitts)


Angehängte Dateien:

Lesenswert?

Ich habe LT Spice noch mal neu installiert und die benötigten Dateien in 
einen Ordner gepackt. Vielleicht kann sich das so jemand mit mehr 
Erfahrung ansehen und den Fehler finden.

von Jörg R. (solar77)


Lesenswert?

Mark T. schrieb:
> Ich habe LT Spice noch mal neu installiert und die benötigten
> Dateien in
> einen Ordner gepackt. Vielleicht kann sich das so jemand mit mehr
> Erfahrung ansehen und den Fehler finden.

Ich komme leider zum selben Ergebnis wie Du. Ich finde auch keine andere 
Lib für den Chip. Die vorhandene scheint fehlerhaft zu sein.

von Mark T. (bitts)


Lesenswert?

Danke, dass du es dir angesehen hast.
Ich werde die Simulation überspringen und gleich zum Steckbrett greifen.

von Kurt B. (kurt-b)


Lesenswert?

Mark T. schrieb:
> Danke, dass du es dir angesehen hast.
> Ich werde die Simulation überspringen und gleich zum Steckbrett greifen.

Ändere mal die Flankenrichtung der Pulse.

 Kurt

von Mark T. (bitts)


Lesenswert?

Wie meinste das?
Es treten doch zwangsläufig abwechselnd positive und negative Flanken 
auf.

von Kurt B. (kurt-b)


Lesenswert?

Mark T. schrieb:
> Wie meinste das?
> Es treten doch zwangsläufig abwechselnd positive und negative Flanken
> auf.

Eine Aktion, z.B. weiterschieben, wird entweder von einer steigenden 
oder fallender Flanke ausgelöst.

Wenn deine Flanke(n) da andersrum sind dann kann es sein dass erst 
weitergeschoben wird wenn du bereits das nächste Bit am Eingang angelegt 
hast, das erste geht dann ev. verloren.
(es ist ein Gedanke, ob er zutrifft weiss ich jetzt nicht, müsste das 
Datenblatt hergeben)


 Kurt

von Mark T. (bitts)


Lesenswert?

Der 74HC595 reagiert nur auf steigende Flanken. Beim Testen hatte ich 
den Dateneingang dauerhaft auf High gesetzt, aber Q0 ist weder bei der 
steigenden, noch bei der fallenden Flanke geändert worden, während Q1 
bis Q7s den Zustand übernommen haben (nur einen Takt zu früh).

von Kurt B. (kurt-b)


Lesenswert?

Mark T. schrieb:
> Der 74HC595 reagiert nur auf steigende Flanken. Beim Testen hatte ich
> den Dateneingang dauerhaft auf High gesetzt, aber Q0 ist weder bei der
> steigenden, noch bei der fallenden Flanke geändert worden, während Q1
> bis Q7s den Zustand übernommen haben (nur einen Takt zu früh).

Dreh deinen Takt um 180° vill geht's dann.

 Kurt

von Mark T. (bitts)


Lesenswert?

Meinst du die Takte der beiden Takteingänge?
Habe ich gerade probiert, aber Q0 bleibt low.

von Kurt B. (kurt-b)


Lesenswert?

.

Überlegung:

Es werden 8 Bits ins Shift-Register geschoben, am Ausgang des IC stehen 
aber nur 7 an. (das letzte Bit fehlt und die anderen stehen an falscher 
Stelle)

Kann es sein dass da einfach der letzte Schritt nicht ausgeführt wird, 
nämlich die (letzte) Übergabe ins Ausgaberegister (Storage-Register)?

 Kurt

Nachtrag:
wenn 8 Schiebebefehle und 8 Übergabebefehle gesendet werden, aber nur 7 
Übergabe wirken dann könnte es sein dass erst nach der Übergabe 
geschoben wird. Die Reihenfolge von einlesen/schieben und Übergabe.

.

: Bearbeitet durch User
von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Was sagt das Schieberegister beim händisch Daten rein schieben?
Also wirklich von Hand, IC auf's Steckbrett, Vcc und Vss dran und 
rumgetriggert.

Kann ja auch sein, daß das Teil einfach nur einen Ausgang platt hat.

Alternativ Datenblatt mit µC-Verschaltung prüfen.
Denke, falsche Polarität der Flanken oder einbrechende 
Versorgungsspannung sind hier gute Kandidaten.

MfG

von Mark T. (bitts)


Lesenswert?

Kurt B. schrieb:
> .
>
> Überlegung:
>
> Es werden 8 Bits ins Shift-Register geschoben, am Ausgang des IC stehen
> aber nur 7 an. (das letzte Bit fehlt und die anderen stehen an falscher
> Stelle)

Jupp, so sieht es für mich aus:
http://up.picr.de/28431835mf.png

> Kann es sein dass da einfach der letzte Schritt nicht ausgeführt wird,
> nämlich die (letzte) Übergabe ins Ausgaberegister (Storage-Register)?

Das würde nur dann zu den Symptomen passen, wenn die Pinne Q7s (Q8) und 
Q0 vertauscht wären. Das alleine kann es aber nicht sein, denn ich habe 
beim Testen immer mind. 20 Takte ausgeführt. Der Pegel von Q0 ändert 
sich einfach nicht.
So, wie ich das Spice-Modell und die Netlist des Symbols verstehe, sind 
die Pinne nicht vertauscht.

>
>  Kurt
>
> Nachtrag:
> wenn 8 Schiebebefehle und 8 Übergabebefehle gesendet werden, aber nur 7
> Übergabe wirken dann könnte es sein dass erst nach der Übergabe
> geschoben wird. Die Reihenfolge von einlesen/schieben und Übergabe.

Das meine ich auch ausschließen zu können, denn ich habe nach Jörgs 
Hinweis testweise am Dateneingang konstant 5V angelegt und dann mind. 
100 Takte ausgeführt.


@Patrick
Die ICs zum Testen habe ich erst am Freitag erhalten. Ich werde es so 
bald wie möglich auf einem Steckbrett testen.
Ein physikalisch defektes IC erklärt allerdings nicht das Verhalten 
unter LTSpice :)

von Jörg R. (solar77)


Lesenswert?

Hallo Mark,

ich gehe mal dem Kommentar von Axel nach.

Beitrag "Re: 74hc595 - Qa bleibt immer low"

Vielleicht ist es wirklich ein Timingproblem. Lt. Diagram (Datenblatt) 
werden die Daten nicht parallel mit dem Clock übernommen. Die Übernahme 
über STCP erfolgt erst wenn Clock wieder auf "L" liegt.

Mal sehen, wenn ich es heute noch dazu komme ändere ich die Schaltung in 
LTSpice ab und starte eine neue Simulation.

Wenn das der Grund war kann es sein das sich die Schaltung nach jetzigem 
Aufbau auf einem Breadboard unterschiedlich verhält > Stichwort: 
Exemplarstreuungen.

Ich gehe einfach mal davon aus das die 595'er Lib funktioniert. Der 
Ersteller der Lib wird sie getestet haben.

Unabhängig davon baue ich die Schaltung nach jetzigem Stand auch mal 
auf, den Chip habe ich da.

Gruß Jörg

: Bearbeitet durch User
von Mark T. (bitts)


Lesenswert?

Jörg R. schrieb:

> Vielleicht ist es wirklich ein Timingproblem. Lt. Diagram (Datenblatt)
> werden die Daten nicht parallel mit dem Clock übernommen. Die Übernahme
> über STCP erfolgt erst wenn Clock wieder auf "L" liegt.

Das erklärt nach meinem Verständnis nicht, warum die Daten, die man an 
Q0 erwartet, an Q1 anliegen und Q0 dauerhaft low bleibt.

Laut meinem Datenblatt werden die Ausgänge mit den steigenden Flanken 
gesetzt (Seite 5):
http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf

Wenn es eine Timingproblem wäre, müsste sich das auch auf Q1 bis Q8 
auswirken.

> Mal sehen, wenn ich es heute noch dazu komme ändere ich die Schaltung in
> LTSpice ab und starte eine neue Simulation.

Ich bin gespannt.

> Wenn das der Grund war kann es sein das sich die Schaltung nach jetzigem
> Aufbau auf einem Breadboard unterschiedlich verhält > Stichwort:
> Exemplarstreuungen.
>
> Ich gehe einfach mal davon aus das die 595'er Lib funktioniert. Der
> Ersteller der Lib wird sie getestet haben.

Davon würde ich auch ausgehen. Allerdings ist die lib schon sehr alt und 
es hat in der Zwischenzeit ein paar Updates des Programms gegeben.
>
> Unabhängig davon baue ich die Schaltung nach jetzigem Stand auch mal
> auf, den Chip habe ich da.

Vielleicht komme ich heute auch noch dazu. Ich vermute, dass es auf dem 
Steckbrett funktioniert, wie man es laut Datenblatt erwarten kann.

: Bearbeitet durch User
von Jörg R. (solar77)


Lesenswert?

Mark T. schrieb:
> Laut meinem Datenblatt werden die Ausgänge mit den steigenden Flanken
> gesetzt (Seite 5):

Ja, das ist richtig. Aber STCP geht erst auf "H" wenn SHCP wieder auf 
"L" liegt. > Seite 5, Fig. 7.

Das ist das was Axel meinte, die Beiden Eingänge nicht parallel zu 
schalten.


Die Daten müssen erst sicher bereitstehen um übernommen werden zu 
können.

: Bearbeitet durch User
von Mark T. (bitts)


Lesenswert?

Jörg R. schrieb:
> Mark T. schrieb:
>> Laut meinem Datenblatt werden die Ausgänge mit den steigenden Flanken
>> gesetzt (Seite 5):
>
> Ja, das ist richtig. Aber STCP geht erst auf "H" wenn SHCP wieder auf
> "L" liegt. > Seite 5, Fig. 7.
>
> Das ist das was Axel meinte, die Beiden Eingänge nicht parallel zu
> schalten.

Das verstehe ich zwar, aber das ist meiner Meinung nach nicht 
entscheidend, zumal in den Datenblättern ausdrücklich erwähnt wird, wie 
sich der Baustein verhält, wenn die beiden Takteingänge miteinander 
verbunden werden.

Die steigende und fallende Flanke von STCP und SHCP finden laut Diagramm 
in etwa gleichzeitig statt.
Wichtig ist aber nur die Verzögerung, die die Register brauchen, um die 
Zustände bei steigender Flanke zu übernehmen. (Seite 12, Fig. 8+9).
Wenn die steigende Flanke von STCP zu früh kommt, dann müsste sie die 
Daten beim nächsten Takt übernehmen.
Die Daten werden aber zuverlässig ins Shiftregister übernommen, denn 
sonst würden sie nicht bei Q1-Q8 ankommen. Das kann man daran erkennen, 
dass die Daten auch im Shiftregister von Q0 ankommen, denn Q1 hängt ja 
am Ausgang des Shiftregisters von Q0.

> Die Daten müssen erst sicher bereitstehen um übernommen werden zu
> können.

Jau, das funktioniert ja grundsätzlich.


Ich habe das nun auf einem Steckbrett ausprobiert. Mangels Erfahrung 
musste ich erst rumfummeln, bis ich den Takteingang entprellt hatte, 
aber nun geht es wie erwartet.

Dann habe ich mir noch mal die Simulation zur Brust genommen.
Wenn ich das Widerstandsarray nicht gegen GND, sondern gegen Vcc 
schalte, liegt Q0 immer auf Vcc.
Dann habe ich das Widerstandsarry offen gelassen. Q0 hat dann 
stufenweise mit den gesetzten Eingängen eine höhere Spannung erhalten.
Der Pin Q0 ist bei der Simulation immer hochohmig und die Daten kommen 
einen Takt zu früh an Q1-Q8 an.
Oder man kann es auch so sehen: Die Pegel von Q0 bis Q7 liegen an den 
Pins Q1 bis Q8 an und Q7s fehlt.

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.