hallo, hier (http://circuitcellar.com/avr2004/DA3149.html) wird beschrieben, wie mit hilfe der brown-out detection quasi bervor das licht endgültig ausgeht noch ins eeprom geschrieben wird. genauer gesagt benutzen sie einen analog comparator, das ist mir allerdings erst eben klargeworden (diffus beschrieben!?). sowas praktisches wäre auch für meine anwendung wünschenswert, also muß noch ein pufferkondensator mit in die schaltung: wie viel strom wird beim eeprom-schreiben benötigt, bzw. wie lange braucht man für eine handvoll bytes? danke!
Pro Byte mußt Du etwa 1,5ms reine EEPROM-Schreibzeit einkalkulieren. Für diese Zeit brauchst Du die volle Stromaufnahme des Prozessors die für die angegebene Takt-Frequenz gilt (also bis zu 10mA) zuzüglich dem, was die angeschlossene Schaltung verbraucht, falls Du diese nicht vorher mittels Fet oder Transistor abkoppelst. Das EEPROM funktioniert bis zur angegebenen Mindestberiebsspannung sicher, darunter kann´s zu Problemen kommen. Dein externer Brown-Out sollte also recht kanpp eingestellt sein, damit noch genug Zeit bleibt. Nun rechne mal ;-).
>>Byte mußt Du etwa 1,5ms reine EEPROM-Schreibzeit einkalkulieren Sicher? Ich habe hier 8,5ms, ist aber auch ein ATmega8. >>Dein externer Brown-Out sollte also recht kanpp eingestellt sein, damit noch genug Zeit bleibt. Oder wenn Du die Versorgung aus einer höheren Spannung erzeugst, kannst Du besser diese puffern. Beispiel: 5V aus Vs 24V mit StepDown LT1776, "BrownOut" bei 18V, die 5V liegen bis Vs 8V sicher an und sind dann schnell weg. Mit 100µ Pufferelko an Vs über Diode von übriger 24V-Seite entkoppelt reicht das für 150ms Pufferzeit, ohne dass ich an der 5V Seite noch was abschalte. Sven
hallo sven, wo steht denn das mit den schreibzeiten im datenblatt? und - dann lebt ja auch dein spannungsregler vom puffer, oder? kannst du mir erklären, warum das besser ist? weil der kondensator wegen der höheren spannung kleiner sein kann? aber dafür hast du doch die verluste des reglers.. und vielleicht hast du ja noch einen tipp übrig: meine schaltung und ein schrittmotor werden mit 12v gespeist, der 7805 für die schaltung wir mit einer diode vor verpolung geschützt. da ich die versorgungsspannung über den analog comparator ja in jedem fall vor meinem pufferkondensator prüfen muss, habe ich die wahl zwischen einer weiteren diode und dem damit einhergehenden spannungsabfall, kann aber direkt nach dem spannungsregler messen. oder ich messe direkt an den 12V, bzw nach der schutzdiode vor dem spannungsregler.. das wird wohl das beste sein, oder? hochohmiger spannungsteiler, und dann an AINx... ach sch****, ich hab gerade gesehen, daß dazu beide pins benötigt werden.. dann bleibt mir wohl nur ein externer komparator, oder aber ein spannungsteiler, der bei stromausfall schnell einen low-pegel am interrupt erreicht? gibt es noch andere möglichkeiten? danke!
aha, ich habs gefunden. für den 2313 auf seite 16: 3.4ms im atomic-mode. allerdings sinnvoller ist, nach powerup die eeprom felder zu löschen, und wenn der strom weg ist, nur zu schreiben, das dauert nämlich nur 1.8ms -> kondensator kann halb so groß sein. wieso muß denn der avr während des schreibens 100% an sein? doof ist nur, daß ich noch nicht genau weiß, wieviele bytes ich brauche. muß ich wohl auf nummer sicher gehen. wie kann ich denn gefahrlos die 12V versorgungsspannung prüfen, wenn dort auch der schrittmotor seinen Strom herbekommt? danke!
Mach´s doch so: 12V -> Diode -> fetter Kondensator -> 7805 -> Tiny2313. Mach an die 12V einen Spannungsteiler 4:1 und klemme einen Portpin vom ATTiny dran (vielleicht einen Interruptpin). Wenn nun die Spannung wegklappt, gehen die 12V zuerst krachen (es sei denn, da ist noch ein Riesenkondensator drin), die Spannung am Spannungsteiler sinkt und der ATTiny löst den Interrupt aus in dem Du die Schreibvorgänge machst, während der Pufferkondensator vor dem Linearregler noch ´ne Weile Saft liefert. Ohne Rechnen wird das freilich nichts, aber das sollte dann doch recht zuverlässig funktionieren.
>>wo steht denn das mit den schreibzeiten im datenblatt Für den ATmega8 auf Seite 19, Table 1. EEPROM Programming Time >>und - dann lebt ja auch dein spannungsregler vom puffer max 50µA für 7805, wenn ich nicht irre >>warum das besser ist? weil der kondensator wegen der höheren spannung kleiner sein kann Erstens. Deutlich kleiner. Und zweitens, weil der AVR länger mit konstanter Spannung versorgt wird und diese dann schnell einbricht. Keine unschönen Hystereseeffekte... >>aber dafür hast du doch die verluste des reglers.. Halten sich in Grenzen bzw. machst Du je nach Spannung locker wett. Und da Du sowieso einen Regler drin hast... >>kann aber direkt nach dem spannungsregler messen ??? Du meinst vor? Auf jeden Fall vor der Diode messen, Spannungsteiler 100k / 27k und kleinen Kondensator 1-10n vom AVR-Pin gegen GND. Die internen Schutzdioden schützen das Pin vor Verpolung, wenn der Widerstand davor hochohmig genug ist (eben 100k oder größer) >>AINx... ach sch****, ich hab gerade gesehen, daß dazu beide pins benötigt werden.. Du kannst mit dem Spannungsteiler direkt auf ein Pin gehen, der Schaltpegel liegt für Vcc 5V bei etwa 2,2V, die AVRs sind da recht tolerant. >>allerdings sinnvoller ist, nach powerup die eeprom felder zu löschen, und wenn der strom weg ist, nur zu schreiben, das dauert nämlich nur 1.8ms -> kondensator kann halb so groß sein. Gute Idee, musst nur sicherstellen, dass sie wieder beschrieben werden. Was passiert zum Beispiel bei einem Reset während des Programmablaufs (Programmer, Störung), dann wird gelöscht, aber nicht beschrieben. >>wieso muß denn der avr während des schreibens 100% an sein? Muss er? Aber ich glaub, ausschalten bringt nicht viel, da eh der EEPROM beim Schreiben das meiste bringt und der Takt laufen muss. >>wie kann ich denn gefahrlos die 12V versorgungsspannung prüfen, wenn dort auch der schrittmotor seinen Strom herbekommt? Mit obigem Spannungsteiler, brauchst aber definiertes GND-Potential. Ansonsten vielleicht mit Optokoppler und Zenerdiode davor, wenn Du eine Potentialtrennung möchtest. Sven
hallo ihr zwei, danke für die hinweise! es tut sich wieder eine frage zum eeprom auf: d.h. ich habe nur zwei möglichkeiten ?: - ich lösche den eeprom wenn ich zeit und strom habe (zu beginn meines programms), schreibe, wenn der strom ausfällt. aber wenn dann das programm abstürzt und einen reset auslöst sind meine daten weg. also entweder das passiert nicht, oder - ich benutze den 'normalen' atomic mode, brauch aber beim stromausfall mehr zeit, um meine daten zu schreiben -> größerer kondensator. AHA! An die abfallende Spannung bei den gepufferten 5V habe ich gar nicht gedacht. So, aber zur anderen Lösung und dem Spannungsteiler noch eine Frage, weil an den 12V auch ein Schrittmotor betrieben wird. Die Spulen werden zwar gegen GND mit Z-Dioden (62V) gesichert, der geplante MOSFET vertärgt laut Datenblatt 100V. Aber mein armer, kleiner Spannungsteiler am Interruptpin vom tiny - leiden die beiden nicht? Tausend dank für die Hilfe!
>>weil an den 12V auch ein Schrittmotor betrieben wird. Die Spulen werden zwar gegen GND mit Z-Dioden (62V) gesichert Warum nicht mit 25V-Surpressor-Dioden? >>armer, kleiner Spannungsteiler am Interruptpin vom tiny Ist es SMD? Dann mußt Du mal schauen, was der an Spannung abkann. Bei einem normalen 0,25W-Metallschicht hätte ich keine Bedenken, wenn er hochohmig genug ist. Wenn Du das Pin noch direkt mit einer Z-Diode schützen willst, bedenke, dass bei sehr kleinen Strom die Zenerspannung stark sinkt. Und wenn es Dich beruhigt;-) Atmel hat irgendeine App-Note (AN182) für einen Nulldurchgangserkennung, da liegt über einen Widerstand 1Mohm direkt Netzspannung am Pin. Sven
hi sven, von supressor-dioden weiß ich nichts, man riet mir zu z-dioden. ich habe ja keine ahnung :-( wenn also meine z-dioden kein fatales problem darstellen, würde ich die ganz gerne aus aufwandsgründen erstmal belassen. oder geht das nicht? na, ich gucke bei gelegenheit mal nach, was suppressor-dioden sind. ich hatte mehr bedenken wegen des µC..da ich schlecht abschätzen, bzw. raten kann, ob und wie die induktionsspitzen ausfallen.. so daß evtl. etwas mehr als verträglich durch den spannungsteiler an den pin vom tiny gelangt. aber ich werde den spannungsteiler beim layout berücksichtigen, und dann erstmal mit dem rest zu potte kommen. danke!
Sorge nur dafür, daß der Strom in den Prozessorpin nicht größer als 1mA werden kann, alles andere verfrühstücken die internen Schutzdioden. Wenn Du 100k Serie auf 22k nach Masse nimmst, mache ich mir keine Sorgen, und Du brauchst Dir auch keine zu machen.
:-) danke! ich habe gerade die zweite seite der platine geätzt, und bin einigermaßen zufrieden. es hätte schneller gehen können. und das toner-aufbügeln könnte noch 3 prozent besser klappen. und ich werde in zukunft erst ätzen und dann bohren. merk wenn beim bestücken und spannunganlegen nichts durchbrennt, melde ich mich dann demnächst mit software-fragen zurück, oder einer blinkenden led! hoffentlich heute abend .. leif
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.