Forum: Mikrocontroller und Digitale Elektronik SPI ringförmig?


von Andreas (Gast)


Lesenswert?

Hallo,

Ich habe eine kurze Frage zum SPI.

Ich habe eine Anforderung, wo ich mehrere AVRs (Slaves) mit einem
Master ansprechen muss. Es ist nicht zeitkritisch und es werden nur
wenig Daten (2 Bytes) übertragen. Um I/O-Pins am Master zu sparen,
dachte ich mir, dass ich die AVRs "seriel" anspreche:

Master      Slave         Slave
-----,      ,------,      ,------,
MOSI |----->| MOSI |  ,-->| MOSI |
     |      |      |  |   |      |
MISO |      | MISO |--'   | MISO |
-----'      '------'      '------'
  ^                           |
  '---------------------------'

Bei der Übertragung vergebe ich einfach Adressen, damit der
entsprechende uC weiß, wann er gemeint ist.

Würde das so funktionieren? Was meint ihr?

THX!!

mfg
Andy

von inoffizieller WM-Rahul (Gast)


Lesenswert?

Wenn du (durch einen Slaveselect-Pin) allen signalisiere kannst, dass
ein Datenstrom beginnt, sollte es möglich sein. Wobei es natürlich zu
einem Versatz kommt: Die Controller empfangen ein Byte und können es
erst beim nächsten Durchlauf weiterschicken...
Ist also Mist, weil es nicht wie Schieberegister funktioniert, bei
denen der Eingang gleichzeitig mit dem Ausgang bedient wird.
Mit einem weiteren Baustein ("Adressdecoder 74HC138") kann man
mehrere Slaves mit weniger Leitungen ansprechen.

von Aufreger deluxe (Gast)


Lesenswert?

Und was ist mit dem Takt?

von Peter (Gast)


Lesenswert?

Warum nimst du nicht TWI?
Da brauchst nur 2 Pinne und kannst Adressen nutzen..

von Andreas (Gast)


Lesenswert?

@Aufreger: Der Takt wird natürlich mitgeschleift, hab ich vergessen
einzuzeichnen.

@Peter: Hab mal gelesen, dass der TWI ein aufwendigeres Protokoll hat.
Bei SPI kann ich das frei konfigurieren, oder?

von Aufreger deluxe (Gast)


Lesenswert?

> Bei SPI kann ich das frei konfigurieren, oder?

Bei TWI ebenso.

Start -> Adresse -> Daten -> Stop -> fertig!

von Andreas (Gast)


Lesenswert?

@Aufreger:
OK, ich werd mir mal den TWI-Bus ansehen. Denn laut Rahul könnte das
mit dem Versatz sowieso etwas aufwendiger werden.

Danke erstmal!

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.