Hi Ich habe mal eine kurze Frage zu SPI. Ich habe eine Controller der als SPI Master arbeitet und er soll mit einen SPI Slave kommunizieren. Wenn ich am Master die Sendefunktion aufrufe bekomme ich einen Takt, er legt das CS aus low und sendet die Daten. Wenn ich aber die Readfunktion aufrufe bekomme ich keinen Takt raus und daher auch keine Daten vom Slave. Die Lib stellt auch noch eine readwrite funktion zur Verfügung die zuerst schreibt und dann liest. Muss ich nun bei SPI immer die readwrite funktion aufrufen um Daten vom Slave zu erhalten und den Slave einfach sinnlose Daten schicken? Danke im Vorhinein für die Antworten. Mfg Fresh
Fresh schrieb: > Muss ich nun bei SPI immer die readwrite funktion aufrufen um Daten vom > Slave zu erhalten und den Slave einfach sinnlose Daten schicken? Wie diese Funktionen implementiert sind, kannst am ehesten du wissen, denn nur du weißt ja sonst auch alles: Programmiersprache, Controller, Library, usw... > Ich habe eine Controller der als SPI Master arbeitet und er soll mit > einen SPI Slave kommunizieren. Wenn ich am Master die Sendefunktion > aufrufe bekomme ich einen Takt, er legt das CS aus low und sendet > die Daten. Und jetzt kommts: weil der SPI nur gekoppelte Schieberegister sind, wird in der Hardware gleichzeitig mit dem Senden auch etwas empfangen. Dort das Bild in der Mitte: http://www.lothar-miller.de/s9y/categories/17-SPI Wie das jetzt in deiner Funktion verknotet ist, kannst am ehesten du selber wissen (s.o.)... :-/
passt ja super hier, da muss ich nicht extra ein neues Thema aufmachen wäre nett, wenn mir da jemand weiterhelfen könnte: Ich habe die Seite von Ihnen Herr Miller durchgelesen (schöne Seite gleich als Lesezeichen gespeichert) sowie den Artikel hier im Forum "Porterweiterung mit SPI" angeschaut http://www.mikrocontroller.net/articles/Porterweiterung_mit_SPI , da ich genau das machen möchte, allerdings ist mir das Prizip noch nicht ganz klar. Ich möchte das ganze für einen PIC in C realisieren. Wird vom PIC (Master) nur ein Takt gesendet wenn auch Daten zum Schreiben vorhanden sind, oder liegt der Takt pausenlos an sobald der SPI enabled wurde Wenn ich im Beispiel oben aus dem Forum ein Schieberegister dranhänge, muss ich dann den EN-Pin (SS) beschalten oder kann ich den immer auf High-Pegel legen wenn sowieso nur ein Slave am BUS dranhängt? Muss ich den SS selbst beschalten oder regelt das der PIC sobald Daten im Ausgangsregisterpuffer drin stehn?
Tobi D. schrieb: > Wird vom PIC (Master) nur ein Takt gesendet wenn auch Daten zum > Schreiben vorhanden sind, Ja. Genaueres dazu im Datenblatt. > Muss ich den SS selbst beschalten oder regelt das der PIC sobald Daten > im Ausgangsregisterpuffer drin stehn? Der SS ist nur für einen SPI-Slave interessant (genaueres dazu steht im DB). Üblicherweise wird daher dieser Pin von einem uC-SPI-Master nicht verwendet. Du selber mußt irgendwelche Portpins als SS-Signale verwenden.
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.