SPI SELECT SLAVE?

Gast #527738
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
#527745
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ß!
Gast #527763
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?
Gast #527774
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
#527784
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.. :-)
Gast #527800
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.
Gast #527807
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.