Forum: Mikrocontroller und Digitale Elektronik Probleme mit microsyl Bootloader


von Jochen (Gast)


Lesenswert?

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

von Thorsten (Gast)


Lesenswert?

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

von Jochen (Gast)


Lesenswert?

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

von AxelR. (Gast)


Lesenswert?

-----------
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.

von Tobi (Gast)


Lesenswert?

ausnahmsweise steht schon imzweiten beitrag die lösung des problems :)

von Jochen (Gast)


Lesenswert?

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

von AxelR. (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von Jochen (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

"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

von Jochen (Gast)


Lesenswert?

>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
Noch kein Account? Hier anmelden.