Hallo Zusammen, ich hab mir nu mal den Bootloader von www.microsyl.com gezogen. Das Compiliern und laden in den uC haben funktioniert. Auch das bespielen des AVRS (ein mega32) mit dem Windowsprogramm funktioniert einwandfrei. Mein Problem ist aber: So wie ich den Code verstehe sendet der Bootloader am Anfang ein '>' Zeichen, wartet dein eine Zeit und nur wenn dann ein '<' am USART zurück kam sollte er Daten flashen, ansonsten das Programm am Adr 0x0000 starten. Wenn ich nu z.B. Hyperterminal offen habe und einen Rest mache kommen da aber erst mal ca. 30 s lang undefinierte Zeichen (vermutlich wegen der falschen Baudrate, der Bootloader stellt die ja selber ein) rein bevor mein Hauptprogramm startet. Das kann doch nicht richtig sein so, oder. Hatte schon mal jemand ein ähnliches Problem oder weiß auf die schnelle woran das liegen kann? Danke schon mal vorab und ein Grüßle vom Jochen
Das ist schon völlig richtig so. Der AVR sendet ein Zeichen so lange mit verschiedenen Baudraten an den PC, bis der PC das richtige Zeichen erkannt hat und dann mit der Programmierung anfängt. Mich hat das auch sehr gestört und habe deshalb im Bootloader eine feste Baudrate eingestellt. Gruß Thorsten
Halo Thorsten ;-) gerad im Moment flash ich meinen uC mit einer festen Baudrate. Und da das beim mega32 etwas länger dauert dacht ich mir ich schau mal noch mal schnell im Forum nach ob denn einer ne Antwort geschrieben hat. Also hab ich den "Fehler" ja doch noch selber gefunden ;-) aber trotzdem danke für die Antwort. Gruß Jochen
----------- Also hab ich den "Fehler" ja doch noch selber gefunden ;-) aber trotzdem ----------- ahjaa, und welcher Fehler wars nu? Vielleicht haben andere auch solche oder änliche Sorgen und Problemchen... Wäre jedenfall nett, wenn Du noch ein kurzes Statement abgeben könntest. AxelR.
ausnahmsweise steht schon imzweiten beitrag die lösung des problems :)
Hallo AxelR, da Du schon gleich auf mich losgehst ;-) eine kleine Anmerkung meinerseits: Wer lesen kann ist klar im Vorteil ;-) >Das ist schon völlig richtig so. Der AVR sendet ein Zeichen so lange >mit verschiedenen Baudraten an den PC, bis der PC das richtige Zeichen >erkannt hat ..... BTW. ich hab noch bei allen meine Beiträgen am Schluß dazugeschrieben was nu des Problems Lösung war ;-) Nichts für ungut und ein frohes Fest Jochen
ja, 'Tschuldigung. War wirklich nicht so gemeint! Habe ich ehrlich gedacht, der Schuh hätte noch woanders gedrückt, sorry! Ich habe bei mir zwei Hex-Files erstellt: eines für einen 3.69Mhz Quarz und eines für einen 4.9152Mhz. Die Baudrate steht dabei fest auf 9600Baud. Allerdings sende ich noch zwei,drei Zeichen vor dem ">", in meinem Fall "BTL" für Bootloader. Es kam einige Male vor, dass das erste Zeichen (">") nicht korrekt gesendet wurde, da die Betriebsspannung noch nicht richtig da war. Mit den FuseBits (Slow_rising_power) habe ich das zwar in den meisten Fällen hinbekommen, aber von 100 Geräten hast es bei Vieren/fünfen nicht gereicht. Sicher, man hätte auch eine Wait-Schleife nehmen können, aber so sieht man noch "BTL" vorweg auf dem Terminal. Jemand Interesse am Hex-File? Helfe ich gern aus. Nicht jeder hat den ImageCraftCompiler auf seinem System... (Baudrate und Quarzfrequenz bitte mit angeben) Viele Grüße Frohe Weihnachten Axel Rühl
Das mit der Baudratenerkennung ist schon ne feine Sache, wenn man z.B. keinen Quarz verwenden will. Allerdings ist die Brute-Force Methode mit dem wilden drauflos Senden nicht gerade der Hit. Besonders, wenn man auch in der eigentlichen Anwendung die UART benötigt, ist es blöd, wenn bei jedem Reset immer erst ein Haufen Müll gesendet wird und die Gegenstelle das mühsam erkennen und rausfiltern muß. Deshalb geht mein Bootloader (siehe Codesammlung) den umgekehrten Weg, der PC sendet was und der ATMega erkennt die Baudrate und antwortet, sobald er eine bestimmte Paßwortsequenz erkannt hat. Damit kommen sich Bootloader und Anwendung nicht in die Quere, wenn auch die PC-Anwendung was senden will, alles außer dem Paßwort wird ignoriert. Peter
Huhu Peter, hatte Dein Bootloader auch schon in Augenschein genommen. Der hat mir von der Funktionsweise auch besser gefallen wie der MegaLoad. Allerdings da das ganze als DOS-Kommadozeilen Tool läuft war ich mir aufs erste nicht so sicher ob das unter XP ohne Problem geht. Dazu hätte ich für den Mega32 auch noch mal über den Code schauen müssen da es meines Wissens nach nur für den 8er und 16er getestet war. Und dann kam noch dazu das www.avrfreaks.com z.Z. down ist. Aber ich werde ihn mir bei Gelegenheit auf jeden fall ansehen da mir wie gesagt die Funktionsweise noch etwas besser gefällt als die vom MegaLoad. @Axel Ich hoffe meinen Posting war zu entnehmen das ich das alles nicht so ernst gemeint habe (daher auch die ;-) ) Aber im Grunde kann ich schon verstehen worauf du hinaus wolltest. Ich hatte auch schon öfter mal das Problem das ich in einem Forum einen Beitrag gefunden habe wo es genau um das Problem ging das ich habe und dann stand da irgendwo nur mehr lapidar, aaah nu geht es. Ohne Infos dazu was den nu das eigentliche Problem war. Jochen
"Und dann kam noch dazu das www.avrfreaks.com z.Z. down ist." Bei Codebeispielen immer bis ganz nach unten lesen !!! Oftmals sind dann noch Fehlerkorrekturen oder Verbesserungen. Ich benutze das DOS-Programm unter Windows-NT4.0/SP6 und unter Windows-XP-Home/SP2 (über USB-RS232 Converter), da läufts. Peter
>Ich benutze das DOS-Programm unter Windows-NT4.0/SP6 >und unter Windows-XP-Home/SP2 (über USB-RS232 Converter), da läufts. Ah, gut zu wissen. >Bei Codebeispielen immer bis ganz nach unten lesen !!! Jo, aber das war soooo viel und da hatte ich keine Lust zu ;-) Aber wie gesagt ich werds mir bei Gelegenheit mal anschaune. Jochen
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.