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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.