Forum: Mikrocontroller und Digitale Elektronik Shiftregister Ein + Aus mit 4 Signalen?


von Dietmar (Gast)


Angehängte Dateien:

Lesenswert?

Kann man gleichzeitig ein paar Schiftregister für Eingabe (74165) und 
Ausgabe (74595) mit 4 Signalen ansteuern (siehe Anlage)? Das angehängte 
Beispiel soll 16 LEDs ansteuern  und gleichzeitig den Status von 8 
Schaltern einlesen. In 
http://www.mikrocontroller.net/attachment/1483/SPI_74HC595.pdf werden 
fünf Signale benutzt und dort steht was von unterschiedlicher "clock 
phase". Ist das der Grund für 5 Signale, würde das mit einem Signal für 
beide Schieberegister-Typen nicht gehen und falls ja, gibt es ein 
SMD-Äquivalent zum 74165, welches die gleiche Clock Phase wie das 74595 
hat?

von Nico E. (masta79)


Lesenswert?

Ich bin mir nicht 100% sicher, aber eigentlich sollte es reichen wenn du 
das Clock-Signal für den 165 einfach invertierst (via Transistor),

von Dietmar (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank für die Antwort. Welche Widerstände müsste man bei einer 
Clock von ca 1.1MHz verwenden (im Anhang R10/R51 unten links = 4K7)?

von Dietmar (Gast)


Angehängte Dateien:

Lesenswert?

Oder so? Serielle Leitung gleichzeitig am Eingang des 74595 und Ausgang 
des 74165. Ein Widerstand vor dem 74165-Ausgang sorgt dafür, dass der 
Controller den 74165-Ausgang überstimmen kann. Leider kann ,an dann kein 
Hardware-SPI mehr machen.

von was-willst-du (Gast)


Lesenswert?

Wieso?
Hast Du die gleichen Daten an Tasten und LED oder wo ist der Sinn die 
Ein/Ausgänge zu verbinden?

von Dietmar (Gast)


Lesenswert?

Nicht die parallelen Ein/Ausgänge werden verbunden, sondern die beiden 
seriellen Pins (ein Eingang, ein Ausgang).

von Nico E. (masta79)


Lesenswert?

Die Variante mit Transistor sollte so eigentlich tun.

von Dietmar (Gast)


Lesenswert?

Ok. Was mich wundert: Im Schieberegister-Tutorial 
(http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister) 
steht, dass sich 74165 und 74595 in der Clock-Polarity unterscheiden. In 
den Sourcecodes wird CPOL mal auf 0 (74595), mal auf 1 (74165) gesetzt. 
So steht es zumindest im Kommentar - die binärten Werte habe ich nicht 
kontrolliert. In den Datenblättern steht aber bei beiden Typen, dass 
low-to-high-Flanken der Clock shiften. Also müsste das ATMega-SPI doch 
eigentlich für beide Typen mit CPOL=1 laufen?! Dass man in einem Fall 
laut dem im ersten Beitrag verlinkten Attachment eine Clock Phase CPHA=0 
und im anderen CPHA=1 braucht: welchem Teil des Datenblattes kann man so 
etwas entnehmen? Als Anfänger sehe ich da überhaupt keine Unterschiede.

http://www.datasheetcatalog.org/datasheet/philips/74HC_HCT165_CNV_2.pdf
http://www.datasheetcatalog.org/datasheet/philips/74HC_HCT595_CNV_3.pdf

von Peter D. (peda)


Lesenswert?

Dietmar wrote:

> Ist das der Grund für 5 Signale, würde das mit einem Signal für
> beide Schieberegister-Typen nicht gehen und falls ja

Der Takt (SCK) ist ja gemeinsam und das geht auch.
Ein Inverter bringt nichts.

Was getrennt sein muß, ist der Ladeeingang, da Du das Eingangsregister 
zu Anfang laden mußt, das Ausgaberegister aber erst am Ende.

Oder Du schiebst 3 Byte, also erstmal die 2 Ausgabebytes, dann der 
gemeinsame Ladeimpuls und dann das Eingangsbyte einlesen.


Peter

von Dietmar (Gast)


Angehängte Dateien:

Lesenswert?

Mir wurde gesagt, dass das 4021 ohne irgendwelche Verrenkungen (direkt 
verschaltet) zusammen mit dem 74HC595 und Hardware-SPI geht?

Das soll so gehen: SS ist low (= beide Register im Shift-Modus), per 
Hardware-SPI wird ein Byte mt CPOL = 0 und CPHA = 0 gesendet. Das 
shiftet gleichzeitig 8 Bits vom Eingabe-Register in SPDR. SS einmal 
umschalten (auf high und zurück auf low) macht den neuen Inhalt des 
Ausgabe-Storage-Registers wirksam und aktualisiert gleichzeitig das 
Eingabe-Shift-Register mit dem Status der 8 Schalter. Und dann wieder 
von vorne. Das erste eingelesene Byte würde ich ignorieren, da immer 
zwei Bytes raus und ein Byte rein gehen.

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.