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
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.
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
> 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.
> 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.
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
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.
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.
Worüber reden wir hier eigentlich? Über Schieberegister oder über SPI im Allgemeinen?
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
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
> '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.
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.