Hallo, ich plane gerade gedanklich ein paar Features eines neuen Projektes mit einem STM32 (obwohl der der Typ egal ist, da wohl eine Prinzipfrage): Ich will bei einem CAN-Knoten die RTC-Knopfzelle in regelmäßigen Abständen auf ihre Spannung prüfen und bei unterschreiten eine Nachricht an einen anderen Knoten senden, damit rechtzeitig ein Batterietausch erfolgen kann. Wie aber messe ich die absolute Spannung mit dem ADC? Einen unbekannten Widerstand mit dem ADC zu bestimmen ist ja selbst bei unbekannter und unterschiedlicher AREF kein Problem. Aber wenn ich z.B. 3.0 V absolut messen will, ist mir da bisher nur eine genaue externe Referenzspannungsquelle für AREF oder eine individuelle Kalibrierung der angeblich ziemlich stabilen internen AREF eingefallen. Beides ja bei einem Prototypen problemlos machbar, nur frage ich mich, ob es nicht auch eleganter geht.
Überleg dir doch erstmal, welche Genauigkeit wirklich nötig ist, und dann schau mal, ob das mit der internen Referenz noch machbar wäre...
Für eine RTC (sofern wirklich nur die davon gespeist werden soll) würde ich mal 0.05 Volt (50 mV) als ausreichende Genauigkeit vermuten. Neu haben die ja so ca. 3.3 V; "statische" Spannung im µA-Bereich sollte sie wohl bei 3 V auch noch bringen. Die werden ja durch den geringen Entladestrom auch nicht flott leer. Außerdem könnte man ja die frische Zelle mit der (bei den meisten µC's angeblich ziemlich Temperatur- und Versorgungsspannungskonstanten) internen Referenz messen und den Wert als Bezugswert hinterlegen (die Zelle mit dem Multimeter natürlich auch vorher messen, um Umrechnen zu können. Gut, das ist dann ja aber schon wieder das erwähnte, ungewollte, Kalibrieren ...
>Wie aber messe ich die absolute Spannung mit dem ADC?
Rechnen? Oder kannst du das auch nicht?
holger schrieb: >>Wie aber messe ich die absolute Spannung mit dem ADC? > > Rechnen? Oder kannst du das auch nicht? Denk erst mal genau über das Problem nach, bevor Du sowas absonderst. Aber moment mal: Brauchst Du ja gar nicht; es steht ja sogar da. Deshalb noch mal extra für Dich: Der ADC macht einen relativen Vergleich zwischen der zu messenden Spannung und der Referenzspannung. Bleibt die Meßspannung gleich (hier z.B. 3V) und die Referenzspannung wird verändert, ändert sich der Meßwert des ADC.
holger schrieb: >>Wie aber messe ich die absolute Spannung mit dem ADC? > > Rechnen? Oder kannst du das auch nicht? Rechnen? Mein Gott, bin ich doof. Ein Rechenkünstler. Na endlich. Meine Rettung. Der ADC hat 10 bit und einen Wert von 907. Berechne bitte mal für mich, wieviel Volt meine Knopfzelle hat? Wenn du das hast der nächste Level: Das Schiff ist 30 m lang und der Mast ist 17 m hoch. Berechne mal für mich: Wie alt ist der Kapitän?
Nachmacher schrieb: > Der ADC hat 10 bit und einen Wert von 907. Berechne bitte mal für mich, > wieviel Volt meine Knopfzelle hat? Kein Thema : U = 907/1024 * URef
Schon klar, und welchen Wert hat URef? => Steht im Datenblatt; Lesen kannst du also auch nicht. Entweder du legst interne Aref an (Wert steht auch im Datenblatt oder du kalbrierst diese) oder du legst bekannte externe Aref an. Lesen geht ganz gut. Aber da steht, daß interne Aref 1,2 V sind. Also zu klein für 3,3 V. Müßte also Spannungsteiler nehmen (und wieder diese furchtbare Rechnerei machen). Der Spannungsteiler würde über die Zeit die Batterie aber mehr leernuckeln als die RTC selbst. Und wie genau ist eine externe Referenzspannung? Aber das ist mir bekannt und steht alles schon im Startpost. Die Frage war, ob es eine elegantere Lösung gibt. => Vergib mir, ich war unaufmerksam ...
Nachmacher schrieb: > Schon klar, und welchen Wert hat URef? > => Steht im Datenblatt; Lesen kannst du also auch nicht. Hm, ganz schön kecker Schreibstil für den Probleminhaber! > Entweder du > legst interne Aref an (Wert steht auch im Datenblatt oder du kalbrierst > diese) oder du legst bekannte externe Aref an. > > Lesen geht ganz gut. Aber da steht, daß interne Aref 1,2 V sind. Also zu > klein für 3,3 V. Müßte also Spannungsteiler nehmen (und wieder diese > furchtbare Rechnerei machen). Ja, ja, die Rechnerei ist in der Tat furchtbar (aber durchaus fruchtbar). Lege doch den Fußpunkt des Spannungsteilers auf einen GPIO und schalte diesen zum Messen auf "0", in der übrigen Zeit auf High-Z. > Der Spannungsteiler würde über die Zeit > die Batterie aber mehr leernuckeln als die RTC selbst. nö, s.o. > Und wie genau ist eine externe Referenzspannung? Frage des Aufwandes. Externe REF für ne' RTC-Batteriemessung??? > Aber das ist mir bekannt und steht alles schon im Startpost. Die Frage > war, ob es eine elegantere Lösung gibt. Warum die hohe Genaugikeit? Uref = Vcc würde für mein Empfinden mehr als ausreichend sein. > => Vergib mir, ich war unaufmerksam ...
H.R. schrieb: > Nachmacher schrieb: >> Schon klar, und welchen Wert hat URef? >> => Steht im Datenblatt; Lesen kannst du also auch nicht. > > Hm, ganz schön kecker Schreibstil für den Probleminhaber! JA ! >> Aber das ist mir bekannt und steht alles schon im Startpost. Die Frage >> war, ob es eine elegantere Lösung gibt. > > Warum die hohe Genaugikeit? Uref = Vcc würde für mein Empfinden mehr als > ausreichend sein. Annahme: VCC bleibt während der Messung konstant - sollte sicher bei Dir passen. Der ADC kann die interne Ref mit VCC vergleichen (meiner kann es) und der ADC kann auch die unbekannte Meßspannung mit VCC vergleichen. Etwas Mathe (Dreisatz) später kürzt sich VCC aus der Gleichung und man kennt die zu messende Spannung. Damit ist dann die Bedingung "elegant" erfüllt. Prost.
Nachmacher schrieb: > Der Spannungsteiler würde über die Zeit > die Batterie aber mehr leernuckeln als die RTC selbst. Wenn man die Betriebsspannung des µC messen will, dann kann man den Spannungsteiler einfach ein einem unbenutzten IO-Pin anschliessen und nur für die Messung kurz anschalten. > Und wie genau ist > eine externe Referenzspannung? Die billigen haben keine besonders hohe absolute Genauigkeit (genauso wie die in µC integrierten). Allerdings ist die Stabilität über Zeit und Temperaturänderungen schon recht gut, so dass man nach einmaliger Kalibrierung mit einer bekannten Spannung recht genau messen kann. Ein weiteres Problem ist, dass die Spannung bei einigen Batterietypen (insbesondere Zink-Kohle Batterien und Lithium-Knopfzellen) sehr lange nahezu konstant bleibt und sich nur der Innenwiderstand ändert. Wenn die Spannung bei geringem Strom erst einmal spürbar sinkt, dann kann die Batterie relativ schnell ganz leer sein. Eventuell ist es daher sinnvoller, die Batterie zur Messung kurz zu belasten und den Unterschied zwischen Leerlaufspannung und Spannung unter Last zu messen.
Bernd Rüter schrieb: > Annahme: > VCC bleibt während der Messung konstant - sollte sicher bei Dir passen. Läßt sich problemlos einrichten. > Der ADC kann die interne Ref mit VCC vergleichen (meiner kann es) Du meinst, wenn VCC als Referenzspannung genutzt wird und mit VRef verbunden wird? Dann ja. > und der ADC kann auch die unbekannte Meßspannung mit VCC vergleichen. > Etwas Mathe (Dreisatz) später kürzt sich VCC aus der Gleichung und man > kennt die zu messende Spannung. Stimmt. Der absolute Wert der zu messenden Spannung hängt aber immer noch von der Kenntnis und Genauigkeit der internen URef ab; er wird ja auch nur als relativer Zahlenwert (x/y * interne URef) angegeben. Aber man kann mit dieser Methode eine interne URef nehmen, die kleiner als die zu messende Spannung ist. Kostet zwar einen ADC-Pin, aber gute Idee. Bernd Rüter schrieb: > Damit ist dann die Bedingung "elegant" erfüllt. Würde ich auch so sehen. Einen Wert in dem ganzen Geflecht muß man kennen, sonst kann man auch die am Anfang genannte Eleganz bei der Widerstandsbestimmung nicht haben (nur das da statt der bekannten URef ein Widerstand bekannt sein muß). Jakob Lell schrieb: > Eventuell ist es daher > sinnvoller, die Batterie zur Messung kurz zu belasten und den > Unterschied zwischen Leerlaufspannung und Spannung unter Last zu messen. Unabhängig von der Machbarkeit: So ein Test würde der Batterie vermutlich jedes mal etliche Wochen ihrer Lebensdauer rauben.
Lutz schrieb: > Bernd Rüter schrieb: >> Annahme: >> VCC bleibt während der Messung konstant - sollte sicher bei Dir passen. > Läßt sich problemlos einrichten. >> Der ADC kann die interne Ref mit VCC vergleichen (meiner kann es) > Du meinst, wenn VCC als Referenzspannung genutzt wird und mit VRef > verbunden wird? Dann ja. >> und der ADC kann auch die unbekannte Meßspannung mit VCC vergleichen. >> Etwas Mathe (Dreisatz) später kürzt sich VCC aus der Gleichung und man >> kennt die zu messende Spannung. > Stimmt. Der absolute Wert der zu messenden Spannung hängt aber immer > noch von der Kenntnis und Genauigkeit der internen URef ab; er wird ja > auch nur als relativer Zahlenwert (x/y * interne URef) angegeben. Aber > man kann mit dieser Methode eine interne URef nehmen, die kleiner als > die zu messende Spannung ist. Kostet zwar einen ADC-Pin, aber gute Idee. Ich kenne jetzt nicht den Aufbau des verwendeten uCs. Ich arbeite hier mit PICs und da gibt es (nicht so ganz alte) Modelle, wo ich den Multiplexer des ADCs auf eine interne Referenz schalten kann. Also kein Pin und nix... Welche Genauigkeit willst Du denn realistisch erreichen ? Weisst Du denn schon, bei welcher Spannung die Knopfzelle "leer wird" ? Das ist doch alles grobe Schätzung und von allen Einflüssen abhängig. Da reicht die erreichbare Genauigkeit sicher aus.
Lutz schrieb: > Unabhängig von der Machbarkeit: So ein Test würde der Batterie > vermutlich jedes mal etliche Wochen ihrer Lebensdauer rauben. Nein. Für eine CR2032 sollten ca. 10 mA Last völlig ausreichen. Wenn man dann pro Tag eine Sekunde lang misst, kommt man insgesamt auf knapp über 1 mAh pro Jahr. Das fällt im Vergleich zu der Kapazität (ca. 200 mAh) der Knopfzelle nicht ins Gewicht.
> Kostet zwar einen ADC-Pin, aber gute Idee. > > Ich kenne jetzt nicht den Aufbau des verwendeten uCs. Ich arbeite hier > mit PICs und da gibt es (nicht so ganz alte) Modelle, wo ich den > Multiplexer des ADCs auf eine interne Referenz schalten kann. Also kein > Pin und nix... Stimmt, war ein Gedankenfehler. Mit der Genauigkeit für diesen Anwendungsfall auch. >> Unabhängig von der Machbarkeit: So ein Test würde der Batterie >> vermutlich jedes mal etliche Wochen ihrer Lebensdauer rauben. > > Nein. Für eine CR2032 sollten ca. 10 mA Last völlig ausreichen. Wenn man > dann pro Tag eine Sekunde lang misst, kommt man insgesamt auf knapp über > 1 mAh pro Jahr. Das fällt im Vergleich zu der Kapazität (ca. 200 mAh) > der Knopfzelle nicht ins Gewicht. Mit Fakten sieht das in der Tat so aus. Dann braucht man aber wahrscheinlich 2 Pins mehr: Einen zum Schalten und einen zum Messen am belasteten Spannungsteiler. Aber das ist ja auch kein Problem.
Nachmacher schrieb: > Ich will bei einem CAN-Knoten die RTC-Knopfzelle in regelmäßigen > Abständen auf ihre Spannung prüfen und bei unterschreiten eine Nachricht > an einen anderen Knoten senden, damit rechtzeitig ein Batterietausch > erfolgen kann. Kannst du nicht einfach einen Uhrenvergleich machen? Wenn die RTC anfängt nachzulaufen ist es zeit für einen Wechsel.
Nachmacher schrieb: > Ich will bei einem CAN-Knoten die RTC-Knopfzelle in regelmäßigen > Abständen auf ihre Spannung prüfen und bei unterschreiten eine Nachricht > an einen anderen Knoten senden, damit rechtzeitig ein Batterietausch > erfolgen kann. Bei einer CR2032 an einem DS1307 würde ich einfach die Nachricht nach 10 Jahren verschicken. Die Zeit ist leicht messbar, das Ding hat ja eine RTC ;-) Gruß, Frank
Ihr habt mich überzeugt; das ganze ist gar nicht so schlimm wie ich dachte (zumindest in diesem konkreten Fall). -Gast_XIV schrieb: > Kannst du nicht einfach einen Uhrenvergleich machen? Wenn die RTC > anfängt nachzulaufen ist es zeit für einen Wechsel. Frank M. schrieb: > Bei einer CR2032 an einem DS1307 würde ich einfach die Nachricht nach 10 > Jahren verschicken. Die Zeit ist leicht messbar, das Ding hat ja eine > RTC ;-) Das dann aber doch nicht, da die Selbe Batterie ja auch die Backupregister bei Stromunterbrechung puffert. Außerdem will ich ja präventiv tätig werden; sonst brauche ich ja gar keine Überwachung da ich ja schon merken würde, wenn etwas nicht stimmt ... Als reine Zeitbasis wäre eine separate RTC im CAN-Netz, gerade bei der Betrachtung der "Features" der STM32-RTC, wohl doch gar nicht so schlecht.
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.