mikrocontroller.net

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


Autor: Dietmar (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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... 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?

Autor: Nico Erfurth (masta79)
Datum:

Bewertung
0 lesenswert
nicht 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),

Autor: Dietmar (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)?

Autor: Dietmar (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: was-willst-du (Gast)
Datum:

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

Autor: Dietmar (Gast)
Datum:

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

Autor: Nico Erfurth (masta79)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Variante mit Transistor sollte so eigentlich tun.

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok. Was mich wundert: Im Schieberegister-Tutorial 
(http://www.mikrocontroller.net/articles/AVR-Tutori...) 
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/...
http://www.datasheetcatalog.org/datasheet/philips/...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dietmar (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.