Forum: Mikrocontroller und Digitale Elektronik SPI mit dsPIC33


von Sebastian S. (sebbo)


Lesenswert?

Hallo,
ich habe 2 µCs(dsPIC33FJ128MC710) die ich per SPI miteinander 
kommunizieren lassen will. Dabei soll einer der Master und der andere 
der Slave sein. Beide sollen Daten senden und empfangen. Laut Datenblatt 
von Microchip generiert der Master die serial clock. Diese kommt aber 
nur wenn Daten gesendet werden. Meine Frage ist nun wie ich mit dem 
Slave Daten senden kann, da dieser ja die serial clock vom Master 
benötigt. Muss ich dann um Daten mit dem Master vom Slave empfangen zu 
können jedes Mal Daten auch mit dem Master senden?
Habe schon alles mögliche ausprobiert doch leider hat nichts geklappt. 
Würde mich sehr freuen falls mir jemand weiterhelfen könnte!

von Gerhard (Gast)


Lesenswert?

Hallo

die SPI-Schnittstelle ist nicht geeignet daten zwischen zwei 
gleichberechtigten Partnern auszutauschen. Der Slave generiert keinen 
Takt, und der Master generiert den Takt nur wenn er sendet. SPI empfängt 
und sendet gleichzeitig. Will der Master Daten vom Slave empfangen, 
sendet man ein "dummy-byte" und damit empfängt der Master auch 1 byte.

gerhard

von Dieter W. (dds5)


Lesenswert?

> Muss ich dann um Daten mit dem Master vom Slave empfangen zu
> können jedes Mal Daten auch mit dem Master senden?

Ja, das ist eine Eigenheit der SPI Schnittstelle - unabhängig vom 
verwendeten Controller.

Wenn der Slave von sich aus was mitteilen will benötigt man eine 
zusätzliche Leitung "ich hab was" vom Slave zum Master.

von Sebastian S. (sebbo)


Lesenswert?

Vielen Dank für die Hilfe!
Bekomme auch immmer mehr das Gefühl, dass SPI nicht der sinnvollste Weg 
ist. Allerdings war dies Vorgabe und lässt sich nicht mehr ändern. Muss 
also versuchen es mit SPI hinzubekommen. Werde es dann wohl mit 
dummybytes versuchen.
Also nochmal Danke für die raschen Antworten.

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
Noch kein Account? Hier anmelden.