www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI Multislave


Autor: Aaron (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Aaron (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aaron schrieb:

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

Sowas geht bei SPI nicht.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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-i...
sowie 
http://en.wikipedia.org/wiki/Serial_Peripheral_Int...

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Aaron (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Aaron (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Aaron (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.