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
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.
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.
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.
> 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!
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.
>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
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.
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.
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.
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.
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. :(
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.
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?
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.
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
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