Hallo, ich hab mich gefragt welche Speichermethode man nehmen kann wenn man einen sekundengenauen Betriebsdauerzähler realisieren will. Bei der Methode "Zähler im RAM und bei Spannung weg ab ins EEPROM" bin ich dann auch recht schnell gelandet. Es blieb aber irgendwie die Frage im Hirn ob es keine andere Technik gibt die für so eine Aufgabe verwendet werden kann. RTC mit Goldcap? Andere Speichertechnologie? ???
FRAM, MRAM. https://www.mouser.de/ProductDetail/Cypress-Semiconductor/CY15B004J-SXA?qs=u4fy%2FsgLU9OOh49XkEdZtQ%3D%3D
:
Bearbeitet durch User
FRAM wurde schon genannt und ist Standard. EERAM ist eine Alternative: https://www.microchip.com/en-us/products/memory/serial-eeram Das ist eine Kombination aus EEPROM und SRAM.
größerer EEPROM und nur wenige Daten an immer neue Adresse schreiben ud erst löschen wenn er voll ist...
Bob A. schrieb: > selber noch was gefunden: > > NVRAM https://www.st.com/en/memories/nvram.html Wenn ich mich nicht täusche braucht das eine Batterie? Das ist heutzutage für solche Dinge eigentlich nicht mehr nötig. FRAM und EERAM brauchen das nicht. Batterie ist immer Pfui, die kann leer werden und auslaufen.
??? schrieb: > größerer EEPROM und nur wenige Daten an immer neue Adresse schreiben ud > erst löschen wenn er voll ist... War auch ein Gedanke, aber mich hat dann die Größe "cycles per device" eiskalt überrascht! (https://www.st.com/en/memories/standard-serial-eeprom.html) 100 millionen sind auch schnell rum... Nimmt man dazu dass die 4 Millionen nicht pro Zelle sondern pro 4er Block gelten, dann wirds doch recht schnell eng
yakman schrieb: > Bob A. schrieb: >> selber noch was gefunden: >> >> NVRAM https://www.st.com/en/memories/nvram.html > > Wenn ich mich nicht täusche braucht das eine Batterie? > > Das ist heutzutage für solche Dinge eigentlich nicht mehr nötig. FRAM > und EERAM brauchen das nicht. > Batterie ist immer Pfui, die kann leer werden und auslaufen. Die haben integrierte Lithium Knopfzellen Daher auch ziemlich klobig
Bob A. schrieb: > ich hab mich gefragt welche Speichermethode man nehmen kann wenn man > einen sekundengenauen Betriebsdauerzähler realisieren will. Man zählt die Betriebssekunden im RAM und schreibt erst auf das EEprom wenn ausgeschaltet wird. Dazu muß die Betriebsspannung überwacht und genug gepuffert werden, damit es dann zum Schreiben noch reicht.
Bob A. schrieb: > ich hab mich gefragt welche Speichermethode man nehmen kann wenn man > einen sekundengenauen Betriebsdauerzähler realisieren will. Erst ins EEPROM schreiben, wenn der Strom ausfällt und ??? schrieb: > immer neue Adresse schreiben Das Taugt für 10Mio. bis über 1Mrd. Ausschaltvorgänge.....
Andreas B. schrieb: > Bob A. schrieb: >> ich hab mich gefragt welche Speichermethode man nehmen kann wenn man >> einen sekundengenauen Betriebsdauerzähler realisieren will. > > Man zählt die Betriebssekunden im RAM und schreibt erst auf das EEprom > wenn ausgeschaltet wird. > Dazu muß die Betriebsspannung überwacht und genug gepuffert werden, > damit es dann zum Schreiben noch reicht. Hallo Andreas, Das ist mir relativ schnell auch klar geworden, ich hab mich danach nur gefragt ob es generell eine Technologie gibt die hierfür eingesetzt werden könnte. Meine Fragestellung ist etwas holprig formuliert fällt mir gerade auf... Aber es gab ja schon gute Stichworte zum weiterhangeln :)
Bob A. schrieb: > Nimmt man dazu dass die 4 Millionen nicht pro Zelle sondern pro 4er > Block gelten, dann wirds doch recht schnell eng Aber wenn man immer nur bei brown_out/shutdown schreibt (" ... Zähler im RAM und bei Spannung weg ab ins EEPROM ... ") sollte es doch dick reichen. Also 4 Mio mal abschalten auf 40 Jahre lebensdauer, wäre 100kx/Jahr und damit ca. 300x/Tag als ca 12x/h abgeschaltet. Hast du wirklich ein gerät das so oft ab und an- geschaltet wird?!
Fpgakuechle K. schrieb: > Hast du wirklich ein gerät das so oft ab und an- geschaltet wird?! Nein, mich hat nur interessiert ob es Speicher gibt der sowas abkann..
Bob A. schrieb: > RTC mit Goldcap? Microchip 23LCV1024: SRAM mit separatem Eingang für Batterie http://ww1.microchip.com/downloads/en/devicedoc/25156a.pdf fchk
Bob A. schrieb: > Fpgakuechle K. schrieb: >> Hast du wirklich ein gerät das so oft ab und an- geschaltet wird?! > > Nein, mich hat nur interessiert ob es Speicher gibt der sowas abkann.. Es gibt ie Marketing-Erfindung "EERAM": https://www.microchip.com/wwwproducts/en/47L04 Das ist eine single-chip gebrauchsfertige RAM/EEPROM Kombi, die nur ins EEPROM schreibt wenn nötig. Und die Anzahl der Schreibzyklen bei EEPROM ist auch 'nur' eine garantierte Minimalzahl wie beim Fabrikanten ausgemessen. Klar kann ein Hersteller bei Serienstart nicht die Chips wie gefordert Dauergetestet haben, wieviel tatsächlich geht. Also bei nicht auf LowCost getrimmten Chips kann schon mal ein Mehrfaches als das spezifizierte drin sein. Vielleicht bauste auch mehrere EEPROM's ein und wechselst auf einen 'unverbrauchten' sobald der bisherige Schreib-/Lesehemmungen zeigt.
> Nein, mich hat nur interessiert ob es Speicher gibt der sowas abkann..
Ja gibt es, heisst Fram.
Alles hier genannte mit Batterie ist megagrosse kacke. Ausser man ist
kleiner Selbstbastler. Ueberlegt mal was eine Batterie euch fuer Freude
bei Entsorgung und Versand macht.
Olaf
Teo D. schrieb: > Erst ins EEPROM schreiben, wenn der Strom ausfällt und Von Dallas gibt es den DS89C450 (MCS-51 Derivat) mit Power Fail Interrupt. Der wird kurz vor dem Brownout getriggert und hat die höchte von 5 Prioritäten. d.h. kann alle anderen Interrupts unterbrechen. Die AVRs haben leider nur ein Brown Out Reset.
Nicht die Antwort auf Deine Frage, aber eine mögliche Lösung für Dein Problem wäre https://www.maximintegrated.com/en/products/analog/real-time-clocks/DS1682.html. Der kümmert sich um das Speichern bei Spannungsverlust selber (entsprechend beschaltet).
Peter D. schrieb: > P.S,: > Dallas heißt jetzt Maxim. "Jetzt" ist lustig. Dallas wurde vor 20 (!!!!) Jahren aufglöst. Ich bin immer wieder schockiert, auf welchem Stand die Leute hier im Forum teilweise sind! "Ich nehm nur die neuen 8051 Microcontroller von Phillips und Beyschlag-Widerstände!"
> Die AVRs haben leider nur ein Brown Out Reset. Ich hab den Leuten schon vor 20Jahren erzaehlt das AVRs Murks sind weil man da keine Interruptprioritaeten einstellen kann. Wollte nur keiner hoeren. :-D > "Ich nehm nur die neuen 8051 Microcontroller von Phillips und > Beyschlag-Widerstände!" Hier: http://www.on-bright.com/cn/english/products_mcu.htm Allerneueste chinesische MCS51. Demnaechst auch in deinem Mixer! :-D Olaf
Peter D. schrieb: > Die AVRs haben leider nur ein Brown Out Reset. Stimmt so nicht. Die neue AVR-1/0 Serie hat auch einen VoltageLevelMonior, der auch bei beginnender Unterspannung einen Reset auslösen kann. Ich habe aber mit folgender anderer Konfiguration gute Erfahrungen gemacht: Vcc via Schottky-Diode und großem Kodensator auf VCC-Pin von µC. Zusätzlich Vcc (abgezweigt vor Schottky) auf Spannungsteiler auf internen Komparator. Anderen Eingang vom Komparator auf interne Band-Gap legen. Spannungsteiler so einstellen, daß beim Unterschreiten eines kritischen Wertes der Interrupt kommt, aber durch den großen Kondensator noch genug Zeit bleibt, sicher ins EEPROM zu schreiben. Gruß Robert
Peter D. schrieb: > Die AVRs haben leider nur ein Brown Out Reset. Stimmt so nicht. Die neue AVR-1/0 Serie hat auch einen VoltageLevelMonior, der auch bei beginnender Unterspannung einen Interrupt auslösen kann. Ich habe aber mit folgender anderer Konfiguration gute Erfahrungen gemacht: Vcc via Schottky-Diode und großem Kodensator auf VCC-Pin von µC. Zusätzlich Vcc (abgezweigt vor Schottky) auf Spannungsteiler auf internen Komparator. Anderen Eingang vom Komparator auf interne Band-Gap legen. Spannungsteiler so einstellen, daß beim Unterschreiten eines kritischen Wertes der Interrupt kommt, aber durch den großen Kondensator noch genug Zeit bleibt, sicher ins EEPROM zu schreiben. Gruß Robert
Franz H. schrieb: > Nicht die Antwort auf Deine Frage, aber eine mögliche Lösung für Dein > Problem wäre > https://www.maximintegrated.com/en/products/analog/real-time-clocks/DS1682.html. > Der kümmert sich um das Speichern bei Spannungsverlust selber > (entsprechend beschaltet). Das sieht ja mal sehr interessant aus! Danke
Andras H. schrieb: > Grössere EEprom + Journaling system. Dann ist aber laut STM website (https://www.st.com/en/memories/standard-serial-eeprom.html) nach 100 Millionen Zyklen auch Schluss... bissel mehr wie 3 Jahre
Bob A. schrieb: > Die haben integrierte Lithium Knopfzellen > Daher auch ziemlich klobig Nein, EERAM ha exakt eben keine Batterie! Da ist nur ein externer Kondensator dran, dieser reicht gerade aus, um den SRAM-Inhalt ins EEPROM zu schreiben. Mit etwa max. 100µF, das kann daher ein Tantal, Elko oder Kerko sein.
Olaf schrieb: > Ich hab den Leuten schon vor 20Jahren erzaehlt das AVRs Murks sind > weil man da keine Interruptprioritaeten einstellen kann. Wollte > nur keiner hoeren. :-D Ich hatte das auch schon 1998 dem Haakon Skar gesagt, als die AVRs vorgestellt wurden. Auch hatten die ersten AVRs nichtmal ein ordentliches Reset, sondern nur ein Zeitglied (RC-Reset). D.h. bei langsamen VCC-Anstieg oder VCC-Einbrüchen startete der PC irgendwo mittendrin. Wenigstens das haben sie korrigiert.
yakman schrieb: > Bob A. schrieb: >> Die haben integrierte Lithium Knopfzellen >> Daher auch ziemlich klobig > > Nein, EERAM ha exakt eben keine Batterie! > > Da ist nur ein externer Kondensator dran, dieser reicht gerade aus, um > den SRAM-Inhalt ins EEPROM zu schreiben. > Mit etwa max. 100µF, das kann daher ein Tantal, Elko oder Kerko sein. da gings um die NVRAM von STM...
Bob A. schrieb: > ich hab mich gefragt welche Speichermethode man nehmen kann wenn man > einen sekundengenauen Betriebsdauerzähler realisieren will. > Bei der Methode "Zähler im RAM und bei Spannung weg ab ins EEPROM" bin > ich dann auch recht schnell gelandet. > Es blieb aber irgendwie die Frage im Hirn ob es keine andere Technik > gibt die für so eine Aufgabe verwendet werden kann. Problem anfassen bei die ursache, also trigger machen bei Spannung weg. Insbesonder wenn man eine loesung haette wobei man jede sekunde etwas wegschreibt zu eeprom/sd karte/anderes musz man darauf achten das power down nicht kommt gerade wenn man ans schreiben ist. Also einen guten definierten powerdown brauch man sowieso. Dann benutze dieser auch so effektiv wie moeglich. Patrick aus Niederlaende.
(prx) A. K. schrieb: > Bob A. schrieb: >> nach 100 Millionen Zyklen auch Schluss... > > Findet man das auch in den Datasheets? Habe bisher nichts gefunden, nur ein AN wo dann aber von 1 Billion cyles per device die Rede ist (Seite 6) https://www.st.com/resource/en/application_note/dm00158157-cycling-endurance-and-data-retention-of-high-density-eeprom-based-on-cmos-f8h-process-stmicroelectronics.pdf
Bob A. schrieb: > ??? schrieb: >> größerer EEPROM und nur wenige Daten an immer neue Adresse schreiben ud >> erst löschen wenn er voll ist... > > War auch ein Gedanke, aber mich hat dann die Größe "cycles per device" > eiskalt überrascht! Wenn es einen eiskalt erwischt, kann man ja mit kühlen Kopf drüber schauen, wie die Zahlen entstanden sind und was sie bedeuten. Das sind doch lediglich Garantiewerte für Worst Case szenarien. Da lohnt es sich nachzufragen wie man die Lebensdauer verlängern (life time prolonging/extending) kann, indem man den Speicher im Optimum betreibt. Das kann ein bestimmter Temperatur -und auch Spannungsbereich sein. Und natürlich kann man mit einer Prüfsumme Fehler entdecken mit einem Korrekturcode, -verfahren sogar partiellen Verlust entgegen wirken (wear leveling) https://docs.tibbo.com/phm/eeprom_life
NOR-Flash. Zum Beispiel verträgt der IS25LP256E mindestens 100000 Zyklen und hat 32MB. Wenn man tatsächlich jede Sekunde einen 32-Bit-Zählerstand schreibt, verbraucht man ziemlich genau 4 Zyklen pro Jahr. Die 32 Bit reichen für 136 Jahre, in der Zeit hat man 1/183 der erlaubten Schreibzyklen verbraucht. Aber kleinere NOR-Flash sind auch kaum billiger.
Bob A. schrieb: > ich hab mich gefragt welche Speichermethode man nehmen kann wenn man > einen sekundengenauen Betriebsdauerzähler realisieren will. Die eigentliche (wenn für manchen auch provokante) Frage ist, ob man es "muss" oder aus an den Haaren herbeigezerrten Gründen nur "will"... ;-) Mit einer ehrlichen Antwort auf diese Frage haben sich schon viele Probleme in Luft aufgelöst. Andreas B. schrieb: > Man zählt die Betriebssekunden im RAM und schreibt erst auf das EEprom > wenn ausgeschaltet wird. So macht man das im richtigen Leben: eine "Millisekunden-USV" für die Zeit, die man braucht, um das EEPROM zu beschreiben. Und als "Fallback" kann man noch zusätzlich alle 5 Minuten mal schreiben, damit man bei einem anderweitigen Problemfall nicht zu viel "Zeit verliert".
:
Bearbeitet durch Moderator
>Die 32 Bit reichen für 136 Jahre
Woher weis ich in welchen Zellen das aktuelle Datum steht?
Lothar M. schrieb: > Bob A. schrieb: >> ich hab mich gefragt welche Speichermethode man nehmen kann wenn man >> einen sekundengenauen Betriebsdauerzähler realisieren will. > Die eigentliche (wenn für manchen auch provokante) Frage ist, ob man es > "muss" oder aus an den Haaren herbeigezerrten Gründen nur "will"... > ;-) > > Mit einer ehrlichen Antwort auf diese Frage haben sich schon viele > Probleme in Luft aufgelöst. > > Andreas B. schrieb: >> Man zählt die Betriebssekunden im RAM und schreibt erst auf das EEprom >> wenn ausgeschaltet wird. > So macht man das im richtigen Leben: eine "Millisekunden-USV" für die > Zeit, die man braucht, um das EEPROM zu beschreiben. Und als "Fallback" > kann man noch zusätzlich alle 5 Minuten mal schreiben, damit man bei > einem anderweitigen Problemfall nicht zu viel "Zeit verliert". Lösungsansätze in die Richtungen habe ich ja schon gefunden. Sekundengenau wurde auch schon verworfen aber selbst bei 10 Sekunden wird es bei der geplanten Einsatzdauer eng... Wie gesagt blieb aber die Frage hängen ob es da noch andere Technologien gibt. Und dazu wurden hier ja MRAM, FRAM, NVRAM und EERAM genannt. Sowie den DS1682 elapsed-time-recorder, etwas was ich noch gar nicht kannte! Mal wieder viel gelernt, und es waren auch interessante "Abbieger" in die C51 und AVR-Welt dabei :) Insgesamt haben sich hier viele Lösungswege aufgezeigt (gut, die ganzen xxRAMse sind von der Umsetzung her fast identisch...) und allein deswegen hat sich die Diskutiererei hier gelohnt :) Am simplesten und billigsten erscheint mir die EERAM-Lösung
heinz schrieb: > Woher weis ich in welchen Zellen das aktuelle Datum steht? Die Zeit 0 gibts nich.....
Dann muß man aber den EPROM lesen bis man !=0 findet?
heinz schrieb: > Woher weis ich in welchen Zellen das aktuelle Datum steht? du verwendest nur 136 Jahre - 1 Sekunde und definierst "0xFFFFFFFF" als "Ungültig/Platzhalter" Beim Start suchst du nach dem ersten solchen Wert, das was im Ringbuffer davor steht ist dein Datum. Bei streng monoton steigenden Werten wie dem Sekundenzähler geht natürlich auch einfach eine Maximalwert-Suche über den ganzen Speicher. Und 0xFF... ist besser als 0 als Marker, weil das per Chip/Block-Erase sowieso rauskommt. d.H. du kannst schön die Lösch- und Schreiboperationen trennen.
:
Bearbeitet durch User
heinz schrieb: > Dann muß man aber den EPROM lesen bis man !=0 findet? Solche Daten sind ja von Natur aus sortiert, also funktioniert eine einfache binäre Suche.
Er koennte auch 32 Ferritkerne in eine 4 x 8 Speichermatrix faedeln. Das sollte dann bis zum Kontakt mit einem Schwarzen Loch funktionieren. Allerdings wuerde er bis dahin dann ein paar Kerne mehr brauchen damit es nicht ueberlaeuft. Fuer solche Speicherferrite gibt es sogar Ansteuer-ICs und Leseverstaerker!
Bob A. schrieb: > Am simplesten und billigsten erscheint mir die EERAM-Lösung Ein ausreichender Elko mit Diode davor ist sicher billiger. Ich hatte das mal mit 2x220uF vor dem Spannungregler (7805) (in Reihe mit 1N4148 und 100R) gemacht und vor dem Spannungsregler einen Spannungsteiler, dessen Unterspannung ich dann via Analogcomparator IRQ abgefangen hatte. Und ob das Ansteuern eines externen EERam o.ä. wirklich einfacher ist als in einem IRQ das interne EEprom zu beschreiben, sei auch nochmal dahingestellt.
Andreas B. schrieb: > Bob A. schrieb: >> Am simplesten und billigsten erscheint mir die EERAM-Lösung > Ein ausreichender Elko mit Diode davor ist sicher billiger. > Ich hatte das mal mit 2x220uF vor dem Spannungregler (7805) (in Reihe > mit 1N4148 und 100R) gemacht und vor dem Spannungsregler einen > Spannungsteiler, dessen Unterspannung ich dann via Analogcomparator IRQ > abgefangen hatte. > > Und ob das Ansteuern eines externen EERam o.ä. wirklich einfacher ist > als in einem IRQ das interne EEprom zu beschreiben, sei auch nochmal > dahingestellt. Wieso internes EEPROM? Davon war nie die Rede... Die Beschreibung deiner Lösung raff ich nicht, mir scheint da ist ein wenig vor und nach dem 7805 vertauscht oder so
Ich habe ein ähnliches Problem. Ich speichere das nur einmal die Minute ab. Diese Genauigkeit reicht bei mir. Und bei einem Eeprom mit 4Mio Zyklen (laut Datenblatt) komme ich dann auf ca 2700 Tage. Da das Ding aber nicht 24/7 benutzt wird, denn dann brauche ich keinen Zähler, sondern nur 8h am Tag, reicht das für 8000 Tage, also 22 Jahre. Was dann passiert ist mir egal, denn dann bin ich in Rente.
PittyJ schrieb: > Was dann passiert ist mir egal, denn dann bin ich in Rente. Geile Einstellung... Nie den Drang verspürt etwas gut zu machen?
:
Bearbeitet durch User
vn nn schrieb: > heinz schrieb: >> Dann muß man aber den EPROM lesen bis man !=0 findet? > > Ja. Ganz sooo einfach ist es dann in der Praxis, leider dann doch nicht. EEPROMs werden im Normalfall mit 0xFF gelöscht. Extra ne Null schreiben... eher nich. Meist steht aber einer der beiden höchstwertigen Bits zur Verfügung. Die im Normalfall ja meist außer range liegen und nie benutzt werden. -> Wenn größer(/kleiner) als erlaubt/möglich == Gelöscht/frei
Das geht mit einem handelsüblichen seriellen 32-kbit-EEPROM. Ein solcher Chip hat 4096 Byte-Speicherstellen. Davon verwendet man genau 3603 Stück mit folgender Aufteilung: Die unteren 3600 Bytes sind der Speicher für die Sekunden, der genau für eine Stunde reicht, und die restlichen drei Bytes speichern die Stundenzahl. Die Bytes im Sekundenspeicher nehmen nur die Werte 0 und 1 an (man kann auch andere Werte nehmen; sie müssen sich nur unterscheiden). Während einer geradzahligen Stunde wird in jeder Sekunde k die Adresse k mit einer "0" beschrieben und in jeder ungeradzahligen Stunde mit einer "1". Wie man sich überlegen kann, ist dann immer eine 0-1- oder 1-0-Grenze irgendwo im Sekundenspeicher, welche die aktuelle Sekunde markiert. Die Grenze wandert während einer Stunde von der Adresse 0 bis zur Adresse 3599 durch. Sobald eine Stunde vorüber ist, muss natürlich zusätzlich der Stundenzähler geupdatet werden (an immer denselben Adressen 3600 bis 3602). Solche billigen EEPROMs haben eine Haltbarkeit von typisch 1 Million Schreibzyklen. Da jede Zelle pro Stunde einmal beschrieben wird, geht der Chip frühestens nach einer Million Stunden kaputt (weshalb zwei Bytes für den Stundenzähler nicht genug wären). Das sind mehr als hundert Jahre: 1000000/(24 · 365) = 114. Will man die im EEPROM gespeicherte Sekundenzahl wissen, muss man die 0-1-oder 1-0-Grenze finden. Im einfachsten Fall liest man dazu die Sekundenzellen nacheinander aus - im worst case mit 3600 Lesevorgängen. Da lesen aber (im Gegensatz zum schreiben) schnell geht und ein Lesevorgang die Zellen nicht abnutzt, ist das unproblematisch. Nennt man übrigens "wear leveling".
LostInMusic schrieb: > Das geht mit einem handelsüblichen seriellen 32-kbit-EEPROM. > ... > ... > ... > Nennt man übrigens "wear leveling". Wenn aber wie z.Bsp beim M95320 (https://www.st.com/resource/en/datasheet/m95320-w.pdf) die Anzahl Schreibzyklen für jeweils 4er Blöcke gilt (s. 34), dann bleibt nur 1/4 davon übrig. Gut, der hat 4 Millionen, dann geht deine Rechnung wieder exakt auf ;-) Aber so Details muss man kennen und berücksichtigen... Ich tät mir ja wünschen dass das im DB prominenter dargestellt wird
Bob A. schrieb: > RTC mit Goldcap? So würde ich es machen. Beim Einschalten der Versorgungsspannung (zum Beispiel PCF8563) wird der 32 kHz Takt freigegeben und der Sekundenzähler läuft ohne ext. Eingriff munter weiter. Per IIC gelesen wird nur, falls die Betriebszeit verwendet werden soll. Das eigentliche Gerät braucht nicht einmal einen eigenen µC. Die ausgelesenen Werte können direkt über einen 7447 zur Anzeige kommen ;-)
Bob A. schrieb: > Wieso internes EEPROM? > Davon war nie die Rede... Wenn man Daten nonvolatil speichern will, dann wählt man am besten einen uC mit eingebauten Eeprom. Das macht das Leben bedeutend einfacher. > Die Beschreibung deiner Lösung raff ich nicht, mir scheint da ist ein > wenig vor und nach dem 7805 vertauscht oder so Nein, da ist nichts vertauscht. Die Spannungsüberwachung macht man sinnvollerweise (wenn vorhanden) VOR dem Spannungsregler. Dann hast Du nämlich noch mehr Energie im Elko gespeichert, als wenn Du das nach dem Spannungsregler prüfst. Wenn ich z.B. von 12V aus herunter regele, dann kann die Spannung am Elko von 11V (Bspl. Schaltpunkt) bis 3,3V abfallen bis nichts mehr geht. Dann kann der Elko kleiner ausfallen als wenn ich den Stromausfall erst hinter dem Spannungsregler merke. Dann habe ich nämlich nur noch die Differenz von 4,5 bis 3,3V wo ich in das EEprom schreiben muß. Anbei mal ein Schaltungsauszug wie ich das mal gemacht habe. Der Elko ist hier großzügig bemessen, da ich einige Werte in das EEprom zu schreiben hatte.
>Aber so Details muss man kennen und berücksichtigen...
Logisch :-)
Ein weiterer Aspekt ist auch noch interessant. Von den
Sekundenzähler-Bytes ist ja nur ein Bit - das sogenannte Sentinel-Bit
- relevant. Die restlichen sieben Bits kann man frei verwenden, z. B. um
darin den Wert eines kritischen Sensors oder dergleichen abzuspeichern
(muss halt nur immer ordentlich mit dem Sentinel-Bit zusammengeodert
bzw. ausmaskiert werden, was ja banal ist). Im Falle eines
Absturzes/Stromausfalls etc. enthält das EEPROM dann die Information
über diesen Wert nicht nur in der entsprechenden Sekunde, sondern auch
dessen History über die letzte Stunde hinweg. Das lässt je nach
Anwendung manchmal wertvolle Rückschlüsse zu.
Andreas B. schrieb: > ... > ... > ... > Anbei mal ein Schaltungsauszug wie ich das mal gemacht habe. Der Elko > ist hier großzügig bemessen, da ich einige Werte in das EEprom zu > schreiben hatte. Danke, jetzt hab ichs kapiert :)
Peter D. schrieb: > Von Dallas gibt es den DS89C450 (MCS-51 Derivat) mit Power Fail > Interrupt. Der wird kurz vor dem Brownout getriggert und hat die höchte > von 5 Prioritäten. d.h. kann alle anderen Interrupts unterbrechen. > > Die AVRs haben leider nur ein Brown Out Reset. Und fast alle haben mindestens einen Analog Comparator, der auch einen Interrupt auslösen kann. Damit kann man kinderleicht dieselbe Funktionalität bauen. Abgesehen von den Interruptprioritäten natürlich. Die gibt's nur bei XMega und den davon abstammenden neueren Baureihen. Aber naja, wer ISRs baut, die das Potential haben, bei einem geordneten Powerfail nennenswert zu stören, der hat sowieso was falsch gemacht...
c-hater schrieb: > Und fast alle haben mindestens einen Analog Comparator, der auch einen > Interrupt auslösen kann. Damit kann man kinderleicht dieselbe > Funktionalität bauen. Eben, und wenn man nicht ewig in den IRQs rumturnt, ist es auch kein Problem wenn er etwas später drankommt..
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.