Forum: Mikrocontroller und Digitale Elektronik PCF 8591


von Mike (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich versuche derzeit (bisher vergeblich), den AD-Wandler PCF 8591 mit 
einem Atmega32 auszulesen. Verbindung zwischen µC und PC ist über USB 
vorhanden, so können die Werte direkt weitergesendet werden.


i2c_init();
i2c_start(0x90);
i2c_write(0x04);
i2c_stop();

i2c_start(0x91);
i=i2c_readNak;
send(i);


Das ist mein Code. Die Initialisisierung und Addressierung funktioniert, 
die Rückgabewerte der Funktionen bestätigen das (Ich benutze die I2C 
Master library von Peter Fleury).
Was nicht funktioniert, ist das Lesen vom AD-Wandler.
Folgende Beobachtung habe ich gemacht:
Wenn ich den AD-Wandler (wie oben) mit der Funktion i2c_readNak 
(Einmaliges Auslesen, danach Stopbedingung) auslese, kommt immer 5F als 
Wert zurück. Benutze ich die Funktion ic2_readAck wird immer der Wert 71 
gesendet.
Und wenn ich als dritte Möglichkeit nicht den Rückgabewert der Funktion 
als gewandelten Wert auslese sondern direkt das TWDR-Register, bekomme 
ich 00 als Wert.

Hat irgendjemand eine Idee, wo ich nach meinem Fehler suchen könnte? Bin 
leider ziemlich ratlos und weiß nicht, was ich noch abklopfen könnte.
Die Beschaltung habe ich angehängt, ist ein wenig unübersichtlich aber 
ich denke, man kann das Wesentliche erkennen.

von Mike (Gast)


Lesenswert?

Hat denn gar niemand irgendeine Idee? Bin leider immer noch nicht 
weitergekommen....

von Board G. (boardgeist)


Lesenswert?

Ich habe es geschafft diesem Baustein einen Digitalen Wert abzuringen, 
also AD funktioniert.

Nur Digital -> Analog will gar nicht.

Was hat es mit AGND auf sich, muss ich das extra legen? oder offen 
hängen lassen, messe ich meine analog. spannung hiergegen?  irgendwie 
auf GND muss ich die aber legen.

MfG

von Board G. (boardgeist)


Lesenswert?

der trick ist leicht,
man mache alles in einem rutsch. keine einzelnen sendeoperationen 
sondern als block, array, wie auch immer in einer folge senden.

sonst nimmt er das datenbyte wieder als befehlsbyte auf.

mfg

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.