mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI SELECT SLAVE?


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich beschäftige mich mit einen arm-controller (LPC2148).Nun versuche ich 
seit 2 tagen SPI zum laufen zu bekommen. Ich habe 2 Boards(MCB2140). 
Einer ist master, der andere slave. D.h. es gibt 4 Leitungen 
(MISO,MOSI,CLK,SSL).

Nun habe ich das problem wenn ich was über dem master schicke, sollte 
der slave es empfangen, tut er aber nicht. Ich bin mir dabei nicht 
sicher wie ich das SELECT SLAVE (SSL) setzen muss? Ich weiss, dass beim 
empfang der Daten der slave die SSL leitung auf low setzen muss 
(sozusagen ein wakeup für den slave), aber wie realisiere ich das?
Denn wenn der master etwas senden möchte weiß der slave (slave muss SSL 
auf low schalten!) noch gar nichts davon, dass er etwas empfangen soll.

Sorry, ist bestimmt ein dummer denkfehler, oder ein "nicht verstehen" 
von mir. Wäre über jede hilfe sehr sehr dankbar.


gruss
  markus

Autor: Carsten Pietsch (papa_of_t)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst SSL immer aktiv lassen bei einem Slave. SlaveSELECT wird vom 
Master gesetzt, um den SLAVE auszuwählen, für den die Daten sind (Wenn 
es mehrere gibt). Der Slave muß immer empfangsbereit sein, bzw. der 
Master muß warten, bis der Slave fertig ist. Das kann man erreichen 
durch ein Protokoll, z.B. sendet der SLAVE immer "00" im SPDR zurück, 
bis er fertig ist, und der Master muß solange ein Dummy-Byte senden, bis 
das gewünschte Ergebnis kommt (So ungefähr funktioniert die 
Initialisierung einer SD-Karte). Viel Spaß!

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Carsten Pietsch

Danke soweit,

SSL ist ja nur ein bit, das man auf low setzt (IOCLR0 = 0x0000 4000 ). 
Wie sieht es denn aus wenn es mehrere slaves gibt. wie setzte ich denn 
dann SSL wie unterscheidet der master zwischen den slaves?

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus

>SSL ist ja nur ein bit, das man auf low setzt (IOCLR0 = 0x0000 4000 ).
>Wie sieht es denn aus wenn es mehrere slaves gibt. wie setzte ich denn
>dann SSL wie unterscheidet der master zwischen den slaves?

Mal über die Frage 10 Minuten nachgedacht, bevor du das Posting 
geschrieben hast?
Vielleicht mittels mehrerer Slave Select Leitungen?

MfG
Falk

Autor: Carsten Pietsch (papa_of_t)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm einfach mehrere normale Ausgangspins als SS, für jeden Slave eins, 
schalte alle MOSI und alle MISO zusammen. Nur der Slave, der LOW am S 
hat, darf antworten, alle anderen müssen sich still (hochohmig) 
verhalten. Ich glaube, es ist völlig egal, welche Ports man nimmt. Aber 
bring erstmal EINEN Slave zum Laufen.. :-)

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk

Ahhh, sieht das dann so aus, dass ich mir irgend einen freien port 
nehme, von diesem eine leitung zum ssl port des slaves lege, und den 
port bei sendebedarf des masters auf low schalten.

sorry für meine unwissenheit.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus

>Ahhh, sieht das dann so aus, dass ich mir irgend einen freien port
>nehme, von diesem eine leitung zum ssl port des slaves lege, und den
>port bei sendebedarf des masters auf low schalten.

100 Punkte für den Kandidaten.

>sorry für meine unwissenheit.

Niemand muss sich für Unwissenheit entschuldigen. Aber einige Fragen 
lassen doch stark vermuten, dass erst gepostet wurde und nicht mal ein 
wenig nachgedacht (=Faulheit). Das stösst mir ein wenig sauer auf.
Nix für ungut.

MFg
Falk

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.