Forum: Mikrocontroller und Digitale Elektronik ADC mit interner Referenzspannung


von Bernd (Gast)


Lesenswert?

Hallo liebes Forum,

ich habe ein Problem mit einer Spannungsmessung auf einem PIC16F1823.

Als Referenzspannung benutze ich die interne Referenz (FVR), die ich auf 
2,048V gestellt habe. Die zu messende Spannung liegt immer unter 2V. Im 
Normalfall wird die Elektronik mit 4,7V versorgt, die ein Rauschen von 
+-0,5V aufweist (kleine Peak-Bursts, die mit 50Hz auftreten). Diese 
Spannung wird über eine Schottky-Diode und einen 470R Widerstand 
eingespeist. Es bleiben etwa 3,8+-0,5V. Die Versorgungsspannung fällt 
niemals unter 3,3V. Leider missglückt aber trotzdem die Spannungsmessung 
und das scheint an der Versorgungsspannung zu liegen. Wenn ich nämlich 
die Diode und den Widerstand überbrücke, also die 4,7V direkt auf den 
Controller gebe, funktioniert alles wie gewünscht. Mit der Diode und dem 
Widerstand wird die Spannung dagegen zu groß gemessen. Hat jemand eine 
Idee? Könnte das Rauschen das Problem sein? Eigentlich ist die 
Versorgungsspannung ja trotzdem innerhalb der Spezifikation.

Grüße
Bernd

von Pandur S. (jetztnicht)


Lesenswert?

Eine derart schlechte Versorgungs Spannung ... was erwartest du ? Mach 
die erst richtig, DC. Nicht mit Bursts und dergleichen.

von Udo S. (urschmitt)


Lesenswert?

1. Deine 0,5V peaks sind vieleicht in der Realität auch 1V peaks, ne 
nachdem wie gut dein Oszi-Eingangsverstärker ist.
2. Hast du alle notwendigen (keramische) Abblock Cs und zwar möglichst 
direkt an den Versorgungspins.
3. Ist dein Analogground und die Analogversorgung sauber ausgeführt und 
nach Datenblatt entkoppelt.

: Bearbeitet durch User
von Bernd (Gast)


Lesenswert?

Jetzt Nicht schrieb:
> Eine derart schlechte Versorgungs Spannung ... was erwartest du ? Mach
> die erst richtig, DC. Nicht mit Bursts und dergleichen.
Die Versorgung von außen ist leider Systembedingt. Bisher hat das auch 
funktioniert. Bisher sollte die Elektronik aber auch keine Spannung 
messen...
Vielleicht habe ich es aber auch schlimmer beschrieben, als es ist. Ich 
mache morgen ggf. noch ein Bild.

Udo Schmitt schrieb:
> 1. Deine 0,5V peaks sind vieleicht in der Realität auch 1V peaks, ne
> nachdem wie gut dein Oszi-Eingangsverstärker ist.
Könnte etwas dran sein. Das Oszi ist sehr hochwertig, aber man weiß ja 
nie. Kann ich das irgendwie überprüfen?

Udo Schmitt schrieb:
> 2. Hast du alle notwendigen (keramische) Abblock Cs und zwar möglichst
> direkt an den Versorgungspins.
Habe ich. Sollte ich die 100nF am Controller etwas hochschrauben? Oder 
bringt das bei dem hochfrequenten gezappel sowieso nichts?

Udo Schmitt schrieb:
> 3. Ist dein Analogground und die Analogversorgung sauber ausgeführt und
> nach Datenblatt entkoppelt.
mein Analogground ist Vss. Dementsprechend keine besondere Ausführung 
oder Entkoppelung.

von Karl H. (kbuchegg)


Lesenswert?

Bernd schrieb:
> Jetzt Nicht schrieb:
>> Eine derart schlechte Versorgungs Spannung ... was erwartest du ? Mach
>> die erst richtig, DC. Nicht mit Bursts und dergleichen.
> Die Versorgung von außen ist leider Systembedingt.

Na ja. Das ist ja kein Grund. Ein 0.5V Ripple ist schon nicht mehr 
klein. Mit einem größeren Kondensator ist der Ripple weg.

von Karl H. (kbuchegg)


Lesenswert?

> Diese Spannung wird über eine Schottky-Diode und einen 470R Widerstand 
eingespeist.

Wozu eigentlich der Widerstand?

Braucht der µC mal kurzfristig mehr Strom, bricht dir die 
Versorgungsspannung ein. Der Widerstand fungiert dann zusammen mit 
deinem µC als Spannungsteiler!

von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz schrieb:
>> Diese Spannung wird über eine Schottky-Diode und einen 470R Widerstand
> eingespeist.
>
> Wozu eigentlich der Widerstand?
>
> Braucht der µC mal kurzfristig mehr Strom, bricht dir die
> Versorgungsspannung ein. Der Widerstand fungiert dann zusammen mit
> deinem µC als Spannungsteiler!

Da ist sowieso was faul, wenn dir deine Schotky-Widerstandskombination 
aus 4.7V nur mehr 3.8V bringt. An der Diode fallen ca 0.4V ab. D.h. am 
Widerstand müssen dann schon 0.5V abfallen - der ist schon recht aktiv 
als Teil des mit dem µC gebildeten Spannungsteilers.

von S. K. (hauspapa)


Lesenswert?

>Da ist sowieso was faul, wenn dir deine Schotky-Widerstandskombination
>aus 4.7V nur mehr 3.8V bringt...

1mA Verbrauch ist schnell beisammen. Anstelle des Widerstands eine 
kleine Induktivität mit selber Bauform und alles könnte gut werden.

viel Erfolg
Hauspapa

von Karl H. (kbuchegg)


Lesenswert?

S. K. schrieb:
>>Da ist sowieso was faul, wenn dir deine Schotky-Widerstandskombination
>>aus 4.7V nur mehr 3.8V bringt...
>
> 1mA Verbrauch ist schnell beisammen.

Eben.
Und wenn der µC anstelle von 1mA kurzfristig sich schnell mal 2mA 
genehmigt, dann fallen nicht mehr 0.5V am Widerstand ab, sondern schon 
ein ganzes Volt.

von Udo S. (urschmitt)


Lesenswert?

Den 470R Widerstand hatte ich glatt überlesen. Der kann sogar für den 
gemessenen 0,5V Ripple verantwortlich sein, je nachdem wo der TO 
gemessen hat.

S. K. schrieb:
> Anstelle des Widerstands eine
> kleine Induktivität mit selber Bauform und alles könnte gut werden.

Spricht einiges dafür.

von Bernd (Gast)


Lesenswert?

Hallo Leute,

danke für die Antworten!

Also die Rippel habe ich überall: vor der Diode, zwischen Diode und 
Widerstand und nach beiden. Der kommt schon von der Versorgung.

Der Widerstand ist zum Schutz. Der Spannungseingang wird später von 
außen berührbar sein. Darum habe ich noch eine 5V1 Z-Diode auf der 
Versorgung des Controllers. Und damit die im schlimmsten Fall nicht 
direkt gebrutzelt wird, der Widerstand. Aber eine Spule hätte ja den 
gleichen Effekt.

Ich werde jetzt mal mit Kondensatoren und Spulen experimentieren und 
über das Ergebnis berichten.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Bernd schrieb:
> Ich werde jetzt mal mit Kondensatoren und Spulen experimentieren und
> über das Ergebnis berichten.

Wenn deine Schaltung mit stabilen 3,3V funktionieren würde, kannst du 
dir den Einsatz eines Lowdrop Reglers mal überlegen, und den anstelle 
des Widerstandes einsetzen. Am besten machst du davor noch einen dicken 
Elko als Puffer.

von Bernd (Gast)


Lesenswert?

Es war gar nicht die Versorgungsspannung! Meine Versorgung kommuniziert 
gleichzeitig über I2C mit meinem Controller und scheinbar ist der Bus 
der Schuldige. Sobald SCL und SDA getrennt sind, funktioniert die 
Spannungsmessung. SDA scheint den größeren Einfluss zu haben.

Meine Befürchtung ist nun, dass es sich um EMV handelt. Meine zu 
messende Spannung ist nämlich äußerst empfindlich. Sie wird über einen 
Spannungsteiler im Megaohm-Bereich erzeugt. Am Controller ist dann noch 
ein 1nF Kondensator, der dann den 10pF Eingangskondensator des ADCs 
lädt. Ohne Bus funktioniert das auch ganz gut...

Zum Bestätigen der Vermutung habe ich mal mit einem Netzgerät die 
Spannung angelegt und der Bus hatte keinen Einfluss mehr. Die 
Messspannung scheint also einfach zu hochohmig eingespeist zu werden. 
Leider muss das auch so sein. Nun bin ich wieder Ratlos. :(

von Ulrich H. (lurchi)


Lesenswert?

Die Salamitaktik hat also funktioniert. Jetzt kann man so langsam ahnen 
worum es eigentlich geht, und es fehlt immer noch ein Plan.

1 nF als Pufferkondensator ist reichlich knapp: der S&H Kondensator 
dürfte so bei 10-20 pF liegen - der 1 nF Kondensator wird damit bereits 
um 1-2 % entladen. Wenn es mit 10-20 nF zu langsam wird, hilft ein 
Verstärker als Impedanzwandler.

Der Kondensator am µC sollte ggf. etwas größer werden, wenn der µC an 
Ausgängen mehr Signal treiben muss. Dann ggf. besser zusätzlich ein 10 
µF Elko zum 100 nF Kondensator.

von Bernd (Gast)


Lesenswert?

Es tut mir Leid, es ist immer etwas schwierig, alle die Relevanten 
Details zu nennen, ohne die Problematik mit zu vielen irrelevanten 
Informationen unübersichtlich zu machen.
Meine Elektronik ist mit 23mmx35mm übrigens recht kompakt und bietet 
kaum noch Platz. Weitere Komponenten, wie Impedanzwandler sind 
eigentlich nicht mehr vorstellbar. Erstmal muss ich versuchen, das 
Problem anders zu lösen. Und zu allererst muss ich die Ursache 
verstehen. Das hat noch nicht ganz geklappt. Irgendwie scheint die 
Versorgungsspannung nämlich schon einen Einfluss zu haben.

Mir ist nun etwas eigenartiges aufgefallen: Ich habe eine saubere 
Versorgungssapannung angelegt und den Bus getrennt. Wenn ich nun mit 
einem Netzteil die Messspannung direkt auf den µC Pin führe, stimmt die 
Messung unabhängig von der Versorgungsspannung.

Dann habe ich die Messspannung über den hochohmigen Spannungsteiler 
erzeugt. Dazu habe ich einen 100:1 Tastkopf auf dem µC Pin. Dieser 
verfälscht die Spannung zwar bereits etwas, aber dafür kann ich sie 
messen. Wenn ich nun die Versorgungsspannung von 5V auf 4V reduziere, 
misst der µC plötzlich eine geringere Spannung, obwohl sich die Spannung 
am Pin um nicht ein mV verändert. Eigentlich hätte ich also das gleiche 
Verhalten erwartet, wie zuvor.

Kann sich das jemand erklären?

von tim (Gast)


Lesenswert?

Also was natürlich fehlt sind schaltplan und evtl C-Code.

Den PIC habe ich noch nie programmiert, aber beim TI ist es so dass man 
als ADC Referenz verschiedene Einstellungen auswählen kann.
Und es gibt eine Einstellung die nimmt einfach die Versorgungsspg Vcc 
vom µC, und wenn man die dann verändert, anstelle von 3,3V zum Beispiel 
4V oder was auch immer noch erlaubt ist, dann ändert sich selbstredent 
der ADC Wert mit, weil er ja von seiner Referenz abhängt.

Also gerade klingt dein Problem für mich genau danach.

Und ansonsten würde ich eine Messschaltung nicht mit einem so riesigen 
Rippel betreiben wollen, gut wenns jetzt halt so funktionieren muss sei 
das dahingestellt, aber spontan würde ich da fixe 3V3 anlegen mit 
eventuell max 50mV Rippel drauf.

von Bernd (Gast)


Lesenswert?

Die Referenzspannung erzeugt sich mein Controller selbst. Aber da dort 
ja das Problem zu sein schien, habe ich mir das gerade nochmal 
durchgelesen und hatte übersehen, dass ich warten muss, bis die Spannung 
steht. Mit einer entsprechenden Wartezeit scheint das Problem gelöst zu 
sein. Hoffentlich freue ich mich nicht zu früh. Ansonsten melde ich mich 
wieder mit Schaltplan und C-Code

von Bernd (Gast)


Lesenswert?

Jetzt nutze ich nochmal diesen Thread für eine Frage. Eigentlich gibt es 
extra ein Bit, mit dem man abfragen kann, ob die Referenzspannung steht. 
Für meinen Controller, den PIC16F1823 ist dieses Bit leider immer 1. das 
minimale delay könne man aber in den Electrical Spezifications finden. 
Leider finde ich dazu einfach nichts. Ist jemand schalauer und sieht 
etwas, was ich nicht sehe? Oder kennt jemand sogar eine Methode, die FVR 
doch abzufragen?

http://akizukidenshi.com/download/pic16f1823.pdf

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.