PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 74HC 165 oder doch lieber was anderes?



coCo
20.09.2006, 16:03
Hi,
ich will nen Portexpander für meinen Mega32 bauen. Jetzt hab ich hier 5x 74HC 165 rumliegen. Im Wiki steht ja, dass es mit den 74HC 165 Probleme geben kann, also dass die Ports flattern können. Heißt das, dass die Ports zufällig während dem Betrieb auf low bzw. high geschaltet werden? Also wäre das "schädlich" für meinen Bot.
Soll ich lieber nen andren Portexpander kaufen? Auf die 3-5 Euro kommts mir nicht mehr an, es soll auf jeden Fall keine Probleme geben :D

MfG

SprinterSB
20.09.2006, 16:05
Das Ding ist ein ungelatchtes Schieberegister, d.h. während du die Daten durchschiebst, sind sie kurz an den Ausgängen zu sehen. Ob das Probleme macht hängt davon ab, wie schnell/träge die Komponenten an den Ausgängen des 74*165 sind. (Und natürlich auch davon, wie schnell du durchschiebst)

BTW: Zwischen einem 74*164 und 74*595 liegen weniger als 1 Cent.

coCo
20.09.2006, 16:11
Also würdest du mir empfehlen 74*595 zu kaufen?

Kann sein, dass es nur 1 Cent mehr kostet, aber ich muss die ja noch kaufen^^ Weil die 74*165 hab ich shcon zu Hause rumliegen.

MfG

SprinterSB
20.09.2006, 16:16
Was soll denn an die Expander dran?

coCo
20.09.2006, 16:29
Is noch net ganz klar. Soll eher für zukünftige Erweiterungen sein, weil ich bis jetzt eigentlich beinahe alle Ports belegt hab. Ich glaub ich kauf mir zur Sicherheit ein paar 74*595.

Mit den ICs kann ich die Ports nur als Ausgang definieren, wenn ich das richtig verstanden habe. Was für ICs bräuchte ich um die Ports als Eingang zu nutzen?

AVRboy
20.09.2006, 16:40
hi coco,

nim doch einen i2c portexpander z.b. PCF 8574 oder einen ähnlichen dieser sorte.

mfg

SprinterSB
20.09.2006, 16:40
In dem von dir zitierten Artikel hab ich die Typen einiger Input-Latches genannt. Erfahrungen damit hab ich aber keine. Evtl ist's angesagt, "richtige" Port-Expander für SPI zu verwenden, wo du nen Port als IN/OUT definieren kannst oder als Konstantstromquelle für LEDs oder so, als push/pull oder open drain.

Zum Testen aufm Steckbrett gehen die 165-er allemal, haben aber ein anderes Pinout als die gelatchten.

Besser als der 595 ist wohl der 594, weil der ein "latch clear" hat. Beim 595 sind die Latches nach Power-Up in einem undefinierten Zustand. Je nach Schaltung macht das auch Probleme, denn bis der µC up ist dauert's schon ein paar µs bis ms.

SprinterSB
20.09.2006, 16:42
Das Problem mit IIC-Expandern ist, daß das um Größenordnungen langsamer ist als SPI. ZUdem ist die Software aufwändiger.

coCo
20.09.2006, 17:35
In dem von dir zitierten Artikel hab ich die Typen einiger Input-Latches genannt.
Ah stimmt, das hab ich wohl übersehen. ](*,)

Ich will am Anfang keinen I2c expander nehmen, weil wie schon von SprinterSb gesagt die Programmierung anscheinend schwieriger ist. Und außerdem sind solche 8bit schieberegister im Wiki sehr schön beschrieben :)

Ich danke euch für eure Hilfe :)
Ich schau mal morgen ob der Elektronik-Laden hier in meiner Nähe solche Portexpander hat.

MfG

PICture
20.09.2006, 17:36
Hallo Coco!

Mit einem 74HC165 kannst Du problemlos 8 Eingänge durch 3 I/O Pins einlesen. Du brauchst zuerst die 8 bits mir einem Load Impuls in die D-Flipflops latchen und danach seriel mit Data und Clock einlesen. Die 74HC165 lassen sich kaskadieren und somit biliebige anzahl Eingänge mit nur 3 Portspins einlesen.

Die 74HC164 und 74HC595 funktionieren in umgekehrter Richtung und können für Erweiterung der Ausgangsports benutzt werden.

MfG

coCo
20.09.2006, 17:44
Also sind die 74HC165 für Eingänge, für Ausgänge brauch ich dann die 74HC595 bzw. 74HC594?
Die 595er lassen sich auch kaskadieren oder? Aber für die brauch ich dann nochmals 3 Ports. Somit könnte ich beliebig viele Eingänge und Ausgänge mit nur 6 Pins steuern?
Oder verstehe ich da grade etwas falsch?

PICture
20.09.2006, 17:50
Du vestehst es ganz richtig. Die 164 oder 595 lassen sich auch kaskadieren und für die brauchst Du nur 2 Ports für 164 oder 3 Ports für 595 (wenn die zu augegebenden Daten gelatched werden müssen).

SprinterSB
21.09.2006, 08:25
Also sind die 74HC165 für Eingänge, für Ausgänge brauch ich dann die 74HC595 bzw. 74HC594?
Die 595er lassen sich auch kaskadieren oder? Aber für die brauch ich dann nochmals 3 Ports. Somit könnte ich beliebig viele Eingänge und Ausgänge mit nur 6 Pins steuern?
Oder verstehe ich da grade etwas falsch?

Nur Ausgang (ungelatcht): 2 Ports: SCK, MOSI
Nur Ausgang (gelatcht): 3 Ports: SCK, MOSI, Latch Strobe
Nur Eingang (ungelatcht): 2 Ports: SCK, MISO
Nur Eingang (gelatcht): 3 Ports: SCK, MISO, Latch Strobe
Eingang + Ausgang (ungelatcht): 3 Ports: SCK, MISO, MOSI
Eingang + Ausgang (gelatcht): 4 Ports: SCK, MISO, MOSI, Latch Strobe

Dabei spielt es keine Rolle, wieviel Expander du kaskadierst. Für 100 gelatchte OUT-Expander brauchst du auch nur 3 Ports am µC.

digger
22.09.2006, 10:24
Wenns schnell gehen soll kannst Du auch 573 (Latch) oder
574 (D-Flipflop) nehmen, die werden gerne bei 805x-Systemen
verwendet um den Adressteil aus dem Address/Datenbus
zu speichern.
Vorteil: Du kannst mehrere Eingangsmässig parallelschalten
und hast dann n*8bit.
Schieben entfällt und die kann man auch hochohmig schalten.

Gruss
Digger

SprinterSB
22.09.2006, 10:38
@digger: Aber man hat damit keine Port-Expander, oder?

kalledom
22.09.2006, 12:00
Die von digger genannten Bausteine sind für einen 8 Bit breiten Parallel-Bus und nicht für seriellen Betrieb !!! (8 Bit D-Latch / 8 Bit D-Register !!!
Zum Betreiben dieser Bausteine sind 8 Bits für die Daten, 1...n Bits für die Adressierung und 1 Bit zum Latchen erforderlich.
Zum Einlesen gibt es 540 oder 541; ein weiteres Bit zum Lesen wird benötigt. Die Daten laufen über den gleichen 8 Bit-Bus.

FriLu
22.09.2006, 17:21
Hallo,
den 74xx573 hab ich gerne verwendet, >ansteuerung ist easy<...
MfG Lutz

kalledom
22.09.2006, 19:00
Der 573 hat den 'Schönheitsfehler' beim Einschalten etwas Zufälliges an den Ausgängen zu haben; deshalb bevorzuge ich den 273 mit Reset-Eingang.
Für Eingänge ist der 573 auch nicht besonders gut geeignet, weil er keine Schmitt-Trigger-Eingänge hat; da sind die 74LS540 / 541 besser geeignet.
Für die Chip-Auswahl (CS) ist ein Decoder zu empfehlen, da bei mehr als einem OE an den Eingangsbausteinen die Daten auf dem Bus kollidieren.

PS: Die Parallel-Schaltung ist für 255 * 8 Aus- und / oder Eingänge.
Zuerst wird die Adresse auf den 8 Bit Bus gelegt und DS = DataStrobe kurz aktiviert. Damit ist überall die Adresse 'festgehalten'. Die erzeugt über den Komparator 688 und den 8-poligen DIP-Schalter ein Chip-Select. Dann können die Daten mit RD eingelesen oder mit WR in das 8 Bit Register geschrieben werden.

Edit: Falls es noch niemand bemerkt hat: der 74HC540 sitzt falsch rum oder besser gesagt, Ein- und Ausgänge sind vertauscht :-(
Edit: IC6A Pin 1 gehört an +5V und nicht an Card-Select :-((

FriLu
24.09.2006, 00:30
Hallo,
kalledom hat folgendes geschrieben:

Der 573 hat den 'Schönheitsfehler' beim Einschalten etwas Zufälliges an den Ausgängen zu haben; deshalb bevorzuge ich den 273 mit Reset-Eingang.
#-o hatte ich vergessen, schon ne' weile her. Ich hab' bei mir eine Einschaltverzögerung für Verbraucher, da hat der Kontroller genug Zeit zur Init der Ausgänge. Mit '573 als Eingang hatte ich bisher keine Probleme.
MfG Lutz
PS: Ich nutze z.Z. IIC Bus mit allen Schikanen(Expander/Puffer) und unter anderem MAX7311, deshalb war ich nicht auf dem laufenden...