Hallo, ich möchte die 24V Versorgungsspannung des Gerätes mit einer MCU messen. Habe daher einen Spannungsteiler mit 2K2 und 100 Ohm aufgebaut. Theoretisch müsste hier die 24V auf: 24V * (100R / 2300R) = 1,04V sein. Aber ich messe nur etwa 150 mV mit dem Multimeter. Wenn ich den ADC Pin abklemme, dann passt die Spannung. Kann der Eingang eines ADC-Pin des PIC32MZ wirklich so niederohmig sein ?
:
Bearbeitet durch User
Dirk F. schrieb: > Kann der Eingang eines ADC-Pin des PIC32MZ wirklich so niederohmig sein > ? Wohl kaum. Es se denn, der Pin ist als Ausgang konfiguriert und auf Low. Oder er ist kaputt. Oder er hat einen Latch-Up, weil du (wegen AC) eine Spannung außerhalb des erlaubten Bereiches angelegt hast.
Steve van de Grens schrieb: > ... > Wohl kaum. Es se denn, der Pin ist als Ausgang konfiguriert und auf Low. > > ... Wollte ich auch gerade ergänzen. 150mV klingt nach Klemmspannung auf LOW.
Eher nicht. Der ADC kann einen Strom ziehen wenn zu sampelst, der ist max. etwas I=fs*Cp*Vref. Cp steht im Datenblatt (pF), fs ist die Samplefrequenz, VREF deine Referenz (im Zweifelsfall 3V3). Also nein, viel Strom fließt da eher nicht. Warum machst du den Spannungsteiler so niederohmig? Das ist nicht nötig. Man kann ihn 10x so groß machen und dafür die Aquisition Time auf ein paar µs hochdrehen. Oder 10nF parallel zum Pin schalten. Meine Vermutung wäre eher was in folgende Richtung: Lötfehler, z.B: Kurzschluss auf benachbarten Pin. Pin wird im Code auf LOW getrieben. Irgendwo, Möglichkeiten gibts viele. Pin kaputt und hat Short gegen GND (kann man leicht durchpiepen). So als Hinweis: Dir ist klar, dass der Spannungsteiler dem PIC eien Strom in die Versorgung ist drückt, wenn dessen Versorgung ausgeschaltet ist, die 24V aber da sind? ESD Schutzbeschaltung. µC-Pins mögen eigentlich keine Spannung, wenn die Versorgung nicht da ist. 10mA werden ihn vermutlich nicht töten, gut ist das aber nicht. Auch da hilft etwas mehr kOhm.
Zu hochohmig ist nicht gut. Über 10k auf keinen Fall, eher so in Richtung 5k. Ein ADC kann sehr schnell unter 3..4k Eingangsimpedanz bekommen, jenachdem wie man den betreibt. Manche sind auch schon "broken by design" und haben selbst aus 3k5Ohm... Alles schon gesehen. Netter Aha-Effekt aus dem Hause Renesas. MC leistete sich in der Vergangenheit eigentlich wenige solche Schnitzer.
Das Verhältnis des Spannungsteiler +1 bestimmt doch die Spannung. z.B. 1 : 1 = 1 + 1 = 2 24V : 2 = 12V 2200 : 100 = 22 + 1 = 23 24 / 23 = 1,04V genau so wie du schreibst Wenn aber dein ADC 5V erlaubt dann würde ich das ausnutzen und ein Teilerverhältnis von 5,x benutzen. Und um den Eingangspin etwas zu schützen würde ich R1 schon auf mind. 10k setzen und noch einen 100nF Kerko gegen Masse schalten, der mal einen Impuls ausreichend belasten kann.
ArnoNym schrieb: > Dir ist klar, dass der Spannungsteiler dem PIC eien Strom in die > Versorgung ist drückt, wenn dessen Versorgung ausgeschaltet ist, die 24V > aber da sind? Aus den 24V werden die 3,3V Versorgung erzeugt. Also ist beim Ausschalten zuert die 24V weg. Hmmmm, aber beim Einschalten ist zuerst die 24 V da.....Latch up ??? Habe noch zusätzlich einen 100nF und eine 1N4148 parallel an den Eingang geschaltet.
Roland E. schrieb: > Zu hochohmig ist nicht gut. Über 10k auf keinen Fall ... Da bin ich auf die Begründung gespannt. Die Ladung für Mux und ADC kann auch aus einem Kondensator kommen. Roland E. schrieb: > ... eher so in Richtung 5k. Nicht jede ESD-Schutzdiode am Eingang eines µC ist auf Dauerstrom von mehreren mA ausgelegt.
Rainer W. schrieb: > Roland E. schrieb: >> Zu hochohmig ist nicht gut. Über 10k auf keinen Fall ... > > Da bin ich auf die Begründung gespannt. > Die Ladung für Mux und ADC kann auch aus einem Kondensator kommen. Die gibt es für 10k vermutlich nicht. Der Kollege hat wieder mit dem Bauch und Bauernregeln, nicht mit Fakten argumentiert. Ein SAR-ADC lädt einen Samplekondensator und misst denn dann. So ungefähr zumindest. Über den Ersatzinnenwiderstand Spannungsteiler muss also im ADC der Samplekondensator geladen werden. Das ist folgender Widerstand: Re=Ro||Ru (Parallelschaltung der Widerstände im Spannungsteiler). Der Wert der Samplekapazität steht im Datenblatt des PIC. Die Zeit, die zum Laden des Samplekondensators zur Verfügung steht, ist tacq (Aquisition Time), die im Code einstellbar ist. Man kann den Fehler für verschiedene tacq berechnen über die Ladekurve des Kondensators: https://de.wikipedia.org/wiki/RC-Glied Aber der Einfachheit halber kann man einfach 6 Tau nehmen. Beispiel: Spannungsteiler: 230kOhm auf 10kOhm Cs=10pF (Echten Wert bitte aus dem Datenblatt holen!) Re=9,58kOhm Tau=9,58k*10pF=95,8ns. --> tacq>600ns. Was auf alle Fälle möglich sein sollte. Außerdem muss man die Leckströme der Pins im Auge behalten, aber die sind meist <<1µA und stehen im Datenblatt. Oder die entsprechenden Gleichungen zur Ladekurve aus Wikipedia so umstellen, dass man eine aquisition Time für einen geforderten max. Fehler erhält (z.B. 1LSB, 3LSB...). Die andere Strategie ist, einen Kondensator zum Pin parallel zu schalten. Wie groß der sein muss, kann man berechnen: Beim Laden des Samplekondensators darf die Spannung nicht weiter einbrechen, als die geforderte Genauigkeit zulässt. Das ist einfach zu berechnen, die Ladungen teilen sich einfach auf. Der Kondenator setzt die tacq auf quasi 0, aber man bekommt einen Fehler bei höherer Samplerate, vereinfacht: Error<=Ersatzinnenwiderstand*fsw*Samplekapazität*Vref Zusammengefasst: Ein hochohmiger Spannungsteiler reduziert die Bandbreite, nicht die Genauigkeit. Und zwar für beide Lösungen: Der Kondensator produziert einen Tiefpass und begrenzt die Samplerate, die Aquisition-Time reduziert die Samplerate. Bandbreite und Genauigkeit haben die gleiche Anforderung. Braucht man hier Bandbreite? Nein, 100Hz reichen hier locker aus, im Normalfall. Selbst kHz sind mit Spannungsteilern noch kein großes Problem. Je nach ADC halt. Verstehen ist besser als Bauernregeln. Die Sache hier ist relativ einfach zu verstehen.
Rainer W. schrieb: > Roland E. schrieb: >> Zu hochohmig ist nicht gut. Über 10k auf keinen Fall ... > > Da bin ich auf die Begründung gespannt. ... Für einen willkürlich ausgesuchten PIC32MZ gibt MC schon mal 1uA Eingangsstrom für Analogpins an. Bei 1k sind das schon 10mV Abweichung. Die dynamischen Werte hab ich gestern abend nicht rausgesucht, interessiert mich nur am Rande. Der Fehler des OP liegt wo anders. Für STM kommt man bei höheren Sampleraten schnell auf Eingangsimpedanzen von unter 5kOhm. Wie schon geschrieben hat Renesas Kontroller mit kaputten Designs im Feld, die haben 3,5kOhm statisch. Wenn die samplen wirds noch weniger... Als Faustregel für ADC Schätzeisen gilt auch hier: Nur 10% des Stromes maximal aus dem Spannungsteiler sollen in den ADC fließen. Kondensatoren davor sind kagge. Aus vielen Gründen. Ein ADC ist kein Multimeter. Das vergessen viele. Wer Megahom Eingang möchte, muss einen Ina vorschalten. > ... > Roland E. schrieb: >> ... eher so in Richtung 5k. > > Nicht jede ESD-Schutzdiode am Eingang eines µC ist auf Dauerstrom von > mehreren mA ausgelegt. Daher ja: Ins Datenblatt schauen. Im Zweifel noch eine eigene Diodenbrücke nach (Controller+) und GND davor...
:
Bearbeitet durch User
Dirk F. schrieb: > Hallo, > ich möchte die 24V Versorgungsspannung des Gerätes mit einer MCU messen. > Habe daher einen Spannungsteiler mit 2K2 und 100 Ohm aufgebaut. Verrückt. Viel zu kleine Werte. Und womöglich noch falschrum bestückt? Dirk F. schrieb: > Aber ich messe nur etwa 150 mV mit dem Multimeter. Mit viel Glück dürfte da ein Schaltungsfehler der den Strom extern ableitet dazwischen sein. Ansonsten dürfte Dein Controller längst Schaden genommen haben. Roland E. schrieb: > Kondensatoren davor sind kagge. Unsinn. Es kommt schon gewaltig auf die Anwendung an. Das bloße Messen einer Betriebsspannung ist da völlig unkritisch. Ein kleiner 100n Kondensator ist hier von Vorteil und sorgt für stabilere Messwerte.
:
Bearbeitet durch User
Roland E. schrieb: > Zu hochohmig ist nicht gut. Über 10k auf keinen Fall, eher so in > Richtung 5k. Wobei die beiden Widerstände wie in einer Parallelschaltung gerechnet werden müssen. Mit den 2,2kΩ + 100Ω hat er zur Zeit eine Quellimpedanz von weniger als 100Ω.
Hallo, ich denke der Pin der MCU ist defekt. Als Digital Ausgang arbeitet er noch richtig. Als digitaler Eingangs-Pin mit internem oder externen Pull-up messe ich immer <14 mV.
Steve van de Grens schrieb: > Roland E. schrieb: >> Zu hochohmig ist nicht gut. Über 10k auf keinen Fall, eher so in >> Richtung 5k. > > Wobei die beiden Widerstände wie in einer Parallelschaltung gerechnet > werden müssen. Mit den 2,2kΩ + 100Ω hat er zur Zeit eine Quellimpedanz > von weniger als 100Ω. Äh. Nein, hat er nicht. Zum Laden des S&H Gliedes (oder die wie auch immer geartete Eingangsschaltung des ADC) ist nur der obere Widerstand relevant. Sagt zumindest die Praxis...
Steve van de Grens schrieb: > Mit den 2,2kΩ + 100Ω hat er zur Zeit eine Quellimpedanz von weniger als > 100Ω. Korrekt. Die für die ladekurve der Adc eingangskapazität wirksame impedanz ist der AC widerstand, also R1|R2. Das wird intuitiver wenn man bedenkt, dass der Obere widerstand die Eingangskapazität ja nicht auf 24V sondern nur auf 1,x V laden muss.
OK, danke für die Hinweise. Aber wie könnte eine gute Schaltung aussehen, welche die 24V Versorgung über den ADC misst ? Auch wenn beim Einschalten die 24 V für einige Millisekunden anliegen, bevor die 3,3V an der MCU anliegen.
:
Bearbeitet durch User
Der Spannungsteiler könnte einfach etwas hochohmiger sein, 10k und 220k, 1nF paralell zum 10k als tiefpass. Selbst wenn dann dauerhaft 24V anliegen fliessen nur ein paar uA in den eingang, das ist okay.
:
Bearbeitet durch User
Danke Flip B. Werde ich am Montag am zweiten Prototypen testen.
:
Bearbeitet durch User
Das soll doch so sein, erst Spannung am µC stabil und danach soll er erst aus dem Reset kommen. Manche µC können verzögert einschalten die AVRs z.B. 64mSek. Der RC Filter am Resetpin 10K und 100nF macht auch 1mSek, das könnte man auch noch etwas mit einem 1µF Kerko erhöhen. Außerdem kann man das Programm auch so schreiben das die erste ADC Messung erst nach x Sekunden startet. Wenn man ein externes Diodennetzwerk nimmt kann man klar mit dem Serienwiderstand noch weiter runter. Die Betriebsspannung (5V/3,3V) des µC von der 24V Schiene per Diode und großer Kapazität vor dessen (5V/3,3V) Spannungsregler abgekoppeln. Dann ist sind die Änderung der Betriebsspannung eh sehr klein und man hat genug Zeit auf Änderungen der 24V Schiene zu reagieren, bzw. muss die Abtastrate gar nicht so groß sein und dann tuts auch eine hochohmigere Auslegung.
Thomas schrieb: > Manche µC können verzögert einschalten Darum geht es doch gar nicht. Wenn der uC noch keine Spannung hat, aber an einem Einganspin Spannung ist, dann fließt ein Strom über die internen Schutzdioden, welchen den uC schädigen können.
Roland E. schrieb: > Äh. Nein, hat er nicht. Zum Laden des S&H Gliedes (oder die wie auch > immer geartete Eingangsschaltung des ADC) ist nur der obere Widerstand > relevant. Die Ladung für den S&H - oder was auch immer - kann, wie gesagt, von einem Kondensator bedient werden, solange es um das Messen von quasi Gleichspannung geht. Da braucht man keine Samplerate im Bereich von MSa/s und der Widerstand muss es nur schaffen, die Spannung auf dem Kondensator aktuell zu halten - ein simpler Tiefpass eben.
Dirk F. schrieb: > Wenn der uC noch keine Spannung hat, aber an einem Einganspin Spannung > ist, dann fließt ein Strom über die internen Schutzdioden, welchen den > uC schädigen können. deswegen darf der Widerstand ja auch nicht zu klein sein um die internen Dioden zu schützen.
Flip B. schrieb: > Der Spannungsteiler könnte einfach etwas hochohmiger sein, 10k und 220k, > 1nF paralell zum 10k als tiefpass. Wozu soll man zur Messung der Versorgungsspannung eine Bandbreite von über 10kHz benötigen? Das ist wohl eher die Ausnahme. Da kann man den Kondensator gerne einen Faktor 100 größer machen.
Roland E. schrieb: > Äh. Nein, hat er nicht. Zum Laden des S&H Gliedes (oder die wie auch > immer geartete Eingangsschaltung des ADC) ist nur der obere Widerstand > relevant. > > Sagt zumindest die Praxis... Deine Praxis ist Unsinn. Die Theorie ist richtig. Lies mal über den Satz von der Ersatzspannungsquelle. Oder simulier es. Ich die Theorie jedenfalls schon oft mit Erfolg angewendet. Die Elektrotechnik ist sehr gut mathematsch beschrieben, und die Theorie sehr vollständig. Wer will, kann das verstehen. Meist sind gar keine komplexen Berechnungen nötig, nur die grundlegenden Gleichungen muss man verstehen und anwenden. Die 1µA stimmen generell schon (ich hatte oben erwähnt dass sie zu bedenken sind), aber für den gesamten Temperaturbereich. Praktisch sieht man sie nie. Es spielt eine Rolle, wenn man präzise messen will. Was hier nicht zur Dikussion stand. Es geht um die Messung einer Versorgung. Übrigens, Herr Praktiker: Deine 10mV bei 10k sind 0,04% Fehler.
:
Bearbeitet durch User
Dirk F. schrieb: > OK, danke für die Hinweise. > > Aber wie könnte eine gute Schaltung aussehen, welche die 24V Versorgung > über den ADC misst ? Auch wenn beim Einschalten die 24 V für einige > Millisekunden anliegen, bevor die 3,3V an der MCU anliegen. Hochohmig genug ist die einfache (wenn auch nicht 10000% korrekte Lösung). Wenn du sagen wir <1mA in den Pin wird nichts passieren. Alle anderen Lösungen sind schwieriger. Aber hier steht etwas dazu: https://ww1.microchip.com/downloads/en/DeviceDoc/PIC32MZ-Embedded-Connectivity-with-Floating-Point-Unit-Family-Data-Sheet-DS60001320H.pdf Kapitel 2.11 "A quick review of the section “Absolute Maximum Rating” in Electrical Characteristics chapter indicates that the voltage on any non-5V tolerant pin may not exceed VDD + 0.3V. The exception is, if the input current is limited to meet the respective injection current specifications defined by the parameters, such as DI60a, DI60b, and DI60c as shown in Table 37-10"
Rainer W. schrieb: > Da kann man den Kondensator gerne einen Faktor 100 größer machen. Das kann Eingang gegen Masse hier auch gerne einen Faktor 1000 größer sein. So ein Kondensator wirkt auch Dirk F. schrieb: > Wenn der uC noch keine Spannung hat, aber an einem Einganspin Spannung > ist wunderbar entgegen. ArnoNym schrieb: > Übrigens, Herr Praktiker: Deine 10mV bei 10k sind 0,04% Fehler. Das Schöne der uC ist doch daß man auch nachträglich noch in Software kalibrieren kann.
Rainer W. schrieb: > Wozu soll man zur Messung der Versorgungsspannung eine Bandbreite von > über 10kHz benötigen? Das ist wohl eher die Ausnahme. Also bei meiner Anwendung geht es eigentlich darum frühzeitig zu Erkennnen, wenn die Versorgng abgeschaltet wurde, um dann noch schnell alle remaneten Variablen aus dem RAM ins Flash zu schreiben. Das dauert in der state maschine 50 ms.
:
Bearbeitet durch User
Dirk F. schrieb: > Also bei meiner Anwendung geht es eigentlich darum frühzeitig zu > Erkennnen, wenn die Versorgng abgeschaltet wurde, um dann noch schnell > alle remaneten Variablen aus dem RAM ins Flash zu schreiben. > Das dauert in der state maschine 50 ms. Dann reicht es ja locker, wenn du in 5ms ein Einbrechen erkennst. Dazu reicht eine Bandbreite von 1kHz und eine Samplerate von 200Hz aus. Da sehe ich keine Probleme, das hochohmig zu machen. Wie z.B. 23k und 1k. PS: Der von mir oben verlinkte PIC32MZ hat eine Tabelle für die Eingangsimpedanz und die Aquisition Time, die bis 5kOhm geht. Man muss also nicht mal rechnen. Ein Komparator würde den Softwareoverhead stark reduzieren. Der kann den Eingang überwachen, und dem PIC einen Interrupt setzen. Ein Komparator mit OD hat das ganze Power-Sequencing Problem nicht. Soll aber keine Wertung der Lösung sein, das geht selbstverständlich auch mit dem ADC!
Beitrag #7610020 wurde vom Autor gelöscht.
Dirk F. schrieb: > Danke Flip B. Werde ich am Montag am zweiten Prototypen testen. Hallo zusammen, das Problem ist gefunden worden. Ich habe also einen zweiten Prototypen getestet >>> Gleiches Fehlerbild. Der ADC Eingang ist extrem niederohmig, aber funktioniert !! Wenn ich +3,3V and den 12-Bit ADC Pin lege, dann sampelt er mir um die 4000 Digits. Also OK. Habe den Strom gemessen: 80 mA !!! Ursache ist, dass dass der Pin noch als Ausgang beschaltet war. Laut Datenblatt soll der Pin RG9 nach dem POR als Eingang konfiguriert sein. Ist ja auch normal bei den PICS. In dem vom Microchip MCC erzeugten Code (Anhang plib..." wird das Bit 9 auch nicht verändert. Wenn ich den Code aus Zeile 102 hinzufüge, dann funktioniert es. Der ADC arbeitet mit hochohmigem Eingang.... Eine projektweite Suche nach "TRISG" brachte keine weiteren Treffer. Sehr sehr seltsam.....
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.