Hallo, ich versuche erstmal zu beschreiben, was ich habe und möchte: Ein Netzteil für einen Elektrolyse-Versuch hat Monitor-Ausgänge. V_ref liegt bei 5.1V zur Gnd_a. Die beiden Monitorausgänge liegen, je nach Last, dazwischen, logisch. Spezifiziert sind diese Ausgänge mit R_o = 1.2 Ohm und Imax = 4mA. Ich möchte den Versuch "loggen", also zuerst Strom-Spannungs-Kennlinie aufnehmen oder im Betrieb wenige Messwerte pro Minute an den Kontroll-PC senden. Hochfrequente Geschichten, z.B. durch Ablösen der Gasblasen und damit veränderte Querschnittsflächen, interessieren mich erstmal nicht. Die gesuchten Signale sind eher langsam veränderlich. Die Datenerfassung möchte ich mit erstmal mit einem MCP3208 machen, das Auslesen des DAC mit einem Wemos D1 Mini. Die Datenübertragung dann per USB oder WLAN in das ultimative Datentool Excel (SCNR), Takt etwa 1x bis 60x pro Minute. Nun die Frage: Um das Signal und den DAC etwas zu Entrauschen setze ich ein RC-Glied, 1µF Elko und 2KOhm. Das ergibt ein \tau von 10ms - voll akzeptabel. Programmtechnisch wollte ich sowieso über einige 1000 samples mitteln - der Wemos langweilt sich sonst. Sollte ich auch noch einen Keramik-Kondensator vorsehen? Gibt es weitere Tipps? BTW: VEE soll Vref sein. Und bitte nicht motzen - KiCad gehört nicht zu meiner Standard-Software, bin da echter Anfänger. LG Frank Nachtrag: Natürlich bekommt Vref = VEE auch einen 2K Widerstand.
:
Bearbeitet durch User
Von welchem DAC redest du oder meinst du den ADC? Der MCP3208 ist nen ADC. Und VDD vom MCP3208 würde ich auch noch anschließen, hilft ungemein. Was genau der 2kΩ Widerstand an VREF/VEE bringen soll kann ich auch nicht nachvollziehen, braucht deine Referenzquelle eine solche Last? Kerko ist an den richtigen Stellen nie verkehrt, bekommt bei mir jeder MCP3208. Nur weil sich der Wemos langweilt würde ich aber nicht über mehrere 1000 Samples mitteln, wer nix zu tun hat kann auch schlafen ;)
Hallo, die Schaltung ist OK. Ich würde am MCP3208 wie üblich noch ein 100 nF Kerko platzieren. Natürlich so nahe wie möglich zwischen +UB und Masse. mfg Klaus
M. K. schrieb: > Von welchem DAC redest du oder meinst du den ADC? Der MCP3208 ist nen > ADC. Und VDD vom MCP3208 würde ich auch noch anschließen, hilft > ungemein. Was genau der 2kΩ Widerstand an VREF/VEE bringen soll kann ich > auch nicht nachvollziehen, braucht deine Referenzquelle eine solche > Last? Sry, mein Fehler: Natürlich ein ADC. Mit dem 2K an Vref wollte ich die Referenzspannung und die Signalspannungen gleich belasten. Vielleicht unnötig, aber so sollten Änderungen gleich sein. Und dann kommen noch 100nF Kerkos rein und Vdd=5V an Pin 16. Wenn ich 1000 Samples mittele, komme ich auf 1/100s reine Messzeit, dann vielleicht noch großzügig 5ms Rechenzeit, sind das weniger als 20ms im schlimmsten Fall pro Sekunde oder sonst pro Minute. Das ist maximal 2% Rechenlast, der Rest ist immer noch Schlafenszeit. Danke erstmal Frank
Frank M. schrieb: > Mit dem 2K an Vref wollte ich die > Referenzspannung und die Signalspannungen gleich belasten. Aber zu welchem Zweck willst du deine Referenz genauso belasten wie dein Messignal? Das ist im Grunde unnötig, im worst case kann das zu komischen Effekten führen. Würde ich mir schenken. Frank M. schrieb: > Wenn ich 1000 Samples mittele, komme ich auf 1/100s reine Messzeit, dann > vielleicht noch großzügig 5ms Rechenzeit, sind das weniger als 20ms im > schlimmsten Fall pro Sekunde oder sonst pro Minute. Das ist maximal 2% > Rechenlast, der Rest ist immer noch Schlafenszeit. Mir scheint du bist ein Freund davon Dinge zu tun, die nicht nötig sind. Dein TP mit 2k und 1u macht ja schon nen TP mit nem tau von 2ms. Ob du da jetzt ein Sample oder eintausend einsammelst bei 100kHz Abtastrate macht keinen praktischen Unterschied, nur dein Code wird unnötig länger. Ich bin ne faule Socke und würde mir das sparen. ;)
Frank M. schrieb: > Mit dem 2K an Vref wollte ich die Referenzspannung > und die Signalspannungen gleich belasten. Die Leute kommen an Orten wie diese auf merkwürdige und absurde Ideen – die Beschaltung an VRef eines ADCs sollte möglichst kurz und komplett so nah wie möglich am IC liegen, also normalerweise alles (incl. Ref-IC) maximal ein paar Zentimeter vom ADC oder vom DAC entfernt sein. Lange Zuleitungen (hier geht es mit VRef auf mysteriöse Weise noch irgendwo an einen SUB-D-Stecker oder -buchse oder was auch immer das sein soll) oder irgendwelche Widerstände dazwischen machen dann alles schön „kaputt”, was man in puncto „genaue und brauchbare Messergebnisse” haben und deswegen z.B. einen externen AD- oder DA-Wandler überhaupt erst einsetzen wollte. Schon mal ins Datenblatt des Chips geschaut und wenigstens sich das Applikationsbeispiel angeschaut? Das von mir rot markierte ist genau die empfindlichste Stelle eines ADCs oder DACs – und wo man kurze Wege auf der Platine haben, niederohmig und mit Abblockkondensatoren arbeiten sollte (von denen gibt es übrigens auch welche an anderen wichtigen Stellen reichlich, wie man unschwer erkennen kann). Dadrunter im Datenblatt sind noch weitere Infos bezüglich des Layouts etc. Wenn man das erste aber schon grob missachtet, dürfte das zweite, also das Entwerfen eines richtigen, passenden Layouts, dann quasi eh egal sein. Und mit Leitungen über 50cm, z.B. 1-2m, als VRef oder die an VRef zusätzlich angeschlossen sind, wird man schöne Antennen und viel Spaß haben – „viel Erfolg”. Vielleicht ist deswegen auch die Idee – aus 1000 Messungen einen Mittelwert zu bilden – entstanden; nun ja, bei einem total verbockten Konstrukt wird man leider nicht alles mitteln, interpolieren oder – generell – glattbügeln können, egal wie viele es am Ende werden, aber jeder hat natürlich das Recht, es zu versuchen.
:
Bearbeitet durch User
Gregor J. schrieb: > Die Leute kommen an Orten wie diese auf merkwürdige und absurde Ideen – > die Beschaltung an VRef eines ADCs sollte möglichst kurz und komplett so > nah wie möglich am IC liegen, also normalerweise alles (incl. Ref-IC) > maximal ein paar Zentimeter vom ADC oder vom DAC entfernt sein. Lange > Zuleitungen (hier geht es mit VRef auf mysteriöse Weise noch irgendwo an > einen SUB-D-Stecker oder -buchse) oder irgendwelche Widerstände > dazwischen machen dann alles schön „kaputt”, was man in puncto „genaue > und brauchbare Messergebnisse” haben wollte und deswegen z.B. einen > externen AD- oder DA-Wandler überhaupt erst eingesetzt hat. Schon mal > ins Datenblatt des Chips geschaut und wenigstens sich das > Applikationsbeispiel angeschaut? Na klar, und auch https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ApplicationNotes/ApplicationNotes/00688b.pdf und solche Sachen habe ich gelesen. WARUM nehme ich ein "dubioses" Signal von einem SUB-D-Stecker? Die Antwort steht im ersten Beitrag. Das verwendete Netzteil liefert eine Referenzspannung von 5.1V. In Bezug auf genau diese Referenz - nein, keine per externe Referenzspannungsquelle erzeugte - wird die Ausgabe des Stroms und der Spannung, beides die Größen die ich loggen möchte, bezogen. Also 25A= 50% des maximalen Stroms, sind 5.1V*50% = 2,55V. Ändern sich die 5.1V vom Gerät, ändern sich auch die "Monitor"-Spannungen entsprechend. Aber das Verhältnis bleibt gleich! Also warum sollte ich eine andere Referenz verwenden?! Und der Ausgabe-Port am Gerät ist ein - rate mal - 15 pol Sub-D!!!! Hab ich nicht da dran gebaut, muss ich aber nutzen. Ok, ob der 2K stört oder hilft: Ok - Versuch macht klug. Das kann das Messgerät auf dem Schreibtisch bestimmt beantworten, wenn das Ganze vom Steckbrett (zum Code testen!) runter ist. Wo wir beim Code sind: Ob vier bis sechs Zeilen Code zusätzlich einbaue oder nicht, stört kein Skript. Die Anwendung ist alles andere als zeitkritisch. Ja, der Punkt mit dem \tau von 2ms stimmt, leider stehen im Netzteil-Handbuch keine Angaben zur Grenzfrequenz der Ausgänge. Und ich kann die Signal-Änderung durch Blubbern der Glasblasen an den Elektroden als AC-Anteil der durchkommt nicht abschätzen. Daher der Ansatz des Mittelwertes. Normalerweise nimmt man da rotierende Elektroden oder andere Techniken, die hier leider nicht gehen. Ist mein absurder und merkwürdiger Ansatz jetzt etwas klarer? VG Frank
Frank M. schrieb: > Also warum sollte ich eine andere Referenz verwenden?! In meiner Textpassage ging es nicht darum, eine andere Referenzquelle oder -spannung zu verwenden, sondern darum, WIE man generell mit einer Referenzquelle an ADCs und auch DACs umgehen sollte. Und genau da ist etwas faul in Deinem Konzept.
Ok, danke für deine Antwort. Ja, kurze Leitung sind klar und Kerko, wie auch die Vorgänger geschrieben haben, kommen rein. Was soll ich deiner Meinung nach ändern? Vref kommt auf das Board, Elko und KerKo blocken AC-Anteile - genau wie gefordert. Gut den 2K sehe ich vor und werde mich bei Problemen sofort von dem verabschieden. Eine Brücke statt des Widerstands zu setzen ist leichter als einen Widerstand nachträglich reinfummeln. Das waren meine Gedanken. Ich bin offen für deine konkreten Vorschläge. VG Frank
:
Bearbeitet durch User
Frank M. schrieb: > Was soll ich deiner Meinung nach ändern? Vref kommt auf das Board, Elko > und KerKo blocken AC-Anteile - genau wie gefordert. Gut den 2K sehe ich > vor und werde mich bei Problemen sofort von dem verabschieden. Eine > Brücke statt des Widerstands zu setzen ist leichter als einen Widerstand > nachträglich reinfummeln. Das waren meine Gedanken. Ich bin offen für > deine konkreten Vorschläge. Man könnte z.B. die Referenzspannung für den A/D-Wandler von den ganzen langen Leitungen und sonstigen Störungen auf der Schiene entkoppeln und dann – trotz der ganzen Leitungen – doch noch eine kurze, ordentliche Referenzversorgung mit dem gleichen Spannungswert haben – mit einem gutgewählten Operationsverstärker als Spannungsfolger und mit einem Tiefpass am Eingang könnte man so etwas beispielsweise realisieren, ist aber schon wieder alles nicht so trivial, da kann man dann auch wieder vieles falsch machen. Ein minimalistisches R/C-Tiefpass-Filter, sofern die Stromstärke an VRef nicht allzu groß ist, könnte man stattdessen auch nehmen – den dort fließenden Strom bzw. Spannungsabfall muss man halt messen können (und auch mir dem Wert im Datenblatt vergleichen, sofern diese Angabe verfügbar) und anhand der Messungen unter realen Bedingungen es dann ausprobieren. Was Du jetzt machst oder versuchst zu machen, ist die Wirkung bzw. Auswirkungen Deines schlechten Designs zu bekämpfen, statt an der Ursache anzusetzen und dort erstmal die richtigen Schrauben zu nehmen sie auch richtig zu drehen, aber vielleicht ist die Genauigkeit der Messungen fürs „Loggen der Werte” nur sekundär von Bedeutung und man könnte sich mit – in einem gewissen Bereich – hin und her wandernden Werten begnügen, wer weiß das schon.
:
Bearbeitet durch User
Gregor J. schrieb: > Ein minimalistisches R/C-Tiefpass-Filter, sofern > die Stromstärke an VRef nicht allzu groß ist, könnte man stattdessen > auch nehmen – den dort fließenden Strom bzw. Spannungsabfall muss man > halt messen können (und auch mir dem Wert im Datenblatt vergleichen, > sofern diese Angabe verfügbar) und anhand der Messungen unter realen > Bedingungen es dann ausprobieren. Ok, der maximale Strom am Pin ist mit 4mA und die Quelle mit R_o = 1.2Ohm spezifiziert, siehe ersten Post. Der rot eingekreiste Teil ist doch ein minimalistischer RC-Filter an Vref, oder? VG Frank
Frank M. schrieb: > Ok, der maximale Strom am Pin ist mit 4mA und die Quelle mit R_o = > 1.2Ohm spezifiziert, siehe ersten Post. Der rot eingekreiste Teil ist > doch ein minimalistischer RC-Filter an Vref, oder? NEIN, und bei so einer Vorgehensweise und was Du da sonst noch versuchst würde ich sagen – lieber bei Deinen 1000 Messungen pro Messung bleiben und „habe fertig”. Übrigens, 1000 Messungen zu nehmen spricht für sich und ist eigentlich ein Indiz für ein schlechtes Design – plausibel und unauffällig wäre es, wenn Du z.B. 10 bis 30 bräuchtest, um ein wenig alles noch zu filtern oder zu glätten.
:
Bearbeitet durch User
Frank M. schrieb: > Wenn ich 1000 Samples mittele (...) Vielleicht noch etwas aus programmtechnischer Sicht. Wenn man schon 1000 Messungen macht, dann kann man für die Anzahl auch gleich eine Zahl aus den Zweierpotenzen nehmen, also z.B. 1024, weil das als Zweierpotenz dann einem die Division des Aufsummierten erspart bzw. erleichtert und man diese durch eine einfache Bitverschiebung bei Integerzahlen realisieren kann – hier nimmt man in der Regel für alle Operanden Integerzahlen statt der üblichen Fließkommazahlengeschichte, damit diese Berechnungen schneller erledigt werden können – viele der moderneren µC haben einen Barrel-Shifter, so dass fast alle Vorgänge und Rechenoperationen diesbezüglich wirklich nur 1-2 Takte der CPU im µC dauern. Die meisten Arduinojünger rechnen aber solche Berechnungen natürlich ahnungslos mit und in „Float” aus, weil ihr „Guru” aus dem Internet, dem sie ja so gerne folgen, es ihnen so vorgemacht hat; oder sie machen es einfach, weil andere es auch so machen oder weil sie den Vorteil der Integerzahlenarithmetik gar nicht kennengelernt haben und somit in ihren Anwendungen auch nicht nutzen können. Bei den heutigen RISC-Kernen geht das aber bei der üblichen 16MHz-Arduinotaktfrequenz meistens alles auch gut aus, den Rechenaufwand, den der Prozessor macht, merken sie bei zeitunkritischen Projekten gar nicht. Und wenn man schon so ein „Oversampling” betreibt, kann man auch leicht aus einem 12-Bit-A/D-Wandler einen 14- oder 16-Bit-ADC machen, obwohl der Chip selbst weiter nur ein 12-Bit-Wandler bleibt, und hätte gleich schöne hochauflösende 16-Bit Werte, sofern das mit seinem Linearitätsfehler oder sonstigen Offsetfehlern noch vereinbar ist bzw. Sinn macht, denn unendlich die Auflösung zu verdoppeln geht natürlich nicht, in einem gewissen, realistischen Rahmen bekommt man aber durchaus noch sehr gute und brauchbare Ergebnisse. Dazu müsste man aber das Design des Wandlers schon gut gemacht haben, weil das einem sonst wieder einen Strich durch die Rechnung macht. Manchmal führt man sogar ein definiertes und selbsterzeugtes Störsignal an VRef des A/D-Wandlers absichtlich ein, um die Interpolation der Werte zu optimieren. Der Code-Aufwand ist relativ gering, ein bis zwei Zeilen C-Code reichen aus, um aus den 12-Bit-Werten am Ende dann die 13-, 14- oder gar 16-Bit-Werte zu machen.
:
Bearbeitet durch User
Hallo, komisch - ich wollte auch schon 1024 und 2048 samples programmieren - allerdings um mit der Fouriertransformation mir das Rauschspektrum anzuschauen :-) Auch werde ich, wenn die Schaltung mal fertig ist, probeweise von 10samples bis 2048 samples die Variation anschauen. Ein Histogramm Variation über Samplezahl - schnell programmiert und vermutlich hilfreich zur Bewertung des Ergebnisses. Ja, an Oversampling dachte auch auch schon mal. Eine kurze Überschlagsrechnung dazu: Das Netzteil macht maximal 15V - das sind 4mV pro Step. Der Arbeitspunkt wird aufgrund der Chemie hoffentlich bei 4V bis 5V liegen, dann ist das ein Promille Auflösung oder aufgrund von Murks lass es 0,3% sein. Bei 2K Temperaturänderung erwarte ich auch eine Änderung von 0,5%. Dazu kommt das Blubbern der Gasblasen an der Elektrode. Daher habe ich beschlossen, dass 12Bit Auflösung reichen sollten. Auch gilt Oversampling meines Wissens nur für "ordentlich" normalverteilte Signale, das sehe ich dann ja in der Datenanalyse. Deine Hinweise zur Kabellänge habe ich ernst genommen. Am Stecker komme ich nicht vorbei, aber ich bleibe möglichst dicht am Gerät und versuche möglichst keine EM-Signale einzufangen. Die Digitalleitung wird dann die lange Leitung, damit der Laptop nicht neben der Chemie steht. LG Frank
Frank M. schrieb: > Ok, der maximale Strom am Pin ist mit 4mA und die Quelle mit R_o = > 1.2Ohm spezifiziert, siehe ersten Post. Der rot eingekreiste Teil ist > doch ein minimalistischer RC-Filter an Vref, oder? Es ging mir um den Strom, der in den VRef-Pin (15) des ICs hineinfließt, und der ist laut Datenblatt mit 100-150µA spezifiziert – genau das müsste man auch überprüfen, wie groß der dann auch tatsächlich ist. Dein "minimalistischer Filter" ist immer noch an der falschen Stelle (er soll vor dem Pin 15 sitzen und nur für diesen sein) und mit Deinen 2kΩ mit 4mA, sofern sie durch diesen Widerstand fließen sollten, wird das zu einer Milchmädchenrechnung – einfach mal im Kopf oder mit Taschenrechner ausrechen, wie groß der Spannungsabfall dann an diesem Widerstand bei 4mA ist, dann sieht man den Denkfehler. Auch bei 1mA oder gar 100µA wäre das immer noch viel zu viel und demenstsprechend überhaupt nicht akzeptabel. Da der VRef-Strom (angeblich laut Datenblatt) ca. 100-150µA beträgt, muss der Widerstandswert eines solchen R/C-Filters sehr niedrig ausgelegt sein, damit der dadurch entstehende Fehler in der Referenzspannung möglichst klein und akzeptabel bleibt – z.B. 4,7-10 Ω kombiniert mit einem 1-10µF (Keramik)Kondensator. Der Spannungsabfall und Unterschied der Referenzspannung zum Rest würde dann irgendwo zwischen 0,47mV bis 1,5mV liegen, was noch zu verschmerzen wäre, man könnte aber noch einen kleineren Widerstandswert nehmen oder sogar versuchen, das R/C- durch ein L/C-Filter zu ersetzen, z.B. mit 10µH und 100nF, wie man es bei den ATMEGAs für AVCC macht. Man muss aber alles testen wie sich das auswirkt und verhält; und vor allem – ob es überhaupt den gewünschten Effekt bringt, denn es kann sein, dass noch woanders alles so verrauscht, antennenartig gebaut oder am rippeln ist, dass das alles unterm Strich dann sehr wenig bringt oder so ein Filter selbst zum Schwingen neigt und den Messfehler nur noch vergrößert. Als Lösungs- bzw. Verbesserungsansatz könnte auch ein Kabel mit einzeln abgeschirmten Adern dienen – man kann das mit den anderen Ansätzen kombinieren, um das Optimum in so einer Situation zu suchen. Die Arbeit nimmt Dir aber keiner ab – für faule Leute und sonstige Theoretiker am Schreibtisch – oder die sonst so im Internet unterwegs sind – ist das nichts, die werden hier nur labern und sich weiter alles schön im Kopf vorstellen, aber de facto überhaupt nicht weiterkommen. Man muss schon was dafür real auf dem Arbeitstisch tun, vor allem viele Versuche, Tests und Messungen durchführen. Dabei am besten auch irgendwie geordnet und systematisch vorgehen (also nicht planlos irgendwas messen), sich das, was man da macht, auch gut notieren/dokumentieren, um währenddessen und auch später mal darauf zugreifen zu können. Ein Versuchsaufbau auf einem Steckbrett ist übrigens die schlechteste Wahl in so einem Fall – eine Liebesmüh oder einfach Zeitverschwendung.
:
Bearbeitet durch User
Gregor J. schrieb: > Ein Versuchsaufbau auf einem > Steckbrett ist übrigens die schlechteste Wahl in so einem Fall – eine > Liebesmüh oder einfach Zeitverschwendung. Hallo, das unterschreibe ich Dir sofort und uneingeschränkt! Das Steckbrett nehme ich um den Code zu testen - das käme nie an einen echten Aufbau. Als abschreckendes Beispiel habe ich den Probelauf mit einer gelbgrünen LED auf Steckbrett angehängt. Wie gesagt: Programmtest! Wenn die LED geht, geht auch eine Elektrolysezelle. Fazit: Das Programm macht was es soll, eine Durchlassspannung oder so würde ich nicht berechnen. Den Rest arbeite ich heute in Ruhe durch! LG Frank
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.