www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI kaskadieren


Autor: dreg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie soll das kaskadieren bei SPI funktionieren?
Wie ich festgestellt habe, wird wohl immer so etwas wie es unter 
WIKIPEDIA SPI-kaskadieren Bild 1 dargestellt ist, verbreitet.
Aber wie soll das funktionieren?
Der erste Slave wird doch auf das Datenwort, das für den letzetn Slave 
gedacht ist, reagieren.
Wer hat so etwas schon mal erfolgreich eingesetzt?

Gruss
dreg

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
--> Datenblatt z.B. vom 74HC595

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bild 1 sehe ich nicht..., aber ich habs gefunden.

Es werden immer komplett 24 Bit geschoben, erst mit SS lösen die Daten 
dann Aktionen aus.
Aus diesem Grund sind einfache Schieberegister ohne extra 
Ausgangsregister schlechter geeignet. Hängen da z.B. LEDs dran, stört es 
kaum, wenn amn ausreichend schnell schiebt.
Schau dir mal den 4094 an, da ist das gut erklärt.

Autor: dreg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

>>H.joachim
beim 4094 ist das klar. Da gibt es ja auch ein strobe und ich kann die 
Übernahme (aus dem Schieberegister) selektieren.
Bei SPI gibt es kein strobe. Alle CS und CL sind zusammen und die 
Bausteine reagieren auf die Datenstruktur.

gruss
dreg

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Da gibt es ja auch ein strobe und ich kann die
Übernahme (aus dem Schieberegister) selektieren.
Bei SPI gibt es kein strobe.

Dann mach dir eins.

Autor: Kobaltchlorid (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Bei SPI gibt es kein strobe.

Aber es gibt normalerweise bei jedem Slave einen SlaveSelect-Eingang. 
Niemand hindert dich daran, mehrere SS-Ausgänge vom Master zu mehreren 
Slaves zu schalten. Du brauchst halt pro Slave eine zusätzliche 
Steuerleitung, die man aber auch multiplexen kann.

Für 8 Slaves reichen also MOSI, MISO, CLK und drei Portpins als 
Adressausgänge für einen Multiplexer. Solange die SS-Leitung am Slave 
High ist, ist dem Slave MOSI und CLK völlig egal.

Autor: dreg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

>> Danke Falk
Aber es geht nicht um das Verständniss Schieberegister, sondern um SPI.

>> Danke Bensch
SPI mit selektiver Ansteuerung (Strobe oder CS oder sonst was) ist SPI 
mit Sternförmiger Ansteuerung.
Die Frage ist aber 'wie funktioniert das Kaskadieren bei SPI?'.

Gruss
dreg

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dreg wrote:
> Die Frage ist aber 'wie funktioniert das Kaskadieren bei SPI?'.


* Indem alle SPI Slaves am selben 'Bus' hängen
* Indem jede Stufe aus einem 'SPI-Eingang' und einem 'SPI-Ausgang' 
besteht

Alles andere muss dann über ein Protokoll geregelt werden. Jede SPI 
Stufe hat eine software-mässige Adresse, und in den gesendeten Daten ist 
in irgendeiner Form enthalten an wen die Daten gerichtet sind.

Ist im Grunde auch nichts anderes als bei einem Stille-Post Spiel: Wenn 
du an einem bestimmten Teilnehmer etwas mitteilen willst, dann sagst du 
dem ersten: 'Sag Hans, das ich möchte, dass ....'
'Sag Hans' ist die Adressierung des Teilnehmers und wird so vom ersten 
Teilnehmer zum jeweils nächsten weitergegeben. Alle ignorieren die 
restlichen Daten, nur Hans kümmert sich darum.

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja, das wüde dann schon wieder eine gewisse "Intelligenz" beim slave 
erfordern, MAX7219 z.B.

Bei Schieberegistern gibts keine Adressen und kein Protokoll - die 
Adresse ist einfach die physikalische Position innerhalb der Kette - 
sowohl auf Byte- als auch auf Bitebene.
Und es geht natürlich auch ohne strobe, dann erscheinen eben kurzzeitig 
falsche Informationen an den Ausgängen. Kann oft toleriert werden.
Es wird einfach komplett neu geschrieben.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Worüber reden wir hier eigentlich?
Über Schieberegister oder über SPI im Allgemeinen?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dreg wrote:
> Hallo
>
>>>H.joachim
> beim 4094 ist das klar. Da gibt es ja auch ein strobe und ich kann die
> Übernahme (aus dem Schieberegister) selektieren.
> Bei SPI gibt es kein strobe. Alle CS und CL sind zusammen und die
> Bausteine reagieren auf die Datenstruktur.

Kommt drauf an, der SPI-IC muß fürs Kaskadieren geeignet sein, d.h. alle 
Daten durchschieben, dann kannst Du beliebig viele hintereinander 
schalten.
Alle übernehmen dann die Daten mit der gemeinsamen 0-1-Flanke des 
/CS-Signals.
Das geht mit SRGs (74HC595, 74HC165), dem LED-Treiber MAX7219, DACs usw.

Mit ADCs geht das in der Regel nicht, da sie die Konfiguration einlesen 
und gleichzeitig den ADC-Wert ausgeben. Diese muß man einzeln 
selektieren.


Peter

Autor: dreg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also was ich bis jetzt mitgenommen habe ist, 'kaskadieren von Slaves bei 
SPI' funktioniert nicht, ausser man kann eine (temporäre) Fehlfunktion 
der vorderen Slaves hinnehmen.

Das können ja nur dumme Ausgabebausteine sein wenn in deren 
Reaktionszeit sichergestellt ist, dass die Datenübertragung 
abgeschlossen ist.
z.B. Anzeige-Treiber -> das menschliche Auge ist zu Träge
oder Relais-Treiber -> die Anzugszeit ist wesentlich grösser.

Ich konnte mir überhaupt nicht vorstellen, wie man z.b. serielle EEPROMs 
kaskadieren könnte um z.b. die Wortbreite zu vergrössern. Dies wurde mal 
irgendwo als Beispiel für eine Kaskadierung genannt.

Danke und Gruss
dreg

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 'kaskadieren von Slaves bei
SPI' funktioniert nicht, ausser man kann eine (temporäre) Fehlfunktion
der vorderen Slaves hinnehmen.

Glaub mir, es funktioniert richtig und zuverlässig.
Und es wurde auch schon mehrfach hier geschrieben, wie.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@dreg (Gast)

>also was ich bis jetzt mitgenommen habe ist, 'kaskadieren von Slaves bei
>SPI' funktioniert nicht,

Richtig.

> ausser man kann eine (temporäre) Fehlfunktion
>der vorderen Slaves hinnehmen.

Nöö, die meisten ICs sind schlicht dafür nicht einsetzbar, auch mit 
Störungen. Einfache Schieberegister sind da die Ausnahme.

>Das können ja nur dumme Ausgabebausteine sein wenn in deren
>Reaktionszeit sichergestellt ist, dass die Datenübertragung
>abgeschlossen ist.

???

>z.B. Anzeige-Treiber -> das menschliche Auge ist zu Träge
>oder Relais-Treiber -> die Anzugszeit ist wesentlich grösser.

Unsinn. Auch die dummen Schieberegister ala 74HC595 haben ZWEI Register. 
Nämlich das Schieberegister an sich und ein Ausgangsregister. Da kommt 
es niemals zu undefinierten Zuwischenzuständen. Siehe Artikel.

Ganz einfache Schieberegister OHNE Ausgangsregister ala 74HC164 kann man 
logischerweise für sowas nicht nutzen.

>Ich konnte mir überhaupt nicht vorstellen, wie man z.b. serielle EEPROMs
>kaskadieren könnte um z.b. die Wortbreite zu vergrössern.

Das macht auch keiner. Sowas macht man rein in Software duch 
etnsprechende Datenverarbeitung. Wortbreiten vergrössern macht man nur 
bei RAMs etc. mit paralleler Schnittstelle.

> Dies wurde mal irgendwo als Beispiel für eine Kaskadierung genannt.

Dann war das Beispiel falsch.

MFG
Falk

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.