Hallo, da ich mehr Output-Pins benötige wollte ich diese über ein Schieberegister (74*164) realisieren. Wenn ich das Datenblatt richtig gelesen habe, werden dabei die Bits tatsächlich "durchgeschoben" und nicht erst nachdem alle Bits "geladen" wurden die Outputs entsprechend gesetzt. Also wenn ich da z.B. 8 Bit reinschicke, dann ändern sich alle 8 Outputs 8mal bis ich sie dann auf den gewünschten Werten habe. Das ist aber nicht erwünscht. Wie kann ich das von mir gewünschte Verhalten (während dem "schicken" der 8 Bit sollen sich die Outputs nicht ändern, erst wenn die 8 Bit komplett übertragen wurden geschieht das). Natürlich könnte ich eine 8Porterweiterung mit I2C nehmen, leider ist die aber alles andere als billig (zumindest nicht vergleichbar mit dem Schieberegister ;)). Falls es da doch billigere gibt wäre ich für Typenbezeichnungen dankbar. Lars.
Also ein 74xx594 habe ich bei Reichelt/Conrad nicht gefunden. Bei segor kostet das auch immerhin 5euro. Im Vergleich zu einem 74xx164 mit ca. 30cents denke ich ich werde dass mit einer etwas aufwendigeren Logikschaltung lösen wenn möglich. Zumindest bei einer meiner zwei Anwendungen ist das möglich. Sehe gerade es gibt noch den 74xx595 den gibts bei Reichelt auch fuer 30cents. Ich werde mir da mal ein Datenblatt besorgen - kann mir jemand sagen was der Unterschied zwischen 74xx594 und 74xx595 ist ?
Keine Ahnung, aber ich verwende den HC595 zusammen mit dem Hardware-SPI der AVRs ohne Probleme. Codebeispiel auf http://www.mikrocontroller.net/avr-gcc-faq.htm Gruß Andreas
Hi, Dein Schieberegister sollte auf jeden Fall einen Freigabeeingang besitzten. Nur so kannst du den Wert verändern, ohne gleich die Ausgänge zu verändern. Allerdings gehört dann noch ein Zwischenspeicher dazu. (Weiß leider keine Typbezeichnung auswendig. Solche Teile gibts aber.) Wenn nicht, nimm doch nen 74373 oder 74573 Latchbaustein. Brauchst halt ein paar Leitungen mehr, aber mit 11 Leitungen kannst du immerhin schon 8 dieser Latchteile adressieren. (Brauchste halt noch nen Adressdekoder. Irgendein BCD nach dezimal-Dekoder oder sowas in der Art.) Diese Möglichkeit ist dazu noch viel leichter zu programmieren. Bis denn, ERDI - Soft.
Das trifft auf den HC595 zu. Nachtrag: das von mir genannte Beispiel ist natürlich ein Software-SPI, aber mit dem Hardware-SPI habe ich den 595 auch schon verwendet.
@Andreas: ich habe nur 3 Leitungen zur Verfügung (Clock, Data, Reset). Brauche ich fuer den 595 nicht noch einen 2.Clock für das "Storage Register" ?! Das Datenblatt gibt's ja hier unter "Datenblätter" aber ich bin nicht so richtig schlau geworden. Ich (wollte) nach einem Reset genau 8 Bits senden und die sollten dann an den Ausgängen des Schieberegisters (bzw 595) anliegen. Ich werde mal sehen ob ich nicht noch wo ein ausführlicheres Datenblatt finden kann :)
Reset braucht man nicht. Mit Clock und Data schiebt man die x mal 8 Bit hinein und mit dem Latch werden die Informationen gleichzeitig auf die Ausgänge geschaltet. Sollte vorher irgentwas undefiniertes im Latch stehen, dann wird das durch die erste auszugebende Information auf einen definierten Stand gebracht. 5 Euro Kaufpreis kann ich nicht nachvollziehen. Im letzten Jahr hab ich für die Dinger so ca. 1 Mark bezahlt. Siegfried
Texas Instruments hat gute Datenblätter und einen sehr guten Service! nur mal so...
achso, um die Unterschiede zu klären: 74xx594 (gibt es wirklich, zB bei TI) 2-State Ausgänge 74xx595 3-State Ausgänge 74xx596 Open-Collector alle drei haben ein Output-Latch.
Bestens für meine Zwecke geeignet: 74xx259, 8bit addressable latch. Schade das es das nicht mit 16bit gibt (oder habe ich es nur mal wieder nicht finden können ?).
wenn du meinst... Ich denke du hast nur drei Leitungen frei, die brauchst du schon zum Adressieren, oder? Ich guck mir nochmal das Datenblatt an, meine im Moment aber das der xx259 acht einzelne Latches hat, brauchst du da nicht mehr Leitungen? Warum nimmst du denn jetzt nicht den 74xx595? kratz an Kopf
Ich verwende einen **164 bei dem der Port8 als "High-Enable" Ausgang verwendet wird. D.h. ich kann effektiv nur 7 der 8 Leitungen nutzen da das 8. als Information dient dass die anderen 7 Werte gültig sind. Mit diesen 7 Leitungen steuere ich dann 2 **259 an und habe damit meine 16 tatsächlichen Ausgänge. Und bleibe meinem Buskonzept mit 3 Leitungen (Data, Clock, Reset) treu :)
Hallo Lars, wenn ich mir Deine ursprüngliche Fragestellung ansehe, dann erfüllt der 74***595 genau Deine Anforderungen. Zudem kann man diese Teile auch noch kaskadieren. D.h. 8 - 16 oder mehr Bits reinschieben, ohne das eine Statusänderung am Ausgang erfolgt, Latch aktivieren und alle Ausgänge haben auf einen Schlag die reingeschobenen Informationen. Die Dinger gibts überigens auch zum Einlesen mit Input-Latch. Unterm Strich spendierst Du 3 Portleitungen und kannst X mal 8 Bit ausgeben. Siegfried
mangels Platz auf der Platine werde ich wohl doch den **595 nehmen müssen, es ist auch mit meinem Bus verträglich ich muss dann nur die Leitungen anders belegen :) Jetzt muss ich nochmal die 2 bereits fertigen Buskomponenten prüfen ob das bei denen nicht zu Problemen führt aaaahhhhh ;)
>**595 nehmen müssen
was heisst denn müssen???
ich hab´s nochmal gezeichnet, zeig mir mal wie es einfacher geht, bitte.
Mein Acrobat-Reader behauptet, die PDF-Datei sei beschädigt. :-( Siegfried
@Heiko: EAGLE (http://www.cadsoft.de) @Lanius und Rest zum besseren Verständnis des Problems: Ich schicke über meinen BUS (3 Leitungen) 8 Bit. 3 Bit davon dienen zur Angabe des Zielboards, 4Bit zur Angabe des Schalters auf dem Board und 1Bit dient zur Angabe der Schalterstellung (on/off). Bisher war Abfolge wie folgt: die 8 Bit gehen in ein Schieberegister (*164) dann werden die obersten 3 Bits über eine Logikschaltung mit der auf dem Board (per Dip-Switch) eingestellten ID verglichen. Nur (!) wenn diese übereinstimmt, wird der über die 4Bit-Adresse festgelegte Schalter auf den entsprechenden Wert gesetzt. Ich denke das sollte erklären wieso *259 mir für meine Zwecke als beste Lösung schien :) Nichtsdesdotrotz habe ich auf der Platine nicht genug Platz um die für meine bisherige Lösung benötigten ICs unterzubringen und muss mir deshalb etwas "schlaueres" einfallen lassen. Falls jemand eine Idee dazu hat, nur raus damit. Anforderungen sind: 2 oder 3Bit ID zur Kennzeichnung des Boards, 13 Schalter auf einem Board von denen jeder 2 Zustände kennt. Diese müssen über eine 3-Draht-Anbindung gesteuert werden können.
@Siegfried mit dem Acrobat Reader 5.0 kann ich die Datei problemlos darstellen, klappt sogar direct im Explorer. Hat sonst noch jemand Probleme mit dem PDF? @Lars kannst du nicht mal nen Plan machen und uns erzählen wozu das ganze gut sein soll? Vieleicht fällt uns dann ja was schlaueres ein. So ist mir das zu verwirrend. Was meinst du mit "Schalter"? Schalter lege ich per Hand um, die steuere ich nicht. Wenn ich dir helfen soll muss ich genauer wissen was du hast und was du willst.
Mit einem (oder mehreren) 74*165. Der hat 8 Dateneingänge. Mit einem Latch-Impuls werde die Daten ins Schieberegister gespeichert und können dann mit einer Clock Bit für Bit hinausgeschoben werde. Ist quasi ein inverser 74*595 und braucht auch 3 Steuerleitungen (Latch, Clock, Dataout).
Hmm. Habe jetzt schon anderweitig herausgelesen, daß man dazu wohl den 74*166 verwenden kann. Bin jetzt nicht der Hardwareexperte, vermute mal, daß die 165 und 166 sehr ähnlich sind. Haben ja auch fast die gleiche Nummer :-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.