Liebe Leute, ich versuche mich gerade mit einem Attiny84A an einem Betriebsstundenzähler, der auch die Intensität des Geräteeinsatzes aufzeichnet. Anbei der Schaltplan. Ich dachte daran, die mit dem Magnetometer grob gemessenen Stromverbräuche in 160ms-Taktschritten zu messen und in uint32_t aufzusummieren. Ich plane je einen Zähler für 0-10W, 10-20W, 20-40W, ..., 1280-2560W, >2560W, also insgesamt 10 Zähler á 4 Byte. Dazu kommt noch ein Good-Byte und ein uint16_t Zähler der Schreibvorgänge, also insgesamt 43 Byte. Diese Verbräuche müssen nun spätestens beim Abschalten des Geräts gespeichert werden. Dazu messe ich die Versorgungsspannung alle 250us und reagiere, sobald diese unter 2.65V fällt, indem ich die alle Peripherie abschalte, die Taktrate auf 500kHz senke, und dann die Verbräuche abspeichere. Nun beobachte ich bei meinen 200uF Pufferkondensatoren, dass nach Reduktion des Verbrauchs ohne Schreiben ins Eeprom die Spannung innerhalb von 70ms (die Zeit zum Eeprom-Schreiben von 43 Byte wenn man den Erase schon vorher gemacht hat) nur von 2.65V auf 2.4V fällt, mit Schreiben ins Eeprom die Spannung allerdings innerhalb von 55ms von 2.65V auf 1.75V fällt, woraufhin der Attiny in den Brownout geht. Daher meine Frage: Wo ist die Stromaufnahme des Attiny für das Programmieren des Eeprom spezifiziert? Kann ich eine Eeprom-Page (4 Byte) in einem Rutsch beschreiben? Machte es eventuell Sinn, die Daten stattdessen im Flash (trotz geringerer Anzahl Schreibzyklen) abzulegen (4.5ms pro 32 words = 64 bytes), und wie hoch wäre der spezifizierte Strombedarf beim Programmieren des Flash? LG, Sebastian
> 200uF [..] 70ms [..] von 2.65V auf 2.4V [..] 55ms von
2.65V auf 1.75V [..]
..also grob 0.8mA beim Nichtstun und etwa 3.6mA beim EEPROM-Schreiben.
Klingt plausibel. Also den Elko vergrößern, ggf. einen eigenen
Pufferelko für den µC verbauen und den Rest per Diode abklemmen.
Alles abschalten ist schonmal eine gute Idee,aber ob man wirklich soweit runtertakten muss müsste man mal prüfen. In der Regel ist es egal ob man lange wenig Strom oder kurz mehr Strom verbrät ;) Bei geringem Takt haben dann nur andere Verbraucher mehr Zeit den Puffer leer zu ziehen. Sind die Eeprom Schreibzeiten beim Tiny unabhängig vom Clock? Dann wäre langsam takten vielleicht eine Idee,obwohl es sicher auch eine Weile dauert bis der langsame Takt stabil genutzt werden kann...
g457 schrieb: > ..also grob 0.8mA beim Nichtstun und etwa 3.6mA beim EEPROM-Schreiben. > Klingt plausibel. Also den Elko vergrößern, ggf. einen eigenen > Pufferelko für den µC verbauen und den Rest per Diode abklemmen. Diese 100uF SMD-1206 MLCC's (http://de.mouser.com/Search/ProductDetail.aspx?R=JMK316ABJ107ML-Tvirtualkey57660000virtualkey963-JMK316ABJ107ML-T) sind allerdings relativ teuer, und 1210 wird auch nicht viel günstiger. Das Ganze soll ausserdem hinterher immer noch in einen Schuko-Stecker passen. Rest abklemmen hilft auch nicht weiter, der NRF24L01+ wird eh schon über einen Pin mit VCC versorgt und beim Fall der Versorgungsspannung als erstes abgeklemmt, der HMC5883L wird auch in den Idle-Mode versetzt (5uA), da bleibt nur der Attiny84a über. LG, Sebastian
Sebastian Wangnick schrieb: > Das Ganze soll ausserdem hinterher immer noch in einen Schuko-Stecker > passen. Zur Erklärung: Das Board soll 18mmx22mm gross werden, siehe Anhang. LG, Sebastian
:
Bearbeitet durch User
hmm... schrieb: > Sind die Eeprom Schreibzeiten beim Tiny unabhängig vom Clock? Dann wäre > langsam takten vielleicht eine Idee,obwohl es sicher auch eine Weile > dauert bis der langsame Takt stabil genutzt werden kann... Ja, 1.8ms pro Byte beim vom Erase gesplitteten Write, sowohl nach Datenblatt als auch beobachtet. Das Runtertakten geschieht mittels CLKPR, dem internen Prescaler, also ohne Wartezeit. LG, Sebastian
> Diese 100uF SMD-1206 MLCC's [..] sind allerdings relativ teuer ich hatte da eher sowas [0] aufm Taschenrechner stehen - wär sogar billiger. > Das Ganze soll ausserdem hinterher immer noch in einen Schuko-Stecker > passen. Die gibts auch in groß, nennt sich dann Wandwarze. Wenns platzmäßig vorn und hinten nicht passen will: Schon mal über einen batteriegestützen SRAM nachgedacht? Wär allerdings auch nicht unbedingt billig(er). HTH [0] http://de.mouser.com/Search/Refine.aspx?Keyword=UVZ0J222MPD
Sebastian Wangnick schrieb: > da bleibt nur der Attiny84a über. Es ist allerdings so, dass C3 und C4 vor dem Regler IC1 sitzen, also auf der 5.6V-Seite. Die beiden sind also bei 2.65V schon mehr als 50% entladen. Dazu kommen noch eventuelle Regler-Verluste -- allerdings kann ich auf dem Oszi kaum einen Spannungsabfall über den Regler erkennen. LG, Sebastian
Sebastian Wangnick schrieb: > Wo ist die Stromaufnahme des Attiny für das > Programmieren des Eeprom spezifiziert? Ok, habs gefunden: "Figure 21-129. Programming Current vs. VCC", zwischen 0.6mA (bei 1.8V) und 1.4mA (bei 2.5V) bei 25°C, unter 1mA bei 85°C. Gilt wohl für Eeprom wie Flash gleichermassen? LG, Sebastian
Etwas abseits der Frage aber noch immer Problembezogen. Ich würde die Daten umstrukturieren. Beispielsweise kann man die 16 höherwertigen Bits bei jeder Änderung sofort speichern. Da dies immer nur dann geschieht, wenn die unteren 16 bits überlaufen, kommen nur wenige Schreibvorgänge extra, im Mittel ca. alle drei Stunden ein Schreibvorgang. Dafür wird im Austausch beim Abschalten die zu schreibende Datenmenge ungefähr halbiert und somit die Zeit und notwendige Kapazität des Kondensators reduziert. Natürlich sind auch andere Unterteilungen zwischen in Echtzeit und verzögert geschriebenen Daten denkbar.
Hallo Sebastian Für deine Anwendung würde ich Fram verwenden. Sehr geringer Stromverbrauch und wesentlich schneller als ein Eeprom. Gruss Franz
Oder man speichert generell Zyklisch und lebt einfach damit, daß pro Ausschaltvorgang durchschnittlich ein halber Zyklus fehlt. Wenn die Zykluszeit in einem sinnvollen Verhältnis zur Dauer eines üblichen Arbeitsganges steht, sind die dadurch verursachten Abweichungen oft vertretbar, je nachdem wie genau es werden soll.
Carsten R. schrieb: > Ich würde die Daten umstrukturieren. Beispielsweise kann man die 16 > höherwertigen Bits bei jeder Änderung sofort speichern. Da dies immer > nur dann geschieht, wenn die unteren 16 bits überlaufen, kommen nur > wenige Schreibvorgänge extra, im Mittel ca. alle drei Stunden ein > Schreibvorgang. Dafür wird im Austausch beim Abschalten die zu > schreibende Datenmenge ungefähr halbiert und somit die Zeit und > notwendige Kapazität des Kondensators reduziert. Gute Idee, das könnte helfen. Carsten R. schrieb: > Oder man speichert generell Zyklisch und lebt einfach damit, daß pro > Ausschaltvorgang durchschnittlich ein halber Zyklus fehlt. Wenn die > Zykluszeit in einem sinnvollen Verhältnis zur Dauer eines üblichen > Arbeitsganges steht, sind die dadurch verursachten Abweichungen oft > vertretbar, je nachdem wie genau es werden soll. Das eher nicht. Interessant für die Wartung sind ja gerade die Zeiten höherer oder gar extremer Verbräuche, selbst wenn sie kurz sind. Ich habe jetzt mal alternativ das Speichern im Flash ausprobiert. Ich kann den Erase ja wieder schon beim hochfahren machen, so dass ich beim Powerdown nur boot_page_fill und dann einmal boot_page_write für eine ganze SPM_PAGESIZE von 64 Byte brauche. Der Vorgang ist in 5ms erledigt (in der Zeit könnte ich nur 3 Bytes ins Eeprom schreiben). Die Spannung fällt dabei von 2.68V auf 2.4V (sind das tatsächlich 9mA? Das passt aber nicht zum Datenblatt Figure 21-129???). Ich benutze zyklisch 16 Pages, also 1k vom Flash, so dass ich also garantiert 160000 Abschaltvorgänge überlebe. Ich könnte einen der 100uF (60ct) sogar durch einen 22uF (9ct) ersetzen und käme immer noch perfekt hin. LG, Sebastian
Hallo Franz, Franz Pürstinger schrieb: > Für deine Anwendung würde ich Fram verwenden. > Sehr geringer Stromverbrauch und wesentlich schneller als ein Eeprom. Interessant, danke für den Tipp, kannte ich noch nicht. Zum Beispiel http://www.cypress.com/?docID=47756. Allerdings aber a) eine weitere zusätzliche Komponente mit >18mm² plus Leitungsführung, b) >1 Euro. LG, Sebastian
Sebastian Wangnick schrieb: > Das eher nicht. Interessant für die Wartung sind ja gerade die Zeiten > höherer oder gar extremer Verbräuche, selbst wenn sie kurz sind. Was stark vom Nutzungsprofil abhängig ist. Ist es denn zu erwarten das unmittelbar vor dem Ausschalten, also im letzten noch nicht gespeicherten Zyklus, extreme oder zumindest hohe Lastbedingungen die Regel sind? Wenn ich beispielsweise mit einer Hilti arbeite, liegt die bei mir in der Regel doch schon einige Minuten herum bevor ich sie Ausstöpsel und einpacke. Wenn ich ein Gerät Beispielsweise durchschnittlich 3 Stunden am Stück brauche und alle 5 Minuten speichere, so würde ich im Mittel 2,5 Minuten der 3 Stunden an Daten verlieren und zwar gerade die letzten Minuten und nicht irgendwelche. Sebastian Wangnick schrieb: > Ich benutze zyklisch 16 Pages, > also 1k vom Flash, so dass ich also garantiert 160000 Abschaltvorgänge > überlebe. Ich könnte einen der 100uF (60ct) sogar durch einen 22uF (9ct) > ersetzen und käme immer noch perfekt hin. Das ist schon eine Art wear leveling. Aber die 160000 sind nicht garantiert. Es gibt auch Montagszellen. Man kann aber im Durchschnitt erwarten daß diese Größenordnung ungefähr eingehalten wird.
Man kann auch bei 0 Watt Messwert einen Autosafe hinzufügen. Meistens schaltet man das Gerät vor dem Ausstöpseln ab, es sei den das Kabel verheddert sich und stöpselt sich selber aus oder so.
UUUUUUUUUUUUUUUUiiiiiiiiiiiiii. Keine Netztrennung !!!
Seppi schrieb: > UUUUUUUUUUUUUUUUiiiiiiiiiiiiii. Keine Netztrennung !!! Doch. Die ganze Platine kommt wie gesagt in einen Schuko-Stecker, insofern ist der Benutzer von der Netzspannung auf der Platine getrennt. DIe Platine wird ausserdem nach der Bestückung mit Isolierlack behandelt und/oder mit einer Silikonhülle umspannt. LG, Sebastian
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.