Analog Digital wandler (ADS1015) Daten auslesen und konvertieren

OP #3427613
Lesenswert?
• ▲
▼
Hallo zusammen,

bin neu hier :)

Ich sitze jetzt seit ein paar Tagen vor meinem neuen Analog Digital 
Wandler und bekomme keine ordentlichen Daten ausgelesen. Es handelt sich 
um den ADS1015 http://www.ti.com/lit/ds/symlink/ads1015.pdf

Gekauft habe ich ihn in der Version von Adafruit 
https://www.adafruit.com/products/1083

Verwende ich das Python Library von Adafruit mit meinem Raspberry Pi 
kommt auch genau das Ergebnis was ich erwarte. Derzeit habe ich einfach 
über einen Spannungsteiler ~1.1 Volt an A0 hängen.

Da der ADC über i2c ansprechbar ist habe ich als erstes mit den 
entsprechenden Linux Kommandozeilen Tools gearbeitet. Führe ich also ein 
Single Shot conversion an A0 durch gibt i2cget -y 1 0x48 0x00 als 
Ergebnis 0x2022 zurück. Verstanden habe ich mittlerweile, dass ich 
dieses Ergebnis anders herum interpretieren muss (LSB first) --> 0x2220 
= 8736 Dezimal

Die Frage ist jetzt wie komme ich von diesem Dezimal Wert auf die 
gewünschten ~1.1 Volt? Ich habe etwas recherchiert und mir den Python 
Code angesehen. Die multiplizieren das Ergebnis der Umwandlung mit dem 
Faktor des programmierbaren Verstärkers (4.096) und teilen durch 2048. 
Wenn ich das mache kommt etwas mit 17.4... heraus --> Nicht gut :)

In meinem C++ Programm möchte ich die convenience Methoden aus dem 
<i2c-dev> Header verwenden 
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/i2c/dev-interface

Bisher verwende ich da nur die Funktionen mit denen man 1 Byte Daten 
sendet oder empfängt. Wenn ich bei i2c_smbus_read_word_data ein __s32 
zurück bekomme, ist das dann auch LSB first? Wenn nicht, kann ich das 
noch umwandeln?

Hier ist eine Version in C (allerdings für den ADS1115) hier wird aber 
nicht mit diesen convenience Methoden gearbeitet sondern da passieren 
wilde Bitshifts
http://openlabtools.eng.cam.ac.uk/Resources/Datalog/RPi_ADS1115/code/ADS1115_sample.c

Bin für jede Hilfe oder Hinweis dankbar!

VG

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.