mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit microsyl Bootloader


Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ausnahmsweise steht schon imzweiten beitrag die lösung des problems :)

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.