Forum: Mikrocontroller und Digitale Elektronik AD-Wandller - Kontrollregister unter Linux


von Peter (Gast)


Lesenswert?

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?

von K. J. (Gast)


Lesenswert?

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.

von Peter (Gast)


Lesenswert?

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.

von Kreissäge (Gast)


Lesenswert?

Peter schrieb:
> dass ich nicht genau weiß, wie oder was ich in
> das Register schreibe

Das steht im Datenblatt.

von Peter (Gast)


Lesenswert?

Hmm, da stehen viele Infos, aber ich komme trotzdem nicht weiter ...

von Marco H. (damarco)


Lesenswert?

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.

von Peter (Gast)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.