Forum: Mikrocontroller und Digitale Elektronik SPI durchschleifen


von Florian W. (metaln00b)


Lesenswert?

Hallo Allerseits,

gibt es eine Möglichkeit ein SPI Signal welches in den Controller 
eingespeist wird, synchron bzw. so durchzuschleifen, dass es zu keinem 
Fehler kommt?

Ich habe vor den Controller entscheiden zu lassen, ob er ein ALE Signal 
für sich selbst verarbeiten oder für externe Komponenten durchschleifen 
soll.

Der Controller soll sozusagen einfach nur einen Switch ansteuern, 
welcher zwischen intern oder extern schaltet.

Vielen Dank im Voraus

von Pandur S. (jetztnicht)


Lesenswert?

Vielleicht .. Ohne konkret zu werden, wird's schwierig.

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

man kann auch einfach die beiden Slaves parallel schalten und nur das CS 
des Slaves vom Controller wieder neu erzeugen lassen - man muss nur 
zusehen da nicht zu viel Verzögerung reinzubringen.

Sascha

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Florian W. schrieb:
> den Controller
Wer ist denn eigentlich "der Controller"? Wie sieht deine SPI-Struktur 
aus? Und was hat ein ALE (Adress-Latch-Enable?) Signal darin zu suchen?

> ein SPI Signal
Welches der drei SPI-Signale meinst du? Und in welchem zeitlichen Ablauf 
soll "der Controller das Ganze "umschalten"?

von Florian W. (metaln00b)


Lesenswert?

Lothar M. schrieb:
> Florian W. schrieb:
>> den Controller
> Wer ist denn eigentlich "der Controller"? Wie sieht deine SPI-Struktur
> aus? Und was hat ein ALE (Adress-Latch-Enable?) Signal darin zu suchen?
>
>> ein SPI Signal
> Welches der drei SPI-Signale meinst du? Und in welchem zeitlichen Ablauf
> soll "der Controller das Ganze "umschalten"?

Genau darum geht es, welcher Controller. Ich bin noch auf der Suche, 
erstmal Grundlagenforschung. Sry ich meinte den CS.

Eigentlich hat Sascha Weber meine Frage schon beantwortet, weil daran 
dachte ich auch.

Wenn der Master eine Botschaft schickt, wird ja sofort eine Antwort 
erwartet.
Da der Takt eines µC ja schneller, als der SCLK ist, sollte das machbar 
sein.

Es geht darum Bauteile zu sparen und Fehler zu minimieren. Es sind 
mehrere Module vorhanden. Jeder hat einen µC und eine unbestimmte 
Peripherie (Slaves). Dieser µC des jeweiligen Moduls, soll entscheiden, 
ober er das SPI-Signal an seine Peripherie weiterleitet oder intern 
(z.B. EEPROM) verarbeitet. Ich möchte so wenige "Leitungslänge" wie nur 
möglich um "kapazitive" Effekte usw. zu vermeiden.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Florian W. schrieb:
> Sry ich meinte den CS.
Einen CS gibt es beim SPI eigentlich nicht...

> Wenn der Master eine Botschaft schickt, wird ja sofort eine Antwort
> erwartet.
Du hast SPI (noch) nicht verstanden. SPI sind nichts anderes als 
gekoppelte Schieberegister. Da "erwartet" keiner eine Antwort. Es wird 
einfach das das durchgeschoben, was gerade im Schieberegister drin ist.
Wenn ein SPI-Protokoll durchdacht ist, dann muss der Slave gar nichts 
"sofort" machen, sondern er hat nach dem Deaktivieren des SS# 
erstmal Zeit, die nächsten zu versendenden Daten bereitzustellen. Bei 
einem ADC wird dann z.B. ein Kommando gesendet und gleichzeitig das 
Ergebnis der letzten Wandlung abgeholt (z.B. beim AD7490).

> Da der Takt eines µC ja schneller, als der SCLK ist, sollte das machbar
> sein.
Dazu muss nur der SCLK hinreichend langsam sein. Und nicht einmal das, 
denn in deinem Szenario kommt es ja lediglich darauf an, wieviel Zeit 
zwischen dem Aktivieren des SS# und dem ersten Taktimpuls vergeht.

> Ich möchte so wenige "Leitungslänge" wie nur möglich um "kapazitive"
> Effekte usw. zu vermeiden.
Der logische Kurzschluss erschließt sich mir nicht so richtig.

> Ich bin noch auf der Suche, erstmal Grundlagenforschung.
Lass mal dort das Bild in der Mitte auf dich wirken:
http://www.lothar-miller.de/s9y/archives/15-SPI.html

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.