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
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ß!
@ 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?
@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
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.. :-)
@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.
@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