AD-Wandller - Kontrollregister unter Linux

Gast #4604673
Guten Morgen,
ich habe eine Frage zum AD-Wandler AD7998. Dieser hängt an einem 
Beagleboard. Die Overlays für den I2C1-Bus und der Konfiguration der 
GPIOs für CONVST und BUSY (Pullups) habe ich bereits geladen.

Um den ADC nun mit V_in_1 testen zu können, muss ich für Kanal 1 ein 
Conversion Start-Signal senden, um die EIngangsspannung überhaupt lesen 
zu können.

Mein eigentliches Problem stellt jedoch das Kontrollregister dar, da ich 
damit noch absolut nichts zutun hatte. Im Control Register müssen die 
Kanäle (Eingangsspannung an V_in_1), die beim nächsten CONVST-Signal 
digitalisiert werden sollen, konfiguriert werden oder? Falls ja, wie 
gehe ich da am besten vor, wenn ich unter Linux in einer Shell mit den 
i2c-tools arbeite?
Gast #4604692
Wo ist den genau dein Problem ?

du musst das Register setzen und die Daten da rein schreiben das geht 
mit den I2C Tools recht simpel ist aber recht aufwendig sinnvoller wehre 
es was mit einer anderen Programmiersprachen zu machen perl, python,c 
wen php bei dir die rechte hat ginge das auch.

Schau dir mal i2cset an für die Register und i2cget zum auslesen.
Gast #4604816
Es ist aufwendig, aber ich möchte es nur Testweise nutzen, um mir einen 
Wert ausgeben zu lassen.

Das Problem liegt darin, dass ich nicht genau weiß, wie oder was ich in 
das Register schreibe, um mir meinen Wert an V_in_1 beim nächsten 
Conversion Signal digitalisieren zu lassen.
#4604894
Also meist ist es so das es ein dev-i2c devices gibt. Dem wird per  ctrl 
die Adresse über geben und dann kann man read und write per fd darauf 
zugreifen.  Das Protokoll musst du selber inszenieren.

Möglich ist auch per proc oder sys Filesystem darauf zu zugreifen.  Ob 
der Treiben diese Funktionen zu Verfügung stellt weis ich nicht.
Gast #4609293
Ich habe es nun versucht, komme aber nicht weiter.

root@beaglebone:/# i2cdetect -y -r 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- 22 -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Adress Pointers auf Conversion Result Register setzen
root@beaglebone:/# i2cset -y 1 0x22 0x00

Den Wert als Wort auslesen (2 Byte)
root@beaglebone:/# i2cget -y 1 0x22 0x00 w
0xb80f

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.