Hallo zusammen, ich habe einen MSP430 und möchte mit diesem über SPI einen Beschleunigungssensor auslesen. Nun habe ich folgendes Problem. Bei dem MSP kann man mit SPI nur 8Bit auslesen. Der Sensor sendet seine Daten allerdings als 11 Bit. Also, ich sende dem Sensor ein Byte als Startbefehl quasi und der sendet mir 11Bit zurück. Da ich ja nur 8 aufnehmen kann, gehen mir ja welche verloren. Gibt es eine Möglichkeit die 11Bit doch irgendwie auszulesen? Gruß Steffen
Noch ein 2. Byte schreiben, und das Chip-Select aktiviert lassen. Das wäre die Standard-Variante. Normalerweise werden die restlichen Taktimpulse dann ignoriert.
Mal ne dumme Frage, Du bist doch der SPI-Master, gibst also den Takt vor. Somit kannst Du gar nicht 8 Bit ausgeben und gleichzeitig 11 Bit bekommen. Bin an dieser Stelle auch für ne Soft-SPI, also über Pinwackeln takten und an einem normale I/O die Daten ausgeben bzw. einlesen. Somit sind die 11 Bit kein Problem. Bei Verwendung der Standard SPI könnte es beim zweiten Byte Probleme geben.
wenn der msp schon spi hat, möchte ich eigentlich ungern soft-spi machen. wenn ich noch ein 2. Byte schreiben, und das Chip-Select aktiviert lasse, wird dann das 2.te byte von dem sensor ausgegeben oder wie muss ich das verstehen? wenn ich dann Chip-Select deaktiviere resettet sich der sensor ja und schreibt die neuen daten in rein register. gruß steffen
und da ist es. mir ist auch gerade noch aufgefallen, dass das vermutlich eh nix gibt mit dem msp, da der sensor mehr als 3,3V für high-pegel haben will.
Ja, der MSP is schon ne kiste für sich... Also das pegelproblem kannst du mit nem treiber (kleinsignal transistor, mos oder biploar) uns nem spannugsteiler lösen. 3.3v auf den transistor und der schaltet dann die 5v an deinen schaltkreis. Das was vom schaltkreis kommt mit nem spannugsteiler auf 3.3v reduzieren. Es gibt auch wandler dafür, wenn du das nicht diskret aufbauen möchtest. Das mit der SPI verstehe ich nicht ganz. Dein device sendet nur bits, solange die SPI-clock läuft. Du liest die ersten 8-Bits aus, stoppst die SPI clock, liest das 8-bit register aus, startest die SPI-clock und liest die restlichen bits aus. Dann setzt du das ergebnis zusammen (schieben) und schik :-). Wennd as nix wird, nimmst den analogen ausgang oder nen vernüftigen MCU :-).
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.