Du kannst aber auch zweimal 8 Bit hintereinander schieben. Wichtig ist nur, dass du CS vor dem ersten nach Masse ziehst und nach dem zweiten wieder setzen musst. Wenn du es bei jedem Byte machst, wird der Controller sich weiger mit dir zu reden.
Hallo Zusammen,
hast jemand von Euch schon mal den Gyro ADIS16265 via SPI ausgelesen.
Laut Datenblatt wollen die einen 16Bit Zugriff haben, was für mich komplett gegen
den Standard verläuft. Dieser besagt doch klar 8Bit Schieberegister, egal welcher Prozessor.
Ich würde hierbei zwei einzelne 8Bit Zugriffe durchführen, wo bei denen 16 Bit steht.
Da meine Hardware noch nicht steht und ich aber schon an der Software am arbeiten bin, wäre ein Tip hier hilfreich.
Zudem ist dies mein erstes Projekt mit SPI.
Gruss R.
Kaum macht man es richtig, schon funktioniert's ...
Du kannst aber auch zweimal 8 Bit hintereinander schieben. Wichtig ist nur, dass du CS vor dem ersten nach Masse ziehst und nach dem zweiten wieder setzen musst. Wenn du es bei jedem Byte machst, wird der Controller sich weiger mit dir zu reden.
Grüße,
Daniel
Hallo Daniel,
danke für den Tip.
Eigentlich dachte ich es in der folgenden Art durchzuführen.
- Buffer mit zu schreibenden Byte laden (Commando)
- Anzahl zu sendende Zeichen merken
- Anzahl der zu erwartenden Antwort vorbelegen
- CS Setzen
Erstes Byte in das Senderegister schieben
In der Interruptroutine:
- Noch Bytes zu Senden
- Sende weiteres Byte (Anzahl -- )
- Sind weitere Zeichen zu empfangen
Antwort Byte einlesen (Anzahl --)
Letztes Byte -> CS Löschen
Wäre das ein korrekter Ansatz ?
Gruss Richard
Geändert von Ritchie (09.03.2013 um 12:31 Uhr) Grund: Dummy Senden entfernt
Kaum macht man es richtig, schon funktioniert's ...
Lesezeichen