AVR-Bootloader und dann ?

Gast #353102
Lesenswert?

Hallo,

seit einiger Zeit beschäftige ich mich mit dem Thema Bootloader für die
AVR's. Dazu habe ich auch schon einiges gelesen (AVR Appnote, Peter
Danneggers Bootloader, Peter Fleurys Bootloader, Megaload usw.) und
hier im Forum die Threads mit diesem Thema verfolgt.

Eines habe ich jedoch nicht gefunden, oder ich sehe den Wald vor lauter
Bäumen nicht :-), und zwar mit welchem Programm ich die
Applikationssoftware in den AVR flashen kann. Wie ich den Bootloader
installieren kann weiß ich.
Mit welchen Programmen flasht ihr denn so? Und welche Erfahrung habt
ihr damit gemacht.

Danke schon mal im voraus.

Pit
Gast #353103
Lesenswert?

Moin,

beim AVR weiß ich das gerade nicht, da habe ich bisher noch keinen
Bootloader verwendet (kommt nocht :-).
Aber bei den Freescale Hybrid Processoren, die ich zur Zeit viel
verwende, habe ich mir ein kleines Delphiprogramm dafür geschrieben.
Ansonsten geht es aber auch mit jeden Termialprogramm. Am einfachten,
wenn das Programm direkt eine komplette Datei senden kann.
#353105
Lesenswert?

Beim Bootloader-Paket vom Peter Danegger ist ein
PC Programm dabei: PBOOT.EXE
Den Bootloader flasht du in den AVR. Fuses richtig
setzen nicht vergessen!
Dann wird der AVR resetted. Wenn der AVR startet wartet
er eine kleine Weile, ob an der Seriellen was daherkommt.
Das ist deine Chance: Du startest am PC PBOOT.EXE (kann man
auch schon vor dem Reset starten) und PBOOT.EXE überträgt
das gewünschte HEX-File an den AVR.
Gast #353106
Lesenswert?

Hallo Karl Heinz,

habe jetzt im Bootloader -Paket vom Peter Dannegger nachgeschaut und
auch die PBOOT.EXE gefunden. Habe das Programm mal geöffnet (ohne einen
AVR am COM1 zu haben) und es läuft auch.
Wenn ich aber versuche etwas einzugeben, habe da an den Datei-Pfad der
zu überspielenden .hex-Datei gedacht, dann schliesst sich das Fenster
sofort wieder.
Was mache ich da noch verkehrt? Oder habe ich die Funktionsweise der
PBOOT.EXE nicht verstanden?
Ich habe kurz in die PBOOT.C geschaut aber in der schnelle keinen
Hinweis gefunden wie ich die Datei angeben kann.
Oder muss erst ein AVR mit Bootloader an der entsprechenden COM
hängen?

Pit
#353107
Lesenswert?

Du musst das ganze von einer DOS-Box aus machen.
PBOOT möchte Command-Line-Argumente.

Ich bin jetzt nicht an meinem AVR-Arbeitsrechner.
Daher aus dem Gedächtnis:

Ruf mal PBOOT mit einem '?' auf. Oder '-?'
Da musste eine Hilfe angezeigt werden.

Mein Aufruf schaut so aus (wieder aus dem Gedächtnis)
PBOOT -b9600 -ptest.hex

Läuft das ganze dann, kannst du dran gehen den PBOOT
mal in deine Entwicklungsumgebung zu integrieren.
Gast #353108
Lesenswert?

@ Karl Heinz

dein Tipp die PBOOT.EXE mit einem ? aufzurufen war richtig. Die
Parameter die mit aufgerufen werden müssen, werden angezeigt.

Ich habe vor den FTDI-Chip FT232RL als Schnittstellen-Baustein zum AVR
hin einzusetzen (aus Ermangelung einer seriellen an meinem Notebook)
Damit ich den FT232 über USB ansprechen kann muss ich ja eine virtuelle
COM-Schnittstelle einrichten. Sollte mit der Software von FTDI kein
Problem sein, aber ich gehe mal davon aus dass ich dann nicht mehr mit
der PBOOT.EXE auf diesen Port zugreifen kann. Oder doch?
Gast #353111
Lesenswert?

@Peter

Danke für den Tipp, ich werde es dann  mal mit deinem Bootloader
ausprobieren.

Möchte mich auch bei den anderen für ihre Unterstützung  bedanken!

Und wer noch etwas zu diesem Thema beitragen möchte, nur raus damit
:-).

Pit
#353115
Lesenswert?

Studier doch einfach mal, wofür die anderen Leitungen
gut sind :-)

RTS/CTS   -  Request to send / Clear to send

    Diese Leitungen regeln ein Hardware-Handshake. Salopp gesagt
    teilt das eine Gerät dem anderen mit, ob es aufnahmebereit
    ist oder nicht. Es ist also die hardwaremässige Möglichkeit
    mitzuteilen: Warte mal, ich muss das was du mir bisher
    gesendet hast, erst mal verdauen.

Hardwarmässiges Handshake ist eine Möglichkeit, eine andere
ist softwaremäßiges Handshake. Anstatt eine Leitung zu ziehen,
schickt der Partner der den anderen zum kurzzeitigen Einstellen
der Sendung bringen möchte, ein spezielles Zeichen. Ein anderes
spezielles Zeichen teilt mit: Jetzt kanns weitergehen.

Und schliesslich kann man auch ohne Handshake fahren: Wenn
sichergestellt ist, dass der einlaufende Datenstrom ohne
Probleme verarbeitet werden kann, kann man auf Handshake auch
komplett verzichten.

Letztendlich hängt es also von der Übertragungsrate ab, ob
du Handshake brauchst oder nicht. Je höher die Übertragungsrate,
desto weniger Zeit steht zwischen 2 Zeichen zur Verfügung.

Ein Bootloader wird sich sinnigerweise ein Softwaremässiges
Handshake direkt ins Übertragungsprotokoll einbauen. Damit ist
er auf jeden Fall auf der sicheren Seite.

Die restlichen Leitungen haben mehr informativen Charakter.
Gast #856130
Lesenswert?

Um nicht ein neues Thema anzugreifen hänge ich mich mal mit dazu:-)

Falls ich keinen Handshake nutzen will (also nur RX, TX, GND) muss ich 
dann RTS/CTS auf ein bestimmtes Potential hängen? oder kann ich die 
einfach offen lassen. Im datenblatt steht leider nicht ob die intern 
schon "ge-pullup-t" oder "ge-pulldown-t" sind.

Speziell geht es um den FTDI232R

Grüße

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren