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 ?
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
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 ;)
@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 :-)