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?
Sagen wir es mal so: Ich glaube es nicht. Zumindest nur durch Mehraufwand.
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.
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).
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.
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.