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?
Welcher Sensor? Thorsten schrieb: > beispielsweise 0x8e18 Hast du dir den ausgedacht? Das wäre 0b1000 1110 0001 1000 weder vorne noch hinten würde es Sinn machen 4 Nullen "abzuschneiden".
Thorsten schrieb: > Mein > ADC unterstützt jedoch 12 Bit, wie bekomme ich demnach das korrekte > Ergebnis bei einer VDD von 3,3V? Das steht ganz genau beschrieben im Datenblatt des jeweiligen ADC.
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?
Warum was abschneiden? Die vier MSB sind immer 0? (du bekommst immer yz 0x)-> dann passt das doch...
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.
Ups... Datenblatt angeschaut, nix mit Zweierkomplement. Siehe Anhang.
Ich habe einen AD7998, was bedeutet das für mich? Übrigens liefer das Conversion Register als Standard vor dem Schreib- und Lesezugriff 0xd779.
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...
Felix C. schrieb: > Zum Zeitpunkt meines Beitrages hat der TO noch gar nicht geschrieben um > welchen Sensor es sich handelt. Kein Grund gleich so patzig zu werden. Wer ist denn hier patzig??? Ist heute schon wieder Mimosen-Tag?
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.
