Forum: Mikrocontroller und Digitale Elektronik ADuC7060 ADC-Problem


von Wadim (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, Leute!

Im Rahmen des studentischen Praxissemesters habe ich bei der Firma ein 
EVAL-ADuC7060 Board bekommen und soll diesen für weitere Entwicklungen 
auf "Herz und Nieren" testen. Vor allem ist uns der ADC-Eingang sehr 
wichtig.

Um den ADC zu testen habe ich einen simplen Spannungsteiler mit einem 
Trimmpotentiometer auf dem Board zusammengelötet (Abb. im Anhang). Der 
560Ohm Widerstand dient vor allem für den Offset des Eigangssignals 
(Datasheet S.6). Für den Test verwende ich den Bespielcode von ADI (auch 
im Anhang).

So, jetzt zu meinem Problem. Wenn ich jetzt die interne Verstärkung 
(PGA) testen möchte, liefert mir der ADC ab PGA=4 falsche Werte.

Ein Beispiel dazu:

Bei einer Eingangsspannung von ca. 230mV
PGA=1 -> ADC=3206162  //passt
PGA=2 -> ADC=6411773  //passt auch soweit
PGA=4 -> ADC=7106274  //passt überhaupt nicht

Ich verwende folgende Gleichung um Integer-werte in Spannung umzuwandeln
 //Uref ist 1,2V

An dem Board kann es bestimmt nicht liegen, da wir hier noch den 
"kleineren Bruder" ADuC7061 haben, und der verhält sich genauso.

Hat jemand ähnliche Erfahrungen mit diesem MC gemacht? Kann mir jemand 
helfen?

mfg
Wadim

von Wadim (Gast)


Lesenswert?

Keiner kann mir helfen??? Das beweist nur, wie wenig dieses Board bzw. 
MC verbeitet ist. :/

von Anja (Gast)


Lesenswert?

vermutlich kann der ADC nur bis etwa +/- UREF/2 messen.
bei PGA = 4 wird er dann übersteuert.
-> ich würde mal ins Datenblatt schauen.

Gruß Anja

von Wadim (Gast)


Lesenswert?

Hallo, Anja!

Danke für den Tipp, aber im Datebblatt steht, dass dieser µC interne 
Verstärkung bis zu 512 hat. Mann soll nur darauf achten, dass bei der 
steigender Verstärkung der maximale Aussteuerungsbereich kleiner wird.

Hier der Link zu dem Datenblatt
http://www.analog.com/static/imported-files/data_sheets/ADuC7060_7061.pdf

Ich habe schon mal in den Technischen Support geschrieben, aber immer 
noch keine Antwort...

Naja...ich werde dann mal weiter forschen :/

mfg Wadim

von Wadim (Gast)


Lesenswert?

Leute! Bitte, bitte helft mir! Hat den wirklich keine/keiner von euch 
ähnliche Probleme gehabt?

von Volker Z. (vza)


Lesenswert?

Anja hat dir die Lösung gegeben.
Du hast sie selbst aus dem Datenblatt zitiert.

Was brauchst du noch?

Rechne mal den maximalen Wert von 24-bit Auflösung aus und vergleiche 
ihn mal mit deinen Zahlen.

Na fällt dir was auf?

von Wadim P. (wadim)


Lesenswert?

Hallo Volker!

Von Übersteuererung kann hier nicht die Rede sein. Da ich am Eingang 
keine negative Spannung erwarte, messe ich unipolar. Der 
Aussteuerungsbereich geht somit von 0 bis 0xffffff=2^(24)-1=16777215. 
Laut Datenblatt S.6 darf ich bei der PGA=4 bis 300mv messen, ich lege 
nur 230mV drauf.
Stellt man die ober Formel nach ADC um und rechnet den theoretischen 
Wert für 230mV bei PGA=4 aus, bekommt man 12862531 -> knapp 4Mio. 
weniger als der maximale Wert. Wieso ich aber etwas mehr als die Hälfte 
meiner errechneten Zahl bekomme ist mir ein Rätsel.

Also ich weis es wirklich nicht, was mir da noch auffallen soll?

von Volker Z. (vza)


Lesenswert?

Wie du selber erkannt hast ist das letzte (most signifikant) Bit an.
Aus deinem Quelltext geht nicht hervor, wie du den Gain umschaltest. 
Vielleicht löscht du ja (ausversehen) das Unipolar-bit dabei (selbe 
Register).

Des Weiteren wird ab Gain 4 der "in-amp" eingeschalttet. Hierzu habe ich 
nichts weiter im Datenblatt gefunden (Ich habe auch nicht sehr intensiv 
gesucht). Vielleicht hat das verhalten ja damit was zutun.

Du benutzt die Differenz-Messung. Ich habe nicht nachgerechnet ob 
irgentwelche absoluten Pegel überschritten werden.

Lese mal den ADC-Status (ADCSTA) mit aus und übertrage ihn. Vielleicht 
sagt er ja, was Falsch ist.

Du überträgst dein ergebniss mit 9600 baud. Das entspricht ca. 1 Byte 
pro ms. Für einen Wert braucht du bis zu 10 ms. Du mist mit einer 
Smplerate von 1 kHz. Das past nicht.

von Wadim P. (wadim)


Lesenswert?

Ich kann während des Debuggens das Programm anhalten und mir sämtliche 
Variablen und Register anschauen. ADCSTA hat ständig den Wert 0x01 
(Primary ADC result ready bit). Alles andere ist auch in Ordnung.

Zu der UART: Ich brauche für einen Wert nicht 10ms sondern 3ms...also 
24Bit = 3Byte. Aber das ist auch nicht weiter wichtig, weil wenn ich 
auch nur jeden dritten Wert sehe, stimmt er trotzdemm mit dem 
errechneten nicht. Außerdem, wie gesagt, ich kann im Debugg-mode alle 
Werte anschauen. Ab PGA=4 tritt "Integral Nonlinearity" in Erscheinung, 
aber das ist vernachlässigbar klein.

Mir bleibt woll nichts anderes, als auf die Antwort vom Support zu 
warten.

von Wadim P. (wadim)


Lesenswert?

Ich habe mein Problem selber gelöst und wollte hier die Lösung für die 
Leute schreiben, die vllt. auch auf ähnliche Probleme stoßen.

Die Lösung ist so simpel, dass man sie schnell übersehen kann...und zwar 
diese 100mV Offset, die im Datenblatt auf Seite 6 stehen stimmen nicht. 
Bei meinem Offset von 112mV funktionierte die Schaltung nicht, erst 
durch ein Zufahl habe ich entdeckt, dass bei viel größerem Offset alles 
wunderbar geht...zumindest bei der Schaltung im ersten Beitrag.

Also nochmal zum Mitmeißeln...ich habe die R2=560Ohm durch 2,88kOhm 
ersetzt und die ADC-Werte stimmen jetzt auch ab PGA=4.

Ich bedanke mich bei allen, die versucht haben mir zu helfen.

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.