Auszug aus dem Datenblatt eines ATMEGA 64: • Operating Voltages – 2.7 - 5.5V for ATmega64L – 4.5 - 5.5V for ATmega64 • Speed Grades – 0 - 8 MHz for ATmega64L – 0 - 16 MHz for ATmega64 soweit so gut, aber wenn ich den internen BOD benutzen will, kann ich ihm entweder auf 2,7 oder auf 4 Volt setzen. Das heisst, der Bereich von 4 bis 4,5 Volt ist nicht definiert. Da ich oft mit 16MHz arbeite (DMX-Datenverarbeitung), erscheint mir das ganze suspekt. Hat einer von euch eine Lösung ohne externen Spannungsmonitor? MW
Für 16MHz solltest Du schon min. 4,5V verwenden, sodaß BOD mit 4 V ausreicht. Oder Du stellst BOD auf 2,7 V und nimmst eine lange Einschwingzeit für den Quarz, die deutlich länger ist als der Anstieg der Versorgungsspannung. Eine weitere Möglichkeit wäre der Watchdogtimer, der schon beim Einschalten aktiv ist (fuses).
Die Brown-Out-Funktion ist nur bei den 'L'-Typen von Bedeutung, da der µC ohne 'L' <4.5V nicht mehr sicher läuft, falls überhaupt. Die Fuses können trotzdem gesetzt und gelöscht werden, die Funktion ist auch in Betrieb, nur sollte man niemals in den Bereich von 4V kommen, da das Programm sonst Mist machen könnte (internes SRAM). Um sämtlich Aus- und Eingänge <4V hochohmig zu schalten und den Prozessortakt zu stoppen ist die Funktion jedoch sinnvoll um weitere Schäden zu vermeiden, falls bis dahin noch nichts passiert ist.
Eben das ist doch der Haken, ich benutze keine L-Typen. Alle bekommen 5V Futter. Aber zwischen 4 und 4,5 Volt ist ein undefinierter Bereich. MW
Probiere doch empirisch aus, wie weit herunter die Controller sicher laufen. Bei meinen 5V-Controllern nutze ich immer den 4V Brownout und hatte auch bei Batterie-Geräten noch nie Probleme. Solange Du nicht für die Industrie oder andere sicherheitsrelevante Applikationen baust...
Wenn man im Datenblatt bei den Stromverbrauchskurven schaut, dann findet man dort, dass 16MHz bei 4V ok sind.
Man kann auch die nicht L typen bei weniger als 4,5V betreiben ... es ist nur nicht garantiert, dass sie dann noch laufen. Die L Typen sind einfach nur anders getestet, prinzipiell aber die gleichen Bauteile. Mein mega 8 hier läuft bis 2,3V problemlos (hab ich einfach mal aus spass getestet).
@ TravelRec., doch ich baue industrielle Steuerungen. Ich habe in der Richtung auch noch keine Aüsfälle gehabt (und wenn, hab ich es nicht bemerkt, da ein solches Phänomen nur in der Werkstatt nachvollziehbar wäre, evtl). beim Studium der Datenblätter bin ich darauf gestoßen. Atmel hätte den internen Spannungsmonitor auch auf 4,5 Volt trimmen können. Und so Aussagen, wie ...hat bei mir auch mit den und den Parametern funktioniert... gelten einfach nicht, da ja auch ein weiter Temperaturbereich abgedeckt werden muss. Was in der guten (Bastel)stube bei 25°C funktioniert, mus nicht zwangsläufig (Langzeit)stabil bei +85°C funktionieren. Aber da keiner von euch jemals Probleme mit dem BOD hatte, werfe ich die Geschichte in die gleiche Tonne, wo die ganzen TBDs gelandet sind. Dank an alle. MW
@guru: Der ATMega162 ist ja auch von 2,7-5,5 V und bis 16 MHz spezifiziert! Ich kann Michaels Problem gut nachvollziehen. Es geht ihm ja auch nicht primär um eine Ersatzlösung (da gibts natürlich ne ganze Reihe, von denen die mit Komparator sicher die einfachste wäre) sondern darum, dass die BOD bei bestimmten µCs ziemlich "idiotisch" implementiert ist. Und das ist eine Sache, die ich selber auch nicht nachvollziehen kann. Eine BOD soll in der Lage sein, einen Zustand, der lt. Spezifikationen gerade eben noch nicht kritisch ist, zu erkennen und entsprechende Aktionen einzuleiten. Im genannten Fall jedoch tut sie das nicht, da der Zustand, bei dem sie anspricht, bereits außerhalb der Spezifikationen liegt. Und nur das zählt! In den meisten Fällen kann man zwar sicher den genannten µC auch mit 4 V @ 16 MHz noch stabil betreiben, aber im Datenblatt steht als garantierter Funktionsbereich eben 4,5-5,5 V.
Vorher bei den AT90S... habe ich immer einen Spannungsmonitor von Dallas eingesetzt (DS1813-10). Ich hoffte mir, den sparen zu können. MW
Habt ihr schon mal nachgesehen, wie gross der Toleranzbereich des internen Referenzspannung ist? Irgenwoher müsste der Sollwert "4,5V" ja kommen. Rechnet den ARef-Bereich mal auf ~4,5V hoch und es wird rasch klar, dass euer Ziel schlichtweg nicht erreichbar ist. Wenn ein AVR bei 4,5V zuverlässig funktionieren soll, dann muss der Brownout zuverlässig darunter liegen oder er ist sinnlos. Folglich liegt er im Regelfall ziemlich deutlich darunter und es bleibt zwangsläufig eine Lücke.
...ich setze auch AVRs in industriellen Anwendungen ein. Um solchen Problemen aus dem Weg zu gehen, verwende ich IMMER einen externen Reset-Baustein (LM809 oder so'n Pfennigteil - gibt's in mehreren Spannungsabstufungen). Damit sind solche Probleme vergessen. Ebenso ist selbst der billigste (und damit ungenaeste) LM4040 noch um Klassen genauer als die interne Referenz der AVRs. Wenn man messen und nicht nur schätzen will, ist es eine gute Designmassnahme, den im Layout mit vorzusehen. Selbst bei meinem kleinen Proto-Board (µBrain88) habe ich die mit drauf.
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.