Forum: Mikrocontroller und Digitale Elektronik Merkwürdiges Wandlungsergebnis beim AD7655


von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Hallo,

ich arbeite gerade mit einem AD7655 (16bit 2-Kanal-ADC) von Analog 
Devices und wundere mich über das Wandlungsergebnis eines Kanals:

Lege ich die Eingänge auf Masse, so bekomme ich auf Kanal A als 
Wandlungsergebnis 0, wie es auch sein soll. Der andere Kanal B gibt mir 
aber ein Ergebnis von knapp 100 aus, was umgerechnet ~8mV entspricht. 
Lege ich andere Eingangsspannungen ein, liefern die beiden Kanäle auch 
immer unterschiedliche Werte, nur bei 1,2V etwa sind die beiden gleich, 
danach ist A größer als B. Die Abweichungen scheinen annähernd linear zu 
verlaufen, als wenn die Steigung der Kennlinie des B-Kanals leicht 
kleiner als die von A ist.

Hat jemand so ein Verhalten schon einmal beobachtet oder könnte Tipps 
geben, woran das liegt?

Gruß

Christoph

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

An der Beschaltung oder in Zeile 42 der Software :)

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Läubi Mail@laeubi.de wrote:
> An der Beschaltung oder in Zeile 42 der Software :)

Sehr lustig. Die Beschaltung entspricht der aus dem Datenblatt, die 
Daten werden seriell über SPI ausgelesen. Das Timing stimmt soweit 
alles. Ich habe momentan keine Idee mehr, warum ein Kanal richtig 
wandelt, der andere aber nicht. Die Referenzspannung ist an beiden 
Kanälen das gleiche. Das der ADC zu einer größeren Familie von Analog 
Devices gehört, wüsste ich halt gerne, ob andere mit den Pulsar-ADCs 
ähnliche Probleme hatten.

von Matthias L. (Gast)


Lesenswert?

Die Antwort von Läubi ist weiterhin korrekt.

von Der Bimpf (Gast)


Lesenswert?

Schon mal ins Datenblatt gesehen? 0,25% von der FSR sind etwa 164 Incs. 
Da liegen deine 100 locker drin. Die Null beim anderen Kanal heißt 
natürlich nicht unbedingt, dass er keine Offsetfehler hat. Nuller als 
null kann es ja nicht werden.

von Christoph B. (christophbudelmann) Benutzerseite


Angehängte Dateien:

Lesenswert?

Im Anhang ist die Beschaltung des AD7655 zu sehen. Als Referenz werden 
2,5V verwendet, die anderen Steuersignale gehen zu einem Atmega168. Die 
Massen sind getrennt und nur an einem Punkt zusammengeführt, die analoge 
Spannung ist von der digitalen durch ein Filter getrennt.

Das Timing entspricht der Abbildung 31 des Datenblatts, was ich mittels 
Oszilloskop überprüft habe. Im Unterschied zum Datenblatt ist das 
Clock-Signal aber invertiert, die Pegel des AD7655 ändern sich alle bei 
den fallenden Flanken und gesampelt wird auf die steigenden Flanken. Die 
SPI-Routinen funktionieren, das Signal auf dem Oszilloskop ist identisch 
mit meiner Ausgabe vom Mikrocontroller.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Der Kanal, der Probleme macht, ist allerdings der Kanal A, da ich B als 
ersten auslese (A/B = low). Ändert aber am Problem nicht wirklich etwas.

von Christoph B. (christophbudelmann) Benutzerseite


Angehängte Dateien:

Lesenswert?

Im Anhang mal ein Screenshot des Oszilloskops mit folgenden Signalen:

blau: CONVST-Signal zum Starten der Umwandlung

rosa: CS-Signal des SPI-Busses

gelb: SCK-Signal des SPI-Busses

grün: SDOUT-Signal vom AD7655

An beiden Eingängen liegen 0V an. Spannungsunterschiede in den 
Masseleitungen habe ich keine (zumindest keine über einem mV).

von Mensch_Z (Gast)


Lesenswert?

merk_wuerdig ist da wirklich nichts...bei 16 ! bits !
die hintersten 100 Punkte werden wohl weitertanzen...
ob du willst oder nicht ;-)

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Der Bimpf wrote:
> Schon mal ins Datenblatt gesehen? 0,25% von der FSR sind etwa 164 Incs.
> Da liegen deine 100 locker drin. Die Null beim anderen Kanal heißt
> natürlich nicht unbedingt, dass er keine Offsetfehler hat. Nuller als
> null kann es ja nicht werden.

Keine Ahnung, wie oft ich inzwischen ins Datenblatt geschaut habe, nur 
manchmal sieht man den Wald vor lauter Bäumen nicht. Danke für den 
Hinweis, ich hatte noch eine andere Hausnummer für den Full Scale Error 
von einem anderen Baustein im Kopf.

>merk_wuerdig ist da wirklich nichts...bei 16 ! bits !
>die hintersten 100 Punkte werden wohl weitertanzen...
>ob du willst oder nicht ;-)

Tanzen tun die hinteren Bits ja nicht, die sind bis auf die letzten zwei 
Bits konstant. Den beschrieben Fehler hatte ich ja immer. Der FSR 
erklärt den aber.

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.