ADC 12Bit - Byte-Interpretation

Gast #4613009
Moin,
ich habe einen AD-Wandler mit 12 Bit Auflösung. Der digitalisierte Wert 
meiner analogen Eingangsspannung wird als "2 byte" ausgegeben, 
beispielsweise 0x8e18. Hierbei handelt es sich um 16 Bit=2 Byte. Mein 
ADC unterstützt jedoch 12 Bit, wie bekomme ich demnach das korrekte 
Ergebnis bei einer VDD von 3,3V?
Gast
Es handelt sich hierbei um einen AD799x. Soweit ich recherchiert habe, 
wird unter Linux mit dem i2c-tool das LSB zuerst angegeben. Würde ich 
demnach 0x8e01 erhalten, ist mein Ergebnis 01 8e. Anschließend erfolgt 
die Umwandlung in das Binärsystem und "abschneiden" der letzten 4 Bits? 
Habe ich das richtig interpretiert?

Diese sind laut Datenblatt im Control Register unbelegt, nur was 
passiert, wenn diese im Ergebnis doch gesetzt sind?
Gast
Felix C. schrieb:
> weder vorne noch hinten würde es Sinn machen 4 Nullen "abzuschneiden".

0x8e18 sagt eigentlich nur aus, dass es ein Zweierkomplement ist, d.h. 
der Wert muss entsprechend intepretiert werden. Da "schneidet" man keine 
Nullen ab. Genaueres erläutert dir  - wie oben schon gesagt - das 
jeweilige Datenblatt bzw. das weltumspannende Netz.
Gast
Kleiner Hinweis am Rande. Mein Ergebnis vom Config-Register ist 0x0800, 
demnach 0000 0000 1000 (Default, laut Datenblatt). Wenn ich dieses 
Überschreiben möchte mit i2cset -y 1 0x21(ChipAdresse) 0x02 (Config 
Register) 0x06  erhalte ich dennoch die Default-Einstellung
Ludmilla schrieb:
> 0x8e18 sagt eigentlich nur aus, dass es ein Zweierkomplement ist, d.h.
> der Wert muss entsprechend intepretiert werden. Da "schneidet" man keine
> Nullen ab. Genaueres erläutert dir  - wie oben schon gesagt - das
> jeweilige Datenblatt bzw. das weltumspannende Netz.

Ludmilla schrieb:
> Ups...
>
> Datenblatt angeschaut, nix mit Zweierkomplement.

Zum Zeitpunkt meines Beitrages hat der TO noch gar nicht geschrieben um 
welchen Sensor es sich handelt. Kein Grund gleich so patzig zu werden.

Ausserdem...

Selbst wenn es ein signed 12-bit Wert gewesen wäre, wäre sicher Bit 11 
und nicht Bit 15 ausschlaggebend für das 2's Complement. Oft genug sind 
die 4 "überflüssigen" Bits ausserdem undefined.

Edit: Wären Bit 15:12 oder 3:0 Nullen gewesen wären dies immerhin ein 
Indiz auf die Ablage des 12 Bit-Wertes innerhalb der zwei Byte 
gewesen...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.