Forum: Mikrocontroller und Digitale Elektronik MSP430 SPI 11BIT !?


von Steffen (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Soft-SPI?

von Christian R. (supachris)


Lesenswert?

Noch ein 2. Byte schreiben, und das Chip-Select aktiviert lassen. Das 
wäre die Standard-Variante. Normalerweise werden die restlichen 
Taktimpulse dann ignoriert.

von szimmi (Gast)


Lesenswert?

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.

von Steffen (Gast)


Lesenswert?

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

von szimmi (Gast)


Lesenswert?

Poste mal das Datenblatt des Sensors

von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Josef (Gast)


Lesenswert?

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