Hallo, ich habe folgendes Problem: Platine hat einen Eingang für Batteriespannung, diese wird über einen DC-DC Wandler in 5V und dann über einen Linearregler in 3.3V gewandelt, worüber ein Mikrocontroller versorgt wird. Dieser soll, wenn er aktiv ist, die Batteriespannung mittels ADC messen. Der DC-DC Wandler schaltet beim Unterschreiten eines festzulegenden Thresholds ab, um die Batterie zu schützen. Folglich schaltet auch der Mikrocontroller aus, der zu messende Teil der Batteriespannung liegt aber weiterhin am ADC Pin an. Um das zu verhindern habe ich die im Bild gezeigte Schaltung vorgesehen. Gibt es eine kompaktere Lösung mit weniger Bauteilen? Kosteneffizient muss es nicht sein. Ich habe bereits nach Analogschaltern geschaut, diese sind aber an ihren Eingängen auch nur für Vcc + 0.5V ausgelegt, wenn also die VCC von 3.3V nicht mehr anliegt habe ich genau das selbe Problem. Gibt es einen IC der das Problem lösen kann, oder einen 1-Kanal ADC der bereits gegen so einen Fall geschützt ist?
Nach dem 1MOhm Widerstand reicht die ESD-Diode im Chip. Wenn Du Angst hast kannst Du noch einen Diode zwischen ADC und +3V3 schalten.
>Nach dem 1MOhm Widerstand reicht die ESD-Diode im Chip.
Sehe ich genauso. Wobei möglicherweise die hohe Eingangsimpedanz
90k/14pF Messfehler aufgrund der SH Kapazität verursachen könnte.
Langsam messen! Oder C42 Faktor 1000..10000 höher wählen
Wenn Dioden, dann unbedingt den Leckstrom über Temperatur betrachten.
Alles bis auf 1M und C42 raus, den C42 deutlich größer. Der ADC enthält einen internen sample & hold Kondensator. Dein C42 muss deutlich größer sein als der, weil sonst das Laden des SH Cap die Messung massiv verändert. Schau ins MCU DB. Der max Strom der internen Dioden beträgt wahrscheinlich um die 30mA. So lange nicht mehr über den 1M kommt hält der ADC Eingang das aus.
Max M. schrieb: > Dein C42 muss deutlich größer sein als der, weil sonst das Laden des SH > Cap die Messung massiv verändert. Dann musst aber dein Messintervall seltener als 5* 1M*C42_neu sein! Denn sonst verändert das die Messung auch.
HildeK schrieb: > Dann musst aber dein Messintervall seltener als 5* 1M*C42_neu sein! Denn > sonst verändert das die Messung auch. Gut erkannt ;-) Aber Batteriespannungen ändern sich ja nicht so schnell.
Super, vielen Dank für die ganzen Hinweise, dann war meine ursprüngliche Beschaltung etwas overkill. Kann ich mir die vorgeschlagene Beschaltung in etwa so vorstellen? Ich habe die Widerstände auch etwas reduziert und den Kondensator vergrößert. Ich verstehe nur noch nicht, wie die Diode nach VCC funktioniert. Im ausgeschalteten Zustand sollte das 3.3V Potential doch unbestimmt sein. Liegt jetzt Batteriespannung an sollte das doch weiterhin am ADC anliegen. Oder muss ich die interne Beschaltung des Mikrocontrollers mit in Betracht ziehen um die Wirkungsweise zu verstehen? Wenn jetzt der Strom hier so begrenzt wird, kann ich dann auch davon ausgehen, dass der Mikrocontroller nicht versehentlich eingeschaltet wird durch die Batteriespannung? Vielen Dank!
adc_input schrieb: > Ich verstehe nur noch nicht, wie die Diode nach VCC funktioniert. Die brauchst Du nicht. Die MCU hat interne Dioden nach VCC + GND. Das sind die Body Dioden der Mosfet Ausgangsstufen, weil der ADC PIN sicher auch ein Ausgang sein könnte. Und da die Body Dioden parasitäre Dioden sind die sich aus der Mosfet Struktur zwangsläufig ergeben, können die mindestens den Srom den auch der Mosfet kann. Steht aber alles im DB. Prinzipschaltbild der Pin Typen, max. Strom der Ausgänge, max Spannung an den Eingängen bezogen auf VCC und max. Strom durch die Dioden. Aber lesen sollte man das schon wenn man HW baut. Die Dioden klemmen alles was kleiner wird als GND und größer als VCC +- Diodenspannung. adc_input schrieb: > Mikrocontroller nicht versehentlich eingeschaltet Wenn so viel Strom über die interne Diode nach VCC fliesst das VCC weit genug steigt das der Oszillator startet und der Reset gelöst wird, dann startet die. Aber da auch die Ströme der MCU im DB stehen kann man das ganz einfach ermitteln. Aber bei 1M Vorwiderstand jetzt nicht die wahrscheinlichste Konstellation. adc_input schrieb: > muss ich die interne Beschaltung des Mikrocontrollers mit > in Betracht ziehe Die solltest Du immer kennen. Ich weiß das das in der MCU Anwenderszene ein echter Geheimtipp ist den nur wenige kennen und noch weniger beherzigen, aber Datenblätter enthalten unschätzbar nützliche Informationen. Einfach mal lesen. Es würden sich so wahnsinnig viele Fragen von alleine klären und es würde so viel bessere HW und SW dabei entstehen. Schade eigentlich das die so selten beachtet werden.
adc_input schrieb: > liegt aber weiterhin am ADC Pin an. U Wenn dein Q5 nicht dauerhaft an 3.3V kommt sondern vom uC per Ausgangspin nur eingeschaltet wird wenn er messen will, dann nicht. ABER: welche Eingangsimpedanz erlaubt der uC fur ordentliche Messergebnisse, 91k kommt mir viel vor, ein AVR misst nur bis 10k genau. UND: 100 Ohm vor Q5 erlauben unnötig viel Strom, 10k tun es auch. adc_input schrieb: > weniger Bauteilen? Kosteneffizient muss es nicht sein. HN7G09FE von Toshiba.
adc_input schrieb: > Kann ich mir die vorgeschlagene Beschaltung > in etwa so vorstellen? Was willst du mit der Diode, so eine befindet sich bereits im Mikrocontroller. MaWin schrieb: > welche Eingangsimpedanz erlaubt der uC fur ordentliche Messergebnisse, > 91k kommt mir viel vor, ein AVR misst nur bis 10k genau. Die Quelle muss den Sample & Hold Kondensator im ADC schnell genug aufladen können. Dazu darf die Quelle bis zu 10 kΩ haben, dann ist man auf der sicheren Seite. In dieser Schaltung ist die Quelle der Kondensator vor dem ADC Eingang, mit einem ESR von annähernd 0 Ω. Hier ist nur wichtig, nur zu schnell häufig zu messen, sonst wird der Quell-Kondensator schrittweise entladen. Man muss zwischen den Messungen genug Zeit lassen, dass er wieder aufgeladen wird. Der Sample & Hold Kondensator hat etwa 15 pF Kapazität. Im ungünstigen Extremfall ist dieser vor jeder Messung ganz leer. Wenn der Quell-Kondensator 1 nF hat, kostet ihn jede Messung etwa 1/66 der Ladung. Entsprechend wird das Messergebnis verfälscht. Deswegen würde ich eher 100 nF verwenden.
Stefan ⛄ F. schrieb: > Die Quelle muss den Sample & Hold Kondensator im ADC schnell genug > aufladen können. Dazu darf die Quelle bis zu 10 kΩ haben, dann ist man > auf der sicheren Seite. In dieser Schaltung ist die Quelle der > Kondensator vor dem ADC Eingang, mit einem ESR von annähernd 0 Ω. Nicht wirklich. Es gibt auch einen Eingangsfehlersrom, je nach Spannungshöhe am Eingang reinfliessend oder rausfliessend, von je nach uC (der NATURLICH nicht genannt wurde) bis zu 1uA, und 1uA an 10k sind satte 10mV.
MaWin schrieb: > Es gibt auch einen Eingangsfehlersrom Ja, aber den können wir bei den üblichen Mikrocontrollern vernachlässigen. Hätte er 10 MΩ vorgeschlagen, dann hätte ich aus dem Bauch heraus auch Bedenken geäußert. Wenn er jetzt mit einem exotischen µC ankommt der an dieser Stelle besonders ungünstig ist -> Selbst Schuld. Das passiert, wenn man Angaben geheim hält. Wahrscheinlich hast du bemerkt dass ich da nicht mehr so häufig nachhake wie früher. Wenn man nachfragt wird man meistens blöd angemacht.
Stefan ⛄ F. schrieb: > 10 mV wären in dieser Anwendung egal Woher weisst du das, kennst du den TO und seine Schaltung persönlich ? Bei 91k Eingangsimpedanz wären es übrigens 91mV.
MaWin schrieb: > Woher weisst du das Weil im Eröffnungsbeitrag steht: adc_input schrieb: > Dieser soll, wenn er aktiv ist, die Batteriespannung > mittels ADC messen. Der DC-DC Wandler schaltet beim Unterschreiten eines > festzulegenden Thresholds ab, um die Batterie zu schützen. Da kommt es nicht auf 10 mV mehr oder weniger an. > Bei 91k Eingangsimpedanz wären es übrigens 91mV. Hätte hätte Fahrradkette. Er hat 9,1 kΩ Eingangsimpedanz.
Vielen Dank! Der Mikrocontroller ist ein STM32F103 und die batteriespannung muss nicht besonders genau (+-100mV) und nicht besonders schnell (0,2 Hz) gemessen werden. Also ist meine Schlussfolgerung, dass ich den hochohmigen Spannungsteiler behalte, einen Kondensator mit etwa 100nF (?) vor den Eingang schalte und ich dann für den Fall, falls die Batteriespannung(<18V) anliegt, VCC aber nicht, den Mikrocontroller ausreichend geschützt habe? Ich wollte keine Daten vorenthalten, möchte mich aber für die zahlreichen Kommentare bedanken! Gruß
Hi, so ein ähnliches Problem hate ich auch mal: Beitrag "Backpowering_CMOS" Die Lösung ist recht einfach. Strombegrenzerwiderstände. 1M /100k sehen passabel aus. Aber mit starker Impulsverformung muss gerechnet werden. Für weniger kritische Anwendungen geht's also. ciao gustav
Da es eben nicht auf wenige Millivolt ankommt, würden 1 nF auch gehen. Allerdings kosten 100 nF nicht wirklich mehr, insofern würde ich mir den Luxus gönnen.
Hallo, vielleicht ist diese Schaltung was für Dich. Fehlen die 3,3V vom Mikrocontroller, sperrt der Mosfet und Du hast keinen weiteren Stromverbrauch durch den Spannungsteiler. Gruß Carsten
Carsten-Peter C. schrieb: > diese Schaltung Verfälscht die Messung. Der Fet kann überhaupt nur durchschalten wenn ADC klein genug ist und der R1 sieht den Gate Strom, der zwar klein ist aber vorhanden.
Carsten-Peter C. schrieb: > vielleicht ist diese Schaltung was für Dich. Sicher nicht. Die Spannung am Ausgang (Source) ist immer etwa 2V geringer als die Versorgungsspannung. Denn in allen anderen Fällen leitet der MOSFET nicht. Aber tröste dich, der Fehler poppt hier jede Woche erneut auf. Meisten allerdings mit bipolaren NPN Transistoren.
Max M. schrieb: > Schau ins MCU DB. > Der max Strom der internen Dioden beträgt wahrscheinlich um die 30mA. Wo hast du diesen Wert her? Oft ist der zulässige maximale Strom der internen Klemmdioden gar nicht spezifiziert. Atmel empfiehlt allerdings in der AVR182, einen maximalen Wert von 1mA nicht zu überschreiten (*). Wie passt das mit dem von dir angegebenen Wert zusammen? (*) S.5 "It is not recommended that the clamping diodes are conducting more than maximum 1mA"
adc_input schrieb: > habe ich die im Bild gezeigte Schaltung vorgesehen R67 ist viel zu klein. Der sorgt ständig für die weitere Entladung der 12V(?) Batterie, dabei muß er nur den Reststrom von Q1 eliminieren. R64 ist viel zu klein. Wie kommt man auf diesen Wert? Der Sinn von C42 erschließt sich mir nicht. Oder soll der die Eingangs- kapazität des ADC darstellen? Als reales Bauelement würde man da wohl eher 10nF vorsehen, um den ADC-Fehler wegen des hohen Quellwiderstands von ~100K zu verringern. Also: auch zu klein. Ich würde perspektivisch eher R68 und R69 um Faktor 10 verkleinern. Dann kann C42 entfallen. Und um die Belastung der Batterie zu minimieren, reicht es einmal pro Minute zu messen.
Stefan ⛄ F. schrieb: > Weil im Eröffnungsbeitrag steht: > adc_input schrieb: > >> Dieser soll, wenn er aktiv ist, die Batteriespannung >> mittels ADC messen. Der DC-DC Wandler schaltet beim Unterschreiten eines >> festzulegenden Thresholds ab, um die Batterie zu schützen. > > Da kommt es nicht auf 10 mV mehr oder weniger an. Dort steht NICHT, dass der uC den Tiefentladeschutz bildet. Sondern das passiert im DC/DC Wandler. Also weiss man aus dem Eröffnungsbeitrag noch nicht, was er mit dem Messwert machen will. Das kommt erst jetzt, nach Nachfrage: Loeten schrieb: > Der Mikrocontroller ist ein STM32F103 und die batteriespannung muss > nicht besonders genau (+-100mV) und nicht besonders schnell (0,2 Hz) > gemessen werden Immerhin passen 1uA zum uC: Ilkg Input leakage current (6) VSS ≤ VIN ≤ VDD Standard I/Os - - ±1 µA die Eingangsimpedanz hängt von der Wandlungsgeschwindigkeit ab und muss zwischen 400 Ohm und 50k liegen: RAIN(2) External input impedance See Equation 1 and Table 47 for details 1.5 0.11 0.4 7.5 0.54 5.9 13.5 0.96 11.4 28.5 2.04 25.2 41.5 2.96 37.2 55.5 3.96 50 Da er langsam wandeln kann, passt es, aber das wusste man vor Salamischeibe 3 nicht.
MaWin schrieb: > aber das wusste man vor Salamischeibe 3 nicht. Man hätte es sich denken können. Dazu braucht man allerdings eine positive Grundeinstellung.
Stefan ⛄ F. schrieb: > Sicher nicht. Die Spannung am Ausgang (Source) ist immer etwa 2V > geringer als die Versorgungsspannung. Denn in allen anderen Fällen > leitet der MOSFET nicht. Ich nehme immer den BSS138 der hat typisch 1.3V verlust. Den Spannungsteiler kann man so umdimensiionieren daß das nicht stört. Man kann auch eine 1.2V Referenzspannung verwenden wenn man eine hohe Auflösung braucht. https://www.mikrocontroller.net/articles/Batteriew%C3%A4chter#Prozessorteil Gruß Anja
Axel S. schrieb: > R67 ist viel zu klein. Der sorgt ständig für die weitere Entladung der > 12V(?) Batterie Und wie? Wenn Q5 abgeschaltet ist, fließt da nicht viel.
Wolfgang schrieb: > Wo hast du diesen Wert her? Siegessicher ins 328P DB geschaut, und ... Tatsache, ich finde den nicht mehr in aktuellen Datenblättern. Auch jede Information wie so eine Ausgangsstufe aufgebaut ist fehlt weitestgehend. Die Info habe ich aus einem älteren DB das ich jetzt natürlich nicht mehr finde. Da war clamping current ganz klar definiert. Jetzt fehlt jede Definition zum clamping current. Auch die 1mA aus AVR182 ist das einzige was überhautpt dazu gesagt wird und das ist m.E. weit hergeholt das auf alles und jeden Chip zu übertragen. Das ist eher: 'Damit sagen wir nix falsches, egal um welchen Pin Typ und welche MCU es geht' Wenn es sich um eine reine ESD Diode eines 'input only' handelt, sehe ich 1mA ein. Aber alles was auch Ausgang sein kann, hat eine MosFet Halbbrücke am Ausgang, auch wenn die nicht angesteuert wird und da sind die Body Dioden eine zwangsläufige Folge des Herstellungsprozesses. Mosfets ohne Body Dioden gibt es nicht und die kann Prinzipbedingt den Strom den der Mosfet kann und der kann laut DB 40mA Dauer. Strange, das das nicht mehr definiert wird.
Max M. schrieb: > Siegessicher ins 328P DB geschaut, und ... Loeten schrieb: > Der Mikrocontroller ist ein STM32F103 > Batteriespannung(<18V) und bei dem steht völlig zweideutig geschrieben:
1 | Absolute maximum ratings |
2 | Injected current on any other pin min. -5mA max. +5mA |
3 | Input voltage on any other pin min. VSS−0.3V max. 4.0V |
Es heißt 4.0V, nicht VDD+4.0V. Ist das ein Tippfehler oder was passiert bei VDD=0 und Vin=4V??? ("any other pin" = das gilt nur für die ADC-Pins, nicht für den Rest. Und schon garnicht für neuere STM32!)
Bauform B. schrieb: > Es heißt 4.0V, nicht VDD+4.0V. Ist das ein Tippfehler oder was passiert > bei VDD=0 und Vin=4V??? Ganz einfach: Das eine Limit setzt das andere Limit nicht aus. D.h., es gilt immer beides: Wenn Du die Spannung an einem Pin erhöhst, darf niemals mehr als 4 Volt anliegen und niemals mehr als 5mA fließen. Sobald eine Grenze erreicht wurde, egal welche von beiden, darfst Du nicht mehr höher gehen.
Bauform B. schrieb: > und bei dem steht völlig zweideutig geschrieben:Absolute maximum ratings > Injected current on any other pin min. -5mA max. +5mA > Input voltage on any other pin min. VSS−0.3V max. 4.0V Was ist daran zweideutig? Du musst beide Bedingungen einhalten. Und nicht vergessen: Die Absolute Maximum Ratings bezeichnen keinen normalen Betriebszustand, d.h. der Chip übersteht das zwar kurzzeitig, der Hersteller garantiert aber nicht, dass er auf Dauer mit diesen Parametern betrieben werden darf. Genaueres steht in den Erläuterungen im Datenblatt.
Bauform B. schrieb: > Es heißt 4.0V, nicht VDD+4.0V. Ist das ein Tippfehler oder was passiert > bei VDD=0 und Vin=4V??? 5V kompatible Eingänge eines 3.3V Chips dürfen den Strom nicht nach VCC ableiten, sondern müssen ihn zum Schutz per Z-Diode (die eher ab 6.8 als 4.0V leitet, aber egal) nach GND ableiten, und das ist unabhängig davon ob VCC eingeschaltet oder ausgeschaltet ist.
Beim STM32F103 (ich glaube sogar bei allen STM32) sind die analogen Eingänge aber nicht 5V tolerant. Sie haben intern eine Diode, die Überspannung nach VCC ableitet.
Stefan ⛄ F. schrieb: > Beim STM32F103 (ich glaube sogar bei allen STM32) sind die > analogen Eingänge aber nicht 5V tolerant. Sie haben intern eine Diode, > die Überspannung nach VCC ableitet. Ja, weil die Z-Diode den Messwert versaut.
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.