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
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.
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.
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
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.
@ 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?
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
@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
@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
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
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
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.