Forum: Mikrocontroller und Digitale Elektronik AVR-Bootloader und dann ?


von Pit (Gast)


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

von Mike (Gast)


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.

von kojote (Gast)


Lesenswert?

Wir haben mal avr-dude 5.0 benutzt.

von Karl heinz B. (kbucheg)


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.

von Pit (Gast)


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

von Karl heinz B. (kbucheg)


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.

von Pit (Gast)


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?

von Atmega8 A. (atmega8) Benutzerseite


Lesenswert?

Schau mal bei
 http://www.matwei.de/doku.php?id=de:elektronik:usbisp

Der mathias weißner hat einen Solchen Chip FT245BM (USB -> Parallel)
von FTDI verwendet und hat in dem ATmega8 einen Bootloader, mit dem man
die "Firmware" über USB per AVRdude updaten kann.

lg

von Peter D. (peda)


Lesenswert?

@Pit

Wenn die FTDI-Chips als COM im Gerätemanager erscheinen, sollte es
gehen (nur auf COM1 ... COM4 einstellen).

Ich benutze den Bootloader am Notebook mit dem Reichelt USB/RS-232
Konverter (~10,-€) und da geht es jedenfalls.


Peter

von Pit (Gast)


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

von Nils (Gast)


Lesenswert?

Benötige ich für die Bootloader alle Leitungen der RS232 ??
Ich nutze bei einem Projekt nur Rx und Tx ??
Kann ich trotzdem den Bootloader verwnden ??

Viele Grüße
Nils

von Karl H. (kbuchegg)


Lesenswert?

GND wirst du auch noch brauchen :-)

Ja sollte gehen.

von Nils (Gast)


Lesenswert?

GND !!! Hätte ich auch noch im Angebot.
....aber so RTS, DTR, ARD, CDU und SPD brauche ich nicht, oder ??
Nur Rx, TX und GND

von Karl H. (kbuchegg)


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.

von Bratensosse (Gast)


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

von annerer (Gast)


Lesenswert?

verwendet selber die kombination FTDI232R mit tiny2313. da sind nur tx 
und rx angeschlossen, am FTDI kannst du die anderen leitungen ienfach 
offen lassen. eine beispielapplikation steht soweit ich weiß auch im 
datenblatt.

von Bratensosse (Gast)


Lesenswert?

danke annerer

im datenblatt waren mindestens immer CTS und RTS mit angeschlossen;-)

aber danke für die info:-)

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.