Forum: Mikrocontroller und Digitale Elektronik Drift von ADC Wert


von wizard (Gast)


Lesenswert?

hallo, arbeite mit Renesas M32c84 µC (16MHz). Verwende den internen ADC 
mit einer Sample Rate von 25kHz um 5000 Werte aufzunehmen. Der ADC wird 
durch TimerInterrupt gesteuert und der DMAC speichert mir die 
aufgenommenen Werte in ein Array.

Wenn ich also ein Gleichspannung von 0V anlege, dann bekomm ich einen 
DigitWert von 512 am Beginn des Arrays und 495 am Ende des Arrays. D.h. 
dass der Wert iwie wegdriftet. Die außere Beschaltung (ein paar OPVs, 
Differenzverstärker, ..) geben es so vor, dass 0V 512 Digits sind, da 
ich auch negative Spannungen messen will/muss.

Wird der ADC zu warm und verändert sich dadurch die Spannung. Verwende 
SampleHold, 10-Bit Auflösung, Frequenzvorteiler beim ADC: 8

Ich hoffe, ihr könnt mir weiterhelfen... Schaltungen kann/darf ich 
leider nicht online stellen.

von Karl H. (kbuchegg)


Lesenswert?

Probiers aus.
Häng anstelle deiner nicht zeigbaren Schaltung (wer baut die ein? die 
NASA, das Verteidigungsminitsterium, das DoD, Geheimdienst, KGB, ...) 
ein Poti an (ein Pin auf 0, ein Pin auf die Referenzspannung, Abgriff an 
den ADC) und mach den gleichen Versuch. Dann weisst du wer Schuld ist: 
der ADC oder deine ach so geheime Schaltung. Ich tippe auf die 
Schaltung.

von noips (Gast)


Lesenswert?

>Wenn ich also ein Gleichspannung von 0V anlege, dann bekomm ich einen
>DigitWert von 512 am Beginn des Arrays und 495 am Ende des Arrays. D.h.
>dass der Wert iwie wegdriftet.

Sind die Werte wirklich kontinuierlich fallend von 512 am Anfang bis 495 
am Ende oder springen sie hin und her?

von wizard (Gast)


Lesenswert?

Ich kann ja auch nichts dafür. Ist halt Firmenpolitik... Den Versuch 
kann ich leider nicht durchführen, da die HW scho eine fertige Platine 
ist und dan kann und will ich die Leitungen nicht mehr trennen. Ist iwie 
doch verständlich..
Hat sonst noch wer einen Ratschlag..??

von wizard (Gast)


Lesenswert?

Sie sinken konstant bis 495.

von Peter D. (peda)


Lesenswert?

wizard schrieb:
> Ich kann ja auch nichts dafür. Ist halt Firmenpolitik... Den Versuch
> kann ich leider nicht durchführen, da die HW scho eine fertige Platine
> ist und dan kann und will ich die Leitungen nicht mehr trennen. Ist iwie
> doch verständlich..

Nö.

Du must irgendwie feststellen, ob der Fehler von Deiner Schaltung kommt 
oder vom MC.

Also entweder die Spannung direkt am MC nachmessen oder ne konstante 
Spannung an den MC anlegen.


Peter

von wizard (Gast)


Lesenswert?

Eine konstante Spannung hab ich schon angelegt ----> Drift bis 495

von wizard (Gast)


Lesenswert?

Spannung am ADC-Eingang des uC bleibt gleich. Werde jetzt mal probieren, 
die Sample Rate von 25kHz zu reduzieren.. aber nur zu Versuchszwecken, 
weil ich brauche so kleine Schritte, da ich Sinussignale etc. messen und 
analysieren will.

von wizard (Gast)


Lesenswert?

Verdammmmttt. Bei einer Sample Rate von 5kHz driftet er nur um 4 Digits 
ab. (im Vergleich: 25kHz -> Drift von 20 Digits) D.h. meine geheime 
Schaltung ist nicht daas Problem..

Kann ich das iwie korrigieren?? Ich meine, solche Probleme muss doch 
jeder haben, der ein hochfrequentes Signal abtasten will, da man dazu 
eine sehr hohe Sample Rate benötigt.

von Benedikt K. (benedikt)


Lesenswert?

wizard schrieb:
> Verdammmmttt. Bei einer Sample Rate von 5kHz driftet er nur um 4 Digits
> ab. (im Vergleich: 25kHz -> Drift von 20 Digits) D.h. meine geheime
> Schaltung ist nicht daas Problem..

Das ist nicht gesagt: Eine höhere Samplerate bedeutet, dass die S&H 
Stufe häufiger geladen werden muss. Somit ist der Eingangswiderstand des 
ADCs kleiner. Wenn deine geheime Schaltung also sehr hochohmig ist, dann 
liegt hier das Problem.
Schalte mal einen Kondensator mit 100nF zwischen den ADC Eingang und 
GND.

von Peter D. (peda)


Lesenswert?

wizard schrieb:
> Eine konstante Spannung hab ich schon angelegt

Du hast aber gesagt, Du kannst den Eingang des MC nicht abtrennen?
Ich meinte direkt am Eingang des MC gegen AGND des MC.


> ----> Drift bis 495

Wann driftet er, nach Power-On, nach Reset, nach Start der Meßroutine?
Wie lange driftet er?
Oder driftet er immer weiter?


Peter

von wizard (Gast)


Lesenswert?

@ benedikt
okay, werd ich mal probieren... falls ich einen 100nF-kondensator iwo 
finde :)

@peda
Er driftet immer während der Messroutine.

z.B.:
1. Anlegen von 0V
2. Start ADC.... Array[0] = 511
                 Array[4999] = 495
   ADC wird gestoppt

3. Ich warte ....
4. Starte zum zweiten mal ADC  ...Array[0] = 511
                                  Array[4999] = 495

von Peter D. (peda)


Lesenswert?

wizard schrieb:
> Er driftet immer während der Messroutine.

Dann würde ich auch sagen, Deine Schaltung ist zu hochohmig.
Schalte mal ein Voltmeter parallel zum MC und dann starte die Messung.


Peter

von wizard (Gast)


Lesenswert?

Habe ein Voltmeter an den ADC-Eingang angeschlossen. Spannung am 
Voltmeter bleibt gleich, Drift ist ebenfalls vorhanden...

Was ich gerade in der Schaltung gesehen habe ist, dass am ADC-Eingang 
ein Tiefpass (R=4k7 C=1n) vorhanden ist. Vielleicht braucht ja wer diese 
info. ;)

von Schluck (Gast)


Lesenswert?

>Schalte mal einen Kondensator mit 100nF zwischen den ADC Eingang und
>GND.

Den hat er schon, glaube ich. Dieser wird langsam entladen.

von Schluck (Gast)


Lesenswert?

>ein Tiefpass (R=4k7 C=1n)

Überbrücke die 4K7 mit 100 Ohm.

von noips (Gast)


Lesenswert?

>Schalte mal ein Voltmeter parallel zum MC und dann starte die Messung.

Oder eher Oszi bei 25kHz Sample-Rate.

von wizard (Gast)


Lesenswert?

nööö, ist noch nicht in der Schaltung...

von wizard (Gast)


Lesenswert?

Ich geh mal zu unseren HW-Guru und lass mich beraten... mal schauen was 
der dazu sagt

von wizard (Gast)


Lesenswert?

Er wird sichs anschauen. das ergebnis werd ich in den nächsten Tagen 
hier posten... :)
Danke für eure hilfe

von wizard (Gast)


Lesenswert?

Nach einigen Wochen habe ich noch immer das gleiche Problem. HW Guru hat 
auf Anhieb auch keinen Rat und so wende ich mich wieder an das Forum. 
Hat iwer noch eine Idee??

von Karl H. (kbuchegg)


Lesenswert?

Was erwartest du?
Dein Hardware Guru kennt/sieht die Schaltung und kann sich das Programm 
ansehen.

Hier zeigst du nichts davon her (noch nicht mal in Ausschnitten).

Dein Hardware-Guru findet nichts obwohl er alle Infos hat.

Die hier üblicherweise verwendeten Glaskugeln sind zwar gut, aber so gut 
sind sie dann auch wieder nicht. Vielleicht sollten sich die üblichen 
Verdächtigen hier im Forum als Zigeunerin verkleiden, ein Kopftuch 
aufsetzen und einen Raben auf die Schulter setzen. Aber ich bezweifle, 
dass das Bild in ihren Glaskuglen dann schärfer wird.

von X- R. (x-rocka)


Lesenswert?

hast du dir alle 5000 werte angekuckt?
tritt die "drift" vielleicht nur in den ersten samples auf? oder 
kontinuierlich von 0..4999?
ganz genau das datenblatt des uC-ADC geprüft?
applikationshinweise, wie man den ADC ansteuert?
versorgungsspannung des ADC? extra pin? gut genug gepuffert/getrennt?
Masse analog / digital?

von wizard (Gast)


Lesenswert?

@ Karl heinz Buchegger:
und so was nennt sich Moderator. tzzz

@ x-rocka:
jap, drift von index 0 bis index 4999.
jap, Datenblat studiert. Die schaltung, welche am Eingang des ADCs liegt 
kann 10kOhm haben. Hab auch schon den Widerstand 4,7k überbrückt, 
Kondensatoren dazugeschaltet und entfernt.
Die Versorgungsspannung des ADC liegt direkt bei der 
Versorgungsspannung. Mein HW Guru hat gesagt, dass die Masse der 
Schaltung ziemlich schlecht ist. Vielleicht ist das die Ursache. Er 
glaubt es aber nicht.

Danke an alle, die eine produktive Antwort liefern. :)
wizard

von Gast (Gast)


Lesenswert?

>Die schaltung, welche am Eingang des ADCs liegt
>kann 10kOhm haben. Hab auch schon den Widerstand 4,7k überbrückt,

Die 10k Quellenwiderstand sind zu hoch. Hier hilft nur ein OPV als 
Puffer.
Taste probehalber einmal nur mit 2,5kHz ab. Dann sollte die Drift 
deutlich geringer sein und meine Vermutung bestätigen.


>@ Karl heinz Buchegger:
>und so was nennt sich Moderator. tzzz

Solch ein Kommentar stößt bei Allen hier auf Abscheu!
Karl-Heinz ist jemand, der sich oft auf noch so wirklich dumme 
Fragesteller einläßt und geduldig Ratschläge gibt, wo ich schon längst 
ein ganzes Kartenspiel mit Roten Karten auf den Tisch gelegt hätte.

von Uwe (Gast)


Lesenswert?

Hi!
Mach die 4,7K raus und lege direkt eine stabiele Netzteilspannung an
deinen µC. Wenn der Wert immernoch wandert hau den µC weg.
Wenn stabiel, hau deine geheime Schaltung weg und nimm eine öffentliche.
Achja, wenn du an die Ref.Spannung rankommst, beobachte mal diese wärend 
einer Messung.

Viel Erfolg, Uwe

von Lutz (Gast)


Lesenswert?

>Achja, wenn du an die Ref.Spannung rankommst, beobachte mal diese wärend
>einer Messung.

>>Die Versorgungsspannung des ADC liegt direkt bei der
>>Versorgungsspannung.

Sollte dann nichts bringen (wenn ich das so interpretiere, daß die 
Versorgungsspannung des µC auch direkt als Versorgungsspannung des ADC 
angeklemmt ist).

von Uwe (Gast)


Lesenswert?

Hi!
>>Achja, wenn du an die Ref.Spannung rankommst, beobachte mal diese wärend
>>einer Messung.

>>>Die Versorgungsspannung des ADC liegt direkt bei der
>>>Versorgungsspannung.

>Sollte dann nichts bringen (wenn ich das so interpretiere, daß die
>Versorgungsspannung des µC auch direkt als Versorgungsspannung des ADC
>angeklemmt ist).

Referenzspannung hat erstmal nichts mit Versorgungsspannung zu tun.
(könnte auch noch versaut sein, aber da zappeln die Werte anders)
Beim AVR ist sie herausgeführt und sollte mit einem C gestützt werden.
Was wizard hat weiss ich doch nicht und das Datenblatt lese ich
jetzt nicht extra.

Viel Erfolg, Uwe

von Loup (Gast)


Lesenswert?

Hi!

Zu Deinem Drift-Problem bei Gleichspannung kann ich zwar nichts neues 
beitragen (außer, dass ich die 10k Quellenwiderstand auch bisschen hoch 
finde), aber mir ist beim durchlesen noch was anderes aufgefallen:

>Sample Rate von 25kHz

>ich brauche so kleine Schritte, da ich Sinussignale etc. messen
>und analysieren will

Signalverarbeitung?

>am ADC-Eingang ein Tiefpass (R=4k7 C=1n) vorhanden ist

Wie hoch werden denn die Eingangsfrequenzen die Du messen willst?

Wenn Du mit 25kHz abtastest darf dein Eingangssignal höchstens(!) 
12.5kHz haben, sonst verletzt Du das Abtasttheorem und Du bekommst 
Aliasing-Effekte! (Was aber möglicherweise bei Deiner Anwendung gar 
keine Rolle spielt. Da Du uns aber nicht sagst, was Du genau machen 
willst...)

Der oben genannte TP ist als Anti-Aliasing-Filter aber gar nicht 
geeignet, da die Grenzfrequenz überschlagweise erst bei

liegt und Du außerdem wegen des flachen TP 1. Ordnung ordentlich 
überabtasten müsstest.

Hat die Schaltung oder die ADC noch irgendwo einen anderen TP eingebaut? 
Falls nicht musst Du, je nach Anwendung, aufpassen ob Du Dir da Probleme 
einhandelst.

Das ganze hat zwar nichts mit dem ursprünglichen Problem zu tun, aber es 
ist mir eben aufgefallen. (Hoffe meine Ausführungen stimmen soweit ;)

Grüße
Loup

von wizard (Gast)


Lesenswert?

Danke für die Info.
Ich werde Signale mit eine maximalen Frequenz von 3.5kHz abtasten. Der 
TP ist mittlerweile weg. ;)

Hab noch was rausgefunden:
Abtastfrequenz des ADC     |    Drift    |   Drift in Volt
25kHz                           23 Digits      0,112V
8kHz                            10             0,048
500Hz                           6              0,03

Je geringer die Abtastfrequenz, desto geringer wird auch der Drift.

von wizard (Gast)


Lesenswert?

EDIT:
War von mir vielleicht falsch formuliert.
Die Signale die ich abtaste, haben maximal eine Frequenz von 3.5kHz

von Gast (Gast)


Lesenswert?

Vom 8.09. bis heute hast Du alle notwendigen Anregungen bekommen, um 
dieses einfache Problem endgültig zu lösen. Mich wundert, daß das bis 
heute nicht gelungen ist.

von wizard (Gast)


Lesenswert?

Weil ich mich anderen Aufgaben in der zwischenzeit zugewendet habe und 
jetzt bin ich wieder auf das Problem gestoßen und will es endlich lösen.

von Wolfgang-G (Gast)


Lesenswert?

>>@ Karl heinz Buchegger:
>>und so was nennt sich Moderator. tzzz

>Solch ein Kommentar stößt bei Allen hier auf Abscheu!
>Karl-Heinz ist jemand, der sich oft auf noch so wirklich dumme
>Fragesteller einläßt und geduldig Ratschläge gibt, wo ich schon längst
>ein ganzes Kartenspiel mit Roten Karten auf den Tisch gelegt hätte.

genau, das habe ich auch empfunden, als ich diese Bemerkung las

MfG

von Loup (Gast)


Lesenswert?

>Die Signale die ich abtaste, haben maximal eine Frequenz von 3.5kHz

Wenn sichergestellt ist, dass die Eingangsfrequenz keinesfalls höher 
werden kann, dann kannst Du den TP natürlich weglassen (außer der war 
für einen anderen Zweck drin, etwa als Schutzbeschaltung für den 
ADC-Eingang).

Es genügt dann auch, mit mindestens der doppelten Frequenz abzutasten. 
Ich würde aber sicherheitshalber etwas mehr nehmen.

Mehr dazu: 
http://de.wikipedia.org/w/index.php?title=Nyquist-Shannon-Abtasttheorem

Grüße
Loup

von Kai Klaas (Gast)


Lesenswert?

Hallo Wolfgang,

>genau, das habe ich auch empfunden, als ich diese Bemerkung las

Es ist auch ein Votum, wenn sich bestimmte Fachleute hier garnicht erst 
an der Diskussion beteiligen.

Es ist schon unglaublich, welche Arroganz und Selbstgefälligkeit von 
blutigen Laien hier teilweise an den Tag gelegt wird. Aber "iwie" klar, 
wenn sich einer schon "wizard" nennt.

Wizard, löse deinen Scheiß selber und lerne erst mal Umgangsformen...

Kai Klaas

von Karl H. (kbuchegg)


Lesenswert?

Kai Klaas schrieb:

> Es ist schon unglaublich, welche Arroganz und Selbstgefälligkeit von
> blutigen Laien hier teilweise an den Tag gelegt wird. Aber "iwie" klar,
> wenn sich einer schon "wizard" nennt.

Es ist schon ok für mich.
Ich seh das nicht so ernst.

Das einzige was mich ärgert:
In diesem Thread gibt es so gut wie keine verwertbare Information. Alles 
ist top secret. Keine Schaltung, kein Programm, kein gar nichts.

Da sieht sich ein Fachman vor Ort die Schaltung an (der sieht sie, der 
kann drann messen) und findet nichts.
Und nach über einem Monat ungelöstem Problem kommt die Frage:

Hat noch wer eine Idee?


Wenn wer eine Idee gehabt hätte, dann hätte er sich bei der 
Ursprungsfrage schon gemeldet. Hier im Forum gibt es niemanden der sich 
Tag und Nacht nur den Kopf darüber zerbricht, welchen Schaltungsmüll 
(der nicht zeigbar ist) wieder gemacht wurde.

Und sowas ärgert mich einfach. Gib endlich vernünftige Informationen. 
Schaltplan, ev ein Photo vom Aufbau, Programm. Das übliche Programm. 
Alles andere ist Stochern im Nebel.

Kein Mensch verlangt, dass der komplette Schaltplan gepostet wird. Der 
Teil mit der ADC Beschaltung reicht fürs erste völlig. Dazu noch der 
Ausgangsteil der mit dem ADC verbunden wird. Ich kann mir nicht 
vorstellen, dass eine ADC Beschaltung so top secret ist, dass niemand 
sie sehen darf.

Und in Zukunft sollten wir Moderatoren uns mal überlegen, ob Postings 
die mit (kann/darf ich nicht zeigen) anfangen nicht einfach gelöscht 
werden sollten. Da kommt sowieso meistens nichts raus. Schliesslich 
gehen wir alle auch selber zum Arzt, damit sich der die Sache ansehen 
kann und sagen nicht: Du darfst mich nicht sehen.

von H.J.Seifert (Gast)


Lesenswert?

Ganz deiner Meinung, deshalb habe ich mich auch komplett rausgehalten. 
Z.T. aber schon lustig, wieviel Mühe sich manche geben....
Was kann schon geheim sein an einer Analogschaltung, wenn man nur den 
letzten Teil zeigt? Richtig, gar nichts.
Ebenso ein lauffähiges abgespecktes Programmstückchen, welches die Daten 
nur in das Array speichert, aber den Fehler zeigt. Geheim? Dass ich 
nicht lache.
Und wer wirklich so im Dunklen arbeitet, muss sich eben entsprechende 
Fachleute und Equipment kaufen.
Habe fertig.

von TrippleX (Gast)


Lesenswert?

Ich könnte mir vorstellen das dass der ADC selber ist.
Leider hab ich kein Datenblatt so den µC gefunden also
konnte ich mir kein Diagramm von den ADC anschauen ( solche Werte
sind daimmer angegeben )

Nur weil die Eingangspannung undendlich Kontant ist, ist der
ADC trotzdem nicht in der Lage immer die selben Werte auszuspucken.

Mir ist zwar nicht klar was du machen willst aber wen du die Werte
mittelst dann wird das passen.

von wizard (Gast)


Lesenswert?

Es war höchstwahrscheinlich der ADC selber. ;) Bin auch draufgekommen, 
dass der drift nur in den ersten 100 Samples vorgekommen ist, danach war 
der Wert (+/-6Digits) konstant.

Fehler nun behoben. :) Danke an alle und wenn ich wieder ein Frage 
poste, dann mit mehr infos. ;)

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.