Forum: Mikrocontroller und Digitale Elektronik SPI Multislave


von Aaron (Gast)


Lesenswert?

Hallo,

ich will zwei Photoelectric Sensoren an meinen uC anschließen. Als uC 
benutze ich Atmega 325. Die Sensoren funnktioniert nach SPI Protokol. 
Nun ist die Frage : Wie schließt man ein?

Aus dem Application Note von Fa. ATMEL habe ich gelesen, dass man für 
ein Multislave System ein 2.Portpin als Slave Select (SS) benutzen muss. 
In meiner Anwendung ist dies nich möglich, weil alle Portpins schon 
belegt sind.

Habt ihr vielleicht Vorschläge?

Danke.

Gruss
Aaron

von Ralf (Gast)


Lesenswert?

Aber einen SlaveSelect hast du, oder? Dann könntest du über einen 
Inverter den anderen Chip ansprechen, wenn du den SlaveSelect in 
Software kontrollieren kannst...

Ralf

von Aaron (Gast)


Lesenswert?

Hallo Ralf,

das habe ich mich auch überlegt. Andere Lösung wäre die Slaves mit Daisy 
Chaining verbinden.

Was denkst du? Welche ist besser?

Gruss
Aaron

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Aaron schrieb:

> Andere Lösung wäre die Slaves mit Daisy
> Chaining verbinden.

Sowas geht bei SPI nicht.

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


Lesenswert?

> Sowas geht bei SPI nicht.
Es hängt vom verwendeten Baustein ab.
SPI sind nichts anderes als gekoppelte Schieberegister, der SS sagt, 
wann eine Übertragung beginnt, und wann sie zuende ist. Solange der SS 
aktiv ist, werden einfach die Daten durch die Schieberegister 
durchgeschoben. Erst wenn er deselektiert wird, ist die Übertragung 
beendet und die Daten werden übernommen.
Siehe dazu http://www.maxim-ic.com/appnotes.cfm/an_pk/3947
und http://www.best-microcontroller-projects.com/spi-interface.html
sowie 
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus#Daisy_chain_SPI_configuration

von Bensch (Gast)


Lesenswert?

> Andere Lösung wäre die Slaves mit Daisy
> Chaining verbinden.


> Sowas geht bei SPI nicht.

Das kann man so generell nicht sagen, kommt auf die Bausteine an, bei 
normalen Schieberegistern geht's z.B.

von Aaron (Gast)


Lesenswert?

Hallo alle,

Ja,ihr habt Recht. Habe gerade geprüft, dass die Sensoren nicht 
Daisy-Chaining fähig sind.

Ich muss dann eine externe Inverterschaltung bauen, um die Slaves zu 
verbinden.

Habt ihr Vorschläge, welche IC ich benutzen kann (mit geringere 
Latchzeit)?


Gruss
Aaron

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Lothar Miller schrieb:

> SPI sind nichts anderes als gekoppelte Schieberegister, der SS sagt,
> wann eine Übertragung beginnt, und wann sie zuende ist. Solange der SS
> aktiv ist, werden einfach die Daten durch die Schieberegister
> durchgeschoben.

Von reinen Schieberegistern abgesehen dürfte dies bei den wenigsten
SPI-gesteurten Bausteinen so sein.  Die meisten generieren auf MISO
eine andere Antwort als das, was sie auf MOSI gelesen haben.

Ja, reine Schieberegister (wie die beliebten 74HC595) kann man
natürlich hintereinanderschalten, das habe ich auch schon gemacht.
Hier war aber die Rede von fotoelektrischen Sensoren.

Ich find's ja ein wenig kurzsichtig, zwei SPI-Slaves vorzusehen und
dann mit nur einem SEL-Signal auskommen zu wollen.  Vielleicht hätte
man dann besser I²C nehmen sollen, da werden die Slaves über Adressen
im Protokoll angesprochen statt über separate select-Signale.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Aaron schrieb:

> Habt ihr Vorschläge, welche IC ich benutzen kann (mit geringere
> Latchzeit)?

Naja, erster Kandidat wäre wohl ein single-gate inverter, bspw.
ein NC7SZ04.

Vielleicht lässt du ja mal die Katze aus dem Sack und schreibst
etwas mehr über deine SPI slaves, vielleicht ja auch einen Typ
oder ein Datenblatt, damit man weiß, wie schnell du dein SPI
betreiben willst/musst?

von Aaron (Gast)


Lesenswert?

Hier ist ein wenig Details zu dem Sensor:

Power supply voltage : 24V
Power supply current : max. 1A per unit
Resolution : 1,8mm
Framerate : 200 us
LVDS-CLK : Max. 5 MHz
Output : SPI LVDS

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Aaron schrieb:

> Power supply voltage : 24V
> Power supply current : max. 1A per unit

Huch, das ist ja ein Ofen. :-)

> LVDS-CLK : Max. 5 MHz

Die Taktfrequenz ist noch relativ "normal".  Da werden auch die
Setup-Zeiten des slave select nicht so kritisch sein.

> Output : SPI LVDS

Aber das select-Signal ist ein normales CMOS-Signal, oder ist das
auch LVDS?

von Aaron (Gast)


Lesenswert?

> Power supply voltage : 24V
> Power supply current : max. 1A per unit

Huch, das ist ja ein Ofen. :-)

-so steht auf dem Datenblatt

Das LVDS Signal wird mittels eines Umsetzers von LVDS->TTL umgewandelt, 
damit der uC ein normales TTL Signal kriegt.

Gruss
Aaron

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.