PIC16F ADC_Read verfälscht Signal

OP #4622065
Lesenswert?

Hallo,
ich habe einen PIC16F1788 mit dessen ADC ich eine Spannung messen will.
Nun ist es so, dass bei jedem lesen des Wertes die Spannung verändert 
wird (siehe Bild).
Woran liegt das und kann ich das Problem beheben?

Da ich mit relativ hoher Frequenz den Wert lese und sich die Spannung 
schnell ändert wäre ein Kondensator zum glätten nicht möglich.

Ein externer ADC mit digitaler Schnittstelle (z.B. MCP3421) wäre 
möglich, aber nur wenn es keine andere Lösung gibt. Aus Platz und 
Kostengründen.

Programmiert wurde das ganze mit MikroC.

Jemand einen Vorschlag?

Gruß
Markus
Angehängte Dateien:
#4622075
Lesenswert?

Spannungsquelle zu hochohmig?
Beim ADC ist ein Sample and Hold vorgeschaltet. Sprich da wird ein 
Kondensator aufgeladen und belastet in dem Moment die Spannungsquelle.
Wenn du an der Quelle nichts ändern kannst (z.B. Widerstände des ggf. 
vorgeschalteten Spannungsteilers verkleinern) und dich das Verhalten 
stört kannst du dir mit einem OPV behelfen (Impedanzwandler). Vielleicht 
hilft auch schon ein kleiner Kondensator parallel zu deinem ADC-Eingang 
gegen GND.
OP #4622111
Lesenswert?

Das Signal kommt aus einem OP (Transimpendanzwandler) an dessen Ausgang 
ein 51 Ohm Widerstand hängt.
Diesen zu verkleinern wird wahrscheinlich nicht viel bringen ihn zu 
vergrößern verändert nichts.

Ein paralleler Kondensator sollte dann denke ich bei einigen pF liegen, 
oder?

Die Spannungsquelle bekommt dieselbe Versorgungsspannung wie der PIC 
(5V). Die Signalleitung des Sensors ist direkt an den Eingang des PIC's 
angeschlossen.
Gast #4622141
Lesenswert?

Ja bekommst Du denn ein falsches Ergebnis geliefert?
Ich vermute mal folgendes (abgeleitet aus dem Bild):
- Dein Spannungswert liegt auf ca. 2.2V
- bei 30us wird gesampelt (der int. C schaltet sich zu)
- nach ca. 22us ist die interne Wandlung zu Ende (C wird abgekoppelt)
- der Wert steht im Register
Stimmt der Wert im Register mit der zu erwartenden Spannung überein?

Gruß
TK
OP #4622164
Lesenswert?

Der Wert im Register entspricht nicht den genannten 2,2V, sondern 
schwankt.

Der Sensor erzeugt eine Wechselspannung die um 2,5V als "Nulldurchgang" 
wechselt. Die Differenz zwischen Spitzenspannung und "Nulldurchgang" 
muss ich messen um daraus den Effektivwert zu berechnen. Wenn der Sensor 
keine Wechselspannung erzeugt, sondern ein Gleichspannungssignal von 
2,5V liefert müsste der Effektivwert 0 sein, dieser schwank allerdings 
was durch die im Bild gezeigte abfrage an Eingang erzeugt wird.
Gast #4622684
Lesenswert?

OK - jetzt mal mehr Infos:
1) Du hast ein Wechselsignal mit einem 2.5V DC Offset - richtig?
 Wie hoch ist die maximale Frequenz und der Spannungsanteil des Signals?
2) Wie schnell ist Dein ADC im PIC eingestellt (Samplerate, 
Auflösung...)?
3) Was heißt: Der Wert schwankt? (um wieviele Bits?)

Du berechnest den Effektivwert über eine gemessene Periode?
Was kommt denn in dieser Berechnung mit dem uC raus, und wie groß ist 
dann der Fehler zum realen, berechneten Wert?

Gruß
TK
#4622792
Lesenswert?

Wie ist der ADC konfiguriert? Der S&H Kondensator wird nach 2 TAD Zyklen 
abgekoppelt. Dass dein Signal so beeinflusst wird deutet auf ein zu 
hochohmiges Signal hin.

Sollte die Sample-Rate nicht zur Taktfrequenz des uC passen (siehe DB) 
kommt es zu verfälschten Messergebnissen, d.h. auch eine zu geringe 
Sample-Rate führt zu falschen Ergebnissen!
OP #4623660
Lesenswert?

Soo,
ich habe nochmal etwas nach anderen Ursachen gesucht und habe das 
Problem lokalisiert.

Es liegt an meiner Spannungsversorgung.

Betreibe ich das ganze am Labornetzteil schwankt der Messwert um bis zu 
4 Bits, also zwischen 4 und 8 Bit, was durchaus rauschen oder 
Schwankungen vom Netzteil sein können.

Wenn ich das ganze aber wie bisher an einem fertigen Step-Up-Regulator 
betreibe der aus 3 AA Batterien 5V erzeugt, liegt die Differenz zwischen 
den Spitzenspannungen bei 110-120 Bits.

Nun muss ich mich um eine andere Spannungsversorgung bemühen, aber dann 
funktioniert alles soweit.

Trotzdem vielen Dank für die Hilfe.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren