SPI Multislave

Gast #1506155
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
Moderator (Firma: Titel) Persönliche Seite #1506200
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
Gast #1506201
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.
Gast #1506233
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
Moderator Persönliche Seite #1506239
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.
Moderator Persönliche Seite #1506247
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?
Moderator Persönliche Seite #1506311
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?
Gast #1506322
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren