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
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.
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.
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.
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.
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).
merk_wuerdig ist da wirklich nichts...bei 16 ! bits ! die hintersten 100 Punkte werden wohl weitertanzen... ob du willst oder nicht ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.