Hallo Seit einer Stunde habe ich ein riesen Problem mit meinem Roboter. Alles lief wie gewohnt, dann las ich noch kurz das EEPROM mit AVRDUDE aus - die Daten waren allerdings irgendwie seltsamer Müll, lediglich die ersten Bytes waren so wie erwartet (und so wie bisher eigentlich normal). Danach funktionierte gar nichts mehr. Es scheint, dass sich der ATMega8 ständig resettet. Wenn ich hingegen die Servos entferne, entschärft sich das Problem ein bisschen. Sind sie dran, so geht es manchmal - sie drehen allerdings in die falsche Richtung und die resetterei geht wieder los, wenn der Annäherungssensor ausschlägt. Das alles ist nur "ungefähr", "manchmal", "vielleicht" - ich habe den Fehler weder genau beschreiben noch eingrenzen können. Woran könnte diese Störung liegen? Wie könnte ich den Fehler weiter eingrenzen? Gruss Michael
...Leistung und Logik Versorgungsmäßig getrennt... Abblocken, abblocken, abblocken... Filtern... Sternförmige Masseführung... räumliche Trennung... wenn das nicht hilft, müssen dann die Experten ran.
Hallo, wie ist der Reset-Pin beschaltet, 10k nach VCC und 47nF nach GND? es grüsst, Arno
denke auch wenn die Servos in Aktion treten nehmen Sie den AVR den Saft weg. Würde also vor dem 7805 nen fetten Elko parallel schalten und davor noch eine Diode so da der Saft des Elkos nur zum 7805 gelangen kann und nicht zu den Servos. Die Servos bräuchten aber evtl. auch eine etwas stabilere Spannungsversorgung.
Hallo Ja, ich habe auch in diese Richtung gedacht. Nur - vor einiger Zeit hatte ich das Problem schon, ich habe dann die Servos direkt an den Akku angeschlossen und zwischen Vcc-Akku und Vcc-Steuerung eine Schottkydiode eingebaut sowie zwischen Vcc-Steuerung und GND einen fetten 470uF Elko. Danach lief alles problemlos - bis gestern nach dem Auslesen des EEPROMs. Und die Störung war nicht dieselbe wie damals und auch wesentlich weniger konstant. Die Beschaltung der Steuerung ist analog zur Beschreibung im Tutorial - (Reset: 10 kOhm an Vcc, 47pF an GND). Könnte auch das Schreiben des EEPROM hier Probleme machen? Ich hatte teilweise Probleme, nachdem ich das EEPROM-Datenlogging hinzugefügt hatte. Erst als ich den EEPROM-Ready-Interrupt entfernte, ging es wieder. Oder könnte auch die Hardware beschädigt sein? Allerdings: Ich kann den Chip auslesen, kann ihn beschreiben, das Programm startet, die Sensor-Auswertung scheint zu funktionieren. Jedoch - im EEPROM steht ab Byte 2 nur noch Müll. Sorry wenn meine Beschreibung etwas konfus ist, sobald ich mehr herausfinde, werde ich es sicher auch posten... Gruss Michael
Nein, Leute, an der Stromversorgung liegt dieses Problem nicht. Selbst wenn ich die Servos abhänge bleiben die ständigen Resets bestehen. Das geht immer dann los, wenn die Sensoren ausschlagen (Spannung am ADC bei 8 Messungen in 8 ms jeweils unterschiedlich hoch) - und dann wird jeweils auch etwas ins EEPROM gespeichert. An den Sensoren liegts kaum, die laufen ständig und wenn sie ausschlagen, dann ist der einzige Unterschied ein paar wenige Bit im ADC.
Stimmt leider nicht was ich vorhin gesagt habe. Es sind definitiv Resets und zwar dann, wenn ich die Servos anschliesse, sonst nicht. Nur verstehe ich einfach nicht, warum das plötzlich nicht mehr gehen sollte. Diode kaputt? Elko kaputt? Resetpin irgendwie überempfindlich? (-> Wie könnte ich das testen?)
Wenn ich Steuerung und Servos an eine separate Stromversorgung anschliesse, dann geht es. Mit meiner - bisher funktionierenden - Stromversorgung aber nicht mehr, bisher ging es aber sehr gut. Meine Stromversorgung: Vcc (Akku) --- Vcc (Servos)----Schottkydiode(Bat43)-----Vcc (Steuerung) | Elko 470 uF | GND (Akku) -------------------------------------------------- GND Was könnte man da noch verbessern? Oder was könnte daran kaputt sein? Ist es wahrscheinlich, dass der Elko oder die Diode unter diesen Bedingungen kaputt gehen könnte? Bzw. wie kann man diese Komponenten testen? (Oszi hab ich leider keines, aber eine einfache Schaltung, mit der ich Spannungen zwischen 0 und 5 V als Kurve auf dem PC ausgeben kann.)
Auf welchen Spannungslevel hast du die Brownout Erkennung gestellt? Wenn die zu "früh" einsetzt, könnte das noch ne Möglichkeit für deine Aussetzer sein (ich vermute mal, daß du 4 NC oder NiMh Zellen verwendest). Bei mir rennt nen Mega8 (ohne "L") noch problemlos mit ca. 3V @ 8MHz, aber natürlich erst nach dem anpassen der Brownout Fuses ;-)
Könnten diese Fuses auch beim Auslesen des EEPROMs versehentlich ein bisschen ins Wackeln geraten? Weil wie gesagt - bis zu besagtem Auslesen hat es problemlos funktioniert. Die absoluten Spannungstiefs dürften bei etwa 4 V liegen wie ich jetzt mit meinem "PC-Oszi" herausgefunden habe. Ja, Akku ist 4 Zellen (NiMh oder NC wüsste ich jetzt nicht mal), 4.8 V. Vielleicht werde ich dann morgen noch im Modellbauladen vorbeisehen und mir einen Akku mit ca. 6 Volt besorgen - wenn sich das Problem nicht lösen lässt.
Bei 4V dürfte der Brownout in der Standardeinstellung zuschlagen (siehe dazu das Mega8 Datenblatt unter Resetquellen). Versuch doch mal Brownout entweder auszuschalten oder auf irgendwas bei 3V zu setzen.
Das war's! BODLEVEL gelöscht, Problem gelöst. Vielen, vielen, vielen Dank! Ich wäre wohl zu Tode verzweifelt. Jetzt aber doch noch eine ernsthafte Frage: Was war hier passiert? Das letzte mal hatte ich folgende Fuses gesetzt: BOOTSZ1 BOOTSZ0 SUT0 CKSEL3 CKSEL2 CKSEL1 als ich vorhin die Fuses auslas, waren folgende zusätzlich gesetzt: BODLEVEL BODEN SUT1 Habe diese Fuses irgend ein Eigenleben, bricht dort manchmal ein bisschen die Anarchie aus? Um das Problem zu lösen, habe ich jetzt lediglich BODLEVEL gelöscht. Wann sollte man BODEN ausschalten, wann eher nicht? SUT1/SUT0 sollte wohl keinen zu grossen Unterschied machen, da es ja lediglich einen kaum merkbaren Unterschied in der Startu-Up-Time gibt. Wie würdet ihr die standardmässig setzen?
BODEN sollte aktiv sein, wenn man nicht sicherstellen kann, daß die Versorgung stabil ist (also ab und an mal einbricht und man verhindenr möchte, daß der Controller evtl. in undefinierten Zuständen hängenbleibt). Ich würde BOD auch aktiv lassen, aber auf was bei 3V setzen (datt geht), damit der Mega sicher in einen Reset geht, sobald dein Akku runter ist ohne den Akku gleich zu himmeln (ich vermute mal, daß deine sonstige Hardware so gut wie nix mehr ziehen kann, sobald der Mega im reset ist, oder?) Welches Flashtool benutzt du? Hast du jeweils vorm schreiben der Fuses die alten Werte vom Mega gelesen? Daß die Fuses nen Eigenleben zeigen, ist zumindest bei mir noch nicht vorgekommen (mal von einigen "Fehlgriffen", die ich per Galep3 beheben konnte, abgesehen)
Hallo So wie ich das interpretiere, ist bei gesetztem BODEN der Brown-Out-Detektor eingeschaltet und bei gleichzeitig gelöschtem BODLEVEL der Brown-Out auf 2.7 V. Ich denke, das ist etwa in deinem Sinn, oder? Zuerst habe ich yaap auf Windows 95 verwendet (damals, als ich das bisher einzige mal die Fuses für den externen Oszillator gesetzt habe). Danach Ponyprog auf XP, nur zum flashen und EEPROMen. Bevor der Fehler auftrat, einige male AVRDUDE, nur zum EEPROMen. Unmittelbar bevor der Fehler auftrat, wurde AVRDUDE per Kommandozeile aus einem Java-Programm heraus aufgerufen - zum Auslesen des EEPROMs. Gruss Michael
ich würde auch schauen die Ursache zu beseitigen und nicht das Symthom. Das nächste haste dann vielelciht 2 oder mehr Fehlerquellen und dann ist es noch schwieriger. Meine Möglichkeit mit dem Elko und der Diode bringt ja nur Abhilfe bei kurzzeitigen Einbrüchen z.b. beim Anlauf der Servos, im Dauerbetrieb wird der Elko genauso leer wenn dein Netztrafo zu schwach ist. Wieviel Leistung wird eigentlich über den 7805 gezogen? Du könntes auch eine Diode vom Reglerausgang zum Reglereingang reinmachen und nach dem Regler noch einen größeren Elko. Die Diode bewirkt das eine Spannung über 5V Volt zum Reglereingang geleitet wird und das sich der große Elko nciht über den Regler entlädt wenn man die Versorgungsspannung Ausschaltet oder diese Am Regler eingang geringer als am Reglerausgang ist (z.B. beim Spannungseinbruch). Kenn mich mich Servos nicht aus, aber vielleicht würde hier eine Entstörung direkt am Servo auch was bringen. Ein kompletter Schaltplan würde schonmal ne Menge helfen. Zeichne ihn doch mal auf und scanne ihn ein, falls du keinen Schaltplaneditor hast.
@ mr.chip: Wenn ich Deine "Skizze" richtig interpretiere, gehst Du mit einer(!!!) Versorgungsleitung vom Akku zu den Servos und von dort aus weiter zum Controller. Ich würde Dir raten, die Versorgungsleitung zum Controller NICHT hinter den Servos, sondern direkt am Akku abzugreifen (ggf. Spannungsregler mit einplanen). Der unter Last entstehende Spannungsabfall auf der Leitung zwischen Akku und Servos geht Dir dann nämlich auch am Controller ab. Wenn Du einen Akku mit 6V Nennspannung einsetzen willst solltest Du dir auch dringend Gedanken zum Thema Spannungsregler machen. Ein frisch geladener 6V Akku hat in der Tat mehr als 6V Leerlaufspannung. Sieh einfach mal im Datenblatt Deines Controllers nach, welche Betriebsspannung zulässig ist (Recommended Operating Conditions). Gruß Magnetus
Ich werde die Stormversorgung auf jeden Fall nochmals überdenken. Was haltet ihr davon: 6 V Akku, nach folgender Skizze beschaltet. (Sobald ich mal Zeit habe, hole ich mir ein Schaltplan-Programm...) Vcc Akku---------------- 7805 (IN) 7805 (OUT)-Diode---- Vcc Logik | | | Servo 470uF 470uF | | | GND Akku----------------7805 (GND)---------------------- GND Logik
-------------Vcc Akku-----7805--Diode----------Vcc Logik | | | | Servo 470µF | 470µF | | | | --------------cc GND---------------------------GND Logik
@mr.chip / @Marco Schwan: Bitte denkt daran, dass über den 7805 von haus aus bis zu 2V (@1A) abfallen. Sprich: der Spannungsregler ist nicht in der Lage eine Eingangsspannung, die kleiner als 7V ist, zuverlässig auf 5V zu bringen. Über die Diode habt Ihr dann auch noch mal einen stromabhängigen Spannungsabfall zu berücksichtigen. Leider kann ich Euch jetzt aus dem Stegreif auch keine Alternativlösung anbieten. Vielleicht kann Euch noch ein anderes Forumsmitglied brauchbare Tips geben? Gruß Magnetus
Hallo, ein Low Drop Spannungsregler könnte gehen. Der LM2940 ist so ein Regler, den gibt es zB. bei Reichelt. Es grüsst, Arno
Hallo Ich weiss echt nicht mehr recht... Der Roboter läuft absolut anständig jetzt, darum denke ich nicht, dass ich die Stromversorgung gross ändern werde. Da es aber ein erstes Versuchsmodell ist und ich daher laufend wieder kleine Unzulänglichkeiten feststelle, werde ich eventuell dann sowieso ein völlig neuer Roboter bauen - dann sicher auch mit solider Stromversorgung. Gruss Michael
Also 6V ist wirklich etwas knapp bemessen, wenn die Schaltung nach dem 7805 sehr wenig Strom benötigt könnte es gut gehen. Also nun hätte ich folgende Vorschläge 1. Akkupack mit 7,2 oder 9,6V nehmen? 2. Low-Drop Spannungsregler( wie schon gesagt) 3. selbst wenn du nen Low-Drop Spannungsregler verwendest und dort nen Elko am Eingang mit dran hast kannste noch vor dem Elko eine Diode reinmachen damit die Servos nicht den Elko für den Spannungsregler leersaugen sondern nur ihren eigenen großen Elko(denke da eher an 4.700µF oder mehr)
http://www.kreatives-chaos.com/index.php?seite=schaltnetzteil oder das hier hat ein viel bessern Wirkungsrad als ein Festspannungsregler.
Hallo Nochmals zur Stromversorgung: Ich hab versehentlich einen Elko 1000uF für 16 V bestellt, das Ding hat etwa die Dimensionen einer AA-Batterie, nur etwas kürzer. Sollte aber Problemlos in einer 5V-Schaltung verwendbar sein, oder? Gruss Michael
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.