SSI Schnittstelle mit SPI realisieren?

Gast #973316
Lesenswert?

Guten Tag

Ich habe eine Frage, ob das so überhaupt möglich ist.
Also ob ich eine SSI Schnittstelle realisieren kann mit Hilfe der SPI 
Funktionen meines MSP.

Der SPI Mode wäre dann ja Slave.
Das heisst es kommt zuerst eine negative Flanke, bei der der MSP 
eigentlich noch nichts machen muss, sondern ja typisch SSI halt erst bei 
der positiven Flanke das Bit an den Datenausgang legen.

Der Wert wäre 20-32 Bit.
Der SPI Mode hat ja eigentlich 3 oder 4 Pins, aber beim SSI braucht es 
ja nur 2.

Im Anhang noch das SSI Protokoll.

Denkt ihr das da was zu machen wäre oder muss ich es mit Port.Interrupt 
realisieren?
Angehängte Dateien:
Gast #973395
Lesenswert?

Technisch gesehen ist es einfach mit SPI eine SSI zu betreiben.

Du musst nur beim Slave den Chipselect fest auf Aktiv setzen, duch 
pullup oder pulldown. siehe Datenblatt ob high oder low aktiv.

Als Master ist es noch einfacher, einfach den takt rausgeben.

Problematisch wird nur das Protokoll.

Durch den Chipselect wird dem Slave ja "mitgeteilt" das eine Übertragung 
erfolgen soll, und das er die Daten im Puffer bereitlegen soll.
Das fehlt hier, du musst also selbst sicherstellen das zum 
Übertragungszeitpunkt die richtigen Daten im Puffer des Slave liegen.
Gast #973482
Lesenswert?

Also denkst du, dass mit der SPI Schnittstelle es besser geht, als wenn 
ich immer einen Interrupt auslöse und dann jeweils die Variable shifte?

Und eben mit dem Protokoll ist SSI ja ziemlich unterschiedlich zu SPI.

Man kann ja auch nur zwischen 3- und 4-pin SPI auswählen, aber ich 
benötige beim MSP nur 2 Leitungen (CLK in, Data out).
Gast #973494
Lesenswert?

Um den Interrupt oder Polling zwischen den einzelnene Bytes wirst du 
nicht rumkommen, es sei denn das du die SPI im DMA modus betreiben 
kannst.
Bevor jetzt wieder einige Meckern, Es gibt µC die können das, auch wenn 
es keine AVR sind.


Wenn du eine Datenrichtung nicht benötigst, dann verbinde die Pins eben 
nicht und leg an beiden Controllern den Pin auf definierte Pegel. Achte 
aber am Ausgang darauf das der Strom nicht zu hoch für den Porttreiber 
ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren