Forum: Mikrocontroller und Digitale Elektronik PCF8591 Spannungsmessung


von Johannes R. (bruzzzler)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Ich möchte auf einem Board die anliegende Spannung mittels PCF8591 
messen. Hierzu habe ich eine Schaltung wie auf dem angehängten Bild zu 
sehen ist aufgebaut.

Wenn ich mit jetzt die Werte ausgeben lasse, sind diese komplett wirr. 
Die werte ändern sich +/- 3-4 V, obwohl die angelegte Spannung gleich 
ist. Ich vermute ein Fehler in der Schaltung.

Spannungsteiler ist R1 = 30K und R2 = 7,5K
3,3V sind stabil.

Leider bin ich kein Experte. Ich hoffe Ihr könnt mir helfen.

Grüße

Johannes

: Bearbeitet durch User
von F. M. (foxmulder)


Lesenswert?

SCA und SCL brauchen je einen PullUP, keinen Pulldown.

von Adressman (Gast)


Lesenswert?

A0 ... A2 sauber beschalten? (H oder L)

von Mikizwei (Gast)


Lesenswert?

Johannes R. schrieb:
> Ich möchte auf einem Board die anliegende Spannung mittels PCF8591
> messen. Hierzu habe ich eine Schaltung wie auf dem angehängten Bild zu
> sehen ist aufgebaut.

Warum wurde VSS offen gelassen? Das ist der Ground!
Gibt es ein Abblock C an VDD ?

von Mikizwei (Gast)


Lesenswert?

F. M. schrieb:
> SCA und SCL brauchen je einen PullUP, keinen Pulldown.

Adressman schrieb:
> A0 ... A2 sauber beschalten? (H oder L)

Eigentlich alles Falsch gemacht.

von FPGA NOTFALLSEELSORGE (Gast)


Lesenswert?

https://www.nxp.com/docs/en/data-sheet/PCF8591.pdf

Mikizwei schrieb:
> Eigentlich alles Falsch gemacht.

Fängt schon beim Screenshot an.

Pin EXP muss auch an VSS (oder GND).

von Mikizwei (Gast)


Lesenswert?

Johannes R. schrieb:
> Leider bin ich kein Experte.

Das ist auch nicht das Problem.
Das Problem ist, Du hast dir noch nicht einmal das Datenblatt 
angeschaut.
Dort gibt es auch Applications Notes, dann wären auch die
Grundsätzlichen Schaltungsfehler nicht zu Stande gekommen.

Johannes R. schrieb:
> Ich hoffe Ihr könnt mir helfen.

Das Datenblatt lesen hilft dir sicher weiter.

von Stefan F. (Gast)


Lesenswert?

Herr Doktor, ich habe einen Screenshot gemacht.
Und?
Jetzt ist ein Loch drin und meine Kollegin vom Platz gegenüber tot.
Dumm gelaufen.

Beitrag #7101242 wurde vom Autor gelöscht.
von Johannes R. (bruzzzler)


Angehängte Dateien:

Lesenswert?

Vielen Dank für eure konstruktive Kritik. Ja auf vieles hätte ich selber 
drauf kommen müssen. Das war nicht korrekt von mir. Sorry.

Ich habe eure Anmerkungen aufgegriffen und neu gezeichnet. Wie ist das 
mit dem digitalen udn dem analog Ground im Datenblatt. Ich habe auf 
meinem Board nur "einen" Ground.

Und müssen die nicht benötigten AIN0/1/3 an GND bzw. warum?

Grüße

Johannes

von Stefan F. (Gast)


Lesenswert?

Johannes R. schrieb:
> Ich habe auf meinem Board nur "einen" Ground.

Dann verbinde beide damit. Zu den Vorteilen optimaler GND Führung wurden 
ganze Bücher geschrieben, das hier im Details auszuklamüsern würde den 
Rahmen hier sprengen.

> Und müssen die nicht benötigten AIN0/1/3 an GND bzw. warum?

Unbenutzte Eingänge sollen eine definierte gültige Spannung haben, weil 
sie sonst als hochempfindliche Antennen wirken die alles mögliche 
empfangen, nur nicht das was du willst. Bei hohen Frequenzen kommt es 
auch rasch zu unerwünschten Wechselwirkungen zwischen den ungenutzten 
und den genutzten Eingängen.

von Joachim B. (jar)


Lesenswert?

Johannes R. schrieb:
> Wie ist das
> mit dem digitalen udn dem analog Ground im Datenblatt. Ich habe auf
> meinem Board nur "einen" Ground.

man sollte analog GND und digital GND solange wie möglich getrennt 
führen und möglichst nur an eine Stelle verbinden. In Leiterplatten wird 
gerne von GND Bauteil 1 zu GND Bauteil 2 usw. geroutet und so summieren 
sich die Störungen digitaler Natur und kommen auch zum analog GND.

Also besser analog GND mit einer Leitung zum digital GND führen.
An dieser einen Leitung analog GND hängt wirklich nichts anderes an 
analog GND vom IC dran.

Ferner könnte man die REF an VCC auch noch filtern vom "digitalSchmutz" 
entkoppeln.

ACHTUNG die hier gezeigte +5V ist natürlich deine +3,3V VCC
https://i.stack.imgur.com/Jum5z.png

Johannes R. schrieb:
> Und müssen die nicht benötigten AIN0/1/3 an GND bzw. warum?

offene Leitungen (Radio Antennen Prinzip, Eingang hochohmig, uvam) 
fangen Störungen ein, wer will das? (mit sehr kurzer Leiterbahn an GND 
ist zumindest ruhiger, weil GND fast 0V entspricht)

von Johannes R. (bruzzzler)


Lesenswert?

Joachim B. schrieb:
> Also besser analog GND mit einer Leitung zum digital GND führen.
> An dieser einen Leitung analog GND hängt wirklich nichts anderes an
> analog GND vom IC dran.
>
> Ferner könnte man die REF an VCC auch noch filtern vom "digitalSchmutz"
> entkoppeln.
>
> ACHTUNG die hier gezeigte +5V ist natürlich deine +3,3V VCC
> https://i.stack.imgur.com/Jum5z.png

Das mit der einen Leitung werde ich beherzigen.

Ich habe gerade einmal nach einer passenden Spule gesucht. Würde diese 
mit 10uH und 4ohm passen?

https://www.reichelt.de/smd-power-induktivitaet-1206-ferrit-10-h-fas-1206f-100k-0-p245684.html?&trstct=pol_4&nbc=1

Grüße

Johannes

von Stefan F. (Gast)


Lesenswert?

Johannes R. schrieb:
> Ich habe gerade einmal nach einer passenden Spule gesucht. Würde diese
> mit 10uH und 4ohm passen?

Wie viel Ohm die hat ist völlig egal. Da fließt nur sehr wenig Strom.

Beitrag #7101297 wurde vom Autor gelöscht.
Beitrag #7101300 wurde vom Autor gelöscht.
von Johannes R. (bruzzzler)


Angehängte Dateien:

Lesenswert?

So sollte es jetzt passen oder?

Grüße

Johannes

von Stefan F. (Gast)


Lesenswert?

Johannes R. schrieb:
> So sollte es jetzt passen oder?

Ja. Schreibe an R3 und R4 die Werte dran.

von N. M. (mani)


Lesenswert?

Evtl noch einen Kondensator parallel zu R2 vorsehen. Ob du ihn dann 
bestückst oder nicht kannst du dann auch später entscheiden.

Ich persönlich würde die nicht verwendeten ADC Eingänge mit jeweils 
separatem RC Tiefpass versehen und auf eine Klemme oder Testpunkt 
führen. Dann kannst du sie, so wie jetzt, auf GND ziehen. Aber wenn du 
sie doch brauchst auch einfach umbestucken und verwenden.

von Joachim B. (jar)


Lesenswert?

N. M. schrieb:
> Ich persönlich würde die nicht verwendeten ADC Eingänge mit jeweils
> separatem RC Tiefpass versehen und auf eine Klemme oder Testpunkt
> führen.

also in Reihe einen 0 Ohm bestücken, kann auch noch ein Stück Leiterbahn 
sein, aber die kann dann später unterbrochen werden und man hat gleich 
einen Stützpunkt als THT Loch oder SMD Pad um weitere Signale 
einzukoppeln.

von Johannes R. (bruzzzler)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe es gestern noch getestet. Zwar aktuell ohne L1 aber hat 
trotzdem wunderbar funktioniert.

Vielen Dank für die Hilfe.

Mit dem Tiefpassfilter komme ich allerdings nicht klar. Da ich ja diese 
ja noch nicht verwende, habe ich ja auch keine Werte mit denen ich den R 
und C berechnen kann oder?

Es ist aber auch äußerst unwahrscheinlich, dass ich die Eingänge AIN 
noch nutzen werde.

Grüße

Johannes

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Johannes R. schrieb:
> Mit dem Tiefpassfilter komme ich allerdings nicht klar. Da ich ja diese
> ja noch nicht verwende, habe ich ja auch keine Werte mit denen ich den R
> und C berechnen kann oder?

Genau berechnen kann ich das auch nicht, aber über den Daumen peilen.

Der ADC enthält einen Sample&Hold Kondensator mit ungefähr 10pF.

Wenn dein Spannungsteiler unendlich hochohmig wäre, dein 
Stützkondensator 10pF hätte und sonst keine anderen parasitären 
Kapazitäten existieren würden und keine sonstigen Verluste, dann würde 
jede Messung die Spannung am externen Kondensator um etwa 50% einbrechen 
lassen.

Weil: Bei der Messung ist die Energiequelle dein externer 10pF 
Kondensator, dessen Energie in den internen 10pF Kondensator umgeladen 
wird. Nach dem Umladevorgang sind beide nur halb voll.

Das sind aber zu viele "wenn" um  daraus eine real anwendbare Formel 
abzuleiten. Letztendlich willst du eine ausreichend genau Messung 
ermöglichen. Dein ADC kann 256 Stufen messen, also sollte die Spannung 
erheblich weniger als 1/256 einsacken. Entsprechend muss der Kondensator 
größer dimensioniert werden. So kommt man dann grob geschätzt auf den 
Bedarf von 10.000pF. Legen wir noch großzügig was oben drauf, dann sind 
wir bei deinen 100nF.

Alles klar?

So eine Schaltung macht aber nur Sinn, wenn der Kondensator zwischen den 
Messungen wieder voll aufgeladen wird. Je größer er ist und je 
hochohmiger R1, umso länger dauert das. In deinem Fall (wieder nur ganz 
grob über den Daumen gepeilt 5∙R1∙C) sind das 15 Millisekunden.

Das ganze hängt sehr stark davon ab, wie genau deines Messungen werden 
sollen und welche parasitären Kapazitäten und Widerstände in deiner 
Schaltung stecken. Wenn du die Grenzen ausreizen willst, bleibt dir wohl 
kaum etwas anderes übrig, als Experimente zu machen und die Ergebnisse 
zum protokollieren.

von Noch ein Gast (Gast)


Lesenswert?

PCF8591 mit 3,3V? Dachte immer diese ICs laufen nur mit 5V.

von Stefan F. (Gast)


Lesenswert?

Noch ein Gast schrieb:
> PCF8591 mit 3,3V? Dachte immer diese ICs laufen nur mit 5V.

Du verwechselt das damit, dass mehr als 3,3V Signalpegel brauchen, wenn 
mit 5V versorgt.

von Wolfgang (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wenn dein Spannungsteiler unendlich hochohmig wäre, dein
> Stützkondensator 10pF hätte und sonst keine anderen parasitären
> Kapazitäten existieren würden und keine sonstigen Verluste, dann würde
> jede Messung die Spannung am externen Kondensator um etwa 50% einbrechen
> lassen.

Das würde voraussetzen, dass der interne Kondensator vor der Messung 
entladen ist.

von Wolfgang (Gast)


Lesenswert?

Noch ein Gast schrieb:
> PCF8591 mit 3,3V? Dachte immer diese ICs laufen nur mit 5V.

Hier ist Denken nicht gefragt.
Guckst du Datenblatt PCF8591 auf S.17 im Abschnitt 14. 
"Characteristics".
Und was liest du dort bei VDD?
VDD supply voltage min 2.5, max 6.0 V

von Stefan F. (Gast)


Lesenswert?

Wolfgang schrieb:
> Das würde voraussetzen, dass der interne Kondensator vor der Messung
> entladen ist.

Ja, man rechnet üblicherweise mit dem worst case. Das die Aussage für 
eine präzise Rechnung zu viele "wenn" enthält, darauf habe ich ja 
hingewiesen.

von Wolfgang (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ja, man rechnet üblicherweise mit dem worst case.

Schon deine Annahme, dass der Spannungsteiler unendlich hochohmig ist, 
ist unrealistisch "worst case".
Außerdem handelt es sich hinter dem Multiplexer um einen Track & Hold 
Stufe, d.h. nach der Kanalumschaltung hat der interne Kondensator 
relativ viel Zeit, sich umzuladen, wenn man nicht ausgerechnet mit 
Maximalfrequenz zwischen maximal verschiedenen Eingangssignalen 
umschaltet.

von Stefan F. (Gast)


Lesenswert?

Ja Wolfgang. Sei doch bitte so nett und rechne dem Johannes vor, wie er 
seinen Kondensator optimal auslegt. Davon können wir alle mehr lernen, 
als von "ja aber" Beiträgen.

von Johannes R. (bruzzzler)


Lesenswert?

Aber ist der Tiefpassfilter den wirklich notwendig oder „nur“ besser? 
Aktuell läuft es mit akzeptabler Genauigkeit. Mir geht es ja lediglich 
darum den Ladezustand meiner 12V Batterie zu wissen.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Johannes R. schrieb:
> Aber ist der Tiefpassfilter den wirklich notwendig.

Nur wenn es dir ohne den Filter nicht gut genug läuft

von Wolfgang (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Sei doch bitte so nett und rechne dem Johannes vor, wie er
> seinen Kondensator optimal auslegt.

Ich kenne die Störungen in seiner Umgebung nicht, die der Analogeingang 
sich einfangen könnte. Das Signal muss nicht glatter sein, als es die 
Auflösung des ADC erfordert. Und "optimal" ist immer eine Frage der 
genauen Kriterien.

Solange nur die Spannung von der Batterie gemessen werden soll, d.h. 
keine Kanalumschaltung stattfindet, ist ein 100nF Kondensator schon mal 
ein guter Ansatz. Die ungenutzten Kanäle kann man sicherheitshalber auch 
auf AIN2 legen, damit von da keine Potentiale verschleppt werden können. 
Der Wandler hat sowieso nur 8 Bit, d.h. so kritisch ist das alles nicht.

von Stefan F. (Gast)


Lesenswert?

Wolfgang schrieb:
> ist ein 100nF Kondensator schon mal ein guter Ansatz
> ...  so kritisch ist das alles nicht.

Ach, was du nicht sagst!

von Johannes R. (bruzzzler)


Lesenswert?

Den Kondensator habe ich ja drinnen.

von Joachim B. (jar)


Lesenswert?

Wolfgang schrieb:
> Hier ist Denken nicht gefragt.
> Guckst du Datenblatt PCF8591 auf S.17 im Abschnitt 14.
> "Characteristics".
> Und was liest du dort bei VDD?
> VDD supply voltage min 2.5, max 6.0 V

genau, habs auch gerade rausgesucht!

Operating supply voltage 2.5 V to 6.0 V

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.