Hi zusammen, ich habe mich heute durch das Bootloader Tutorial gearbeitet und stecke am letzten Schritt des ganzen Tutorials fest. (hier der Link: www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anl eitung) Die Verbindung über Putty steht, ich empfange auch die Nachrichten vom IC und auf meine Eingaben wird korrekt reagiert. Alle Tutorial Schritte zuvor haben funktioniert. Wenn ich nun allerdings die HEX-File dort mit der rechten Maustaste hineinkopieren soll, erscheinen bei mir zunächst die im Tutorial beschriebenen Punkte, die Zeile aus Punkte wird aber nicht mit einem "p" beendet (was die erfolgreiche Übergabe der Zeile bedeutet, sondern es erscheinen danach nur noch "#". Die HEX-File habe ich aus einer .txt Datei erstellt, dessen Endung ich geändert habe (also die letzte Endung ".txt" ist geändert, die in Windows ja je nach Einstellung verborgen wird --> ist also nicht der Fehler "filename.hex.txt). Ich habe es auch mit HTerm versucht die File zu senden und erhalte die gleiche Rückmeldung. Wenn ich Zeile für Zeile einzeln rein kopiere, erhalte ich zumindest nach der ersten Zeile ein "p", danach dann aber auch nicht mehr... Woran kann es liegen? Gruß, Durokh
Ralf S. schrieb: > Woran kann es liegen? Sind sich dein Bootloader und dein Terminalprogramm über das Zeilenendezeichen einig?
Hm, also ich habe den Code aus dem Tutorial natürlich erstmal so übernommen, wie er da steht und habe eine HEX-File erstellt, die ebenfalls Copy-Paste den Text enthält. Hier mal exemplarisch: :100000002CC046C045C044C043C042C041C040C0EF :100010003FC03EC03DC03CC03BC03AC039C038C004 :1000200037C036C064C08FC033C032C031C030C0AA :100030002FC02EC048696572206973742064617393 :1000400020416E77656E64756E677370726F67724C Somit gehe ich davon aus, dass der das auch korrekt interpretiert. Ich korrigiere allerdings meine Fehlerangabe etwas: MAL kommt er über eine Zeile auch hinaus, ich erhalte also ein "p", danach bricht er irgendwo mittendrin ab...
>Die HEX-File habe ich aus einer .txt Datei erstellt
Und was steht da drin?
Aus dem Tutorial: :100000002CC046C045C044C043C042C041C040C0EF :100010003FC03EC03DC03CC03BC03AC039C038C004 :1000200037C036C064C08FC033C032C031C030C0AA :100030002FC02EC048696572206973742064617393 :1000400020416E77656E64756E677370726F67724C :10005000616D6D2E2E2E0D0A000011241FBECFEFF4 :10006000D4E0DEBFCDBF11E0A0E0B1E0EAE6F2E00F :1000700002C005900D92A434B107D9F711E0A4E4B1 :10008000B1E001C01D92A938B107E1F702D0EBC081 :10009000B7CFEF92FF920F931F93CF93DF9383E33A :1000A00090E07BD0789484E390E0D0D088ECE82E88 :1000B000F12C00E018E18BD0EC0190FDFCCF8236F2 :1000C00069F480E091E0B6D080E197E2F7013197E2 :1000D000F1F70197D9F7F8010995EDCF8CE191E09F :1000E000A9D08C2F91D081E491E0A4D0E4CF1F92CD :1000F0000F920FB60F9211242F938F939F93EF932C :10010000FF939091C0002091C600E0918601EF5FBF :10011000EF7180918701E81711F482E008C0892F00 :100120008871E0938601F0E0EC59FE4F20838093C4 :100130008801FF91EF919F918F912F910F900FBEAA :100140000F901F9018951F920F920FB60F921124C7 :100150008F939F93EF93FF939091840180918501FA :10016000981769F0E0918501EF5FEF71E0938501E9 :10017000F0E0EC5BFE4F80818093C60005C080916B :10018000C1008F7D8093C100FF91EF919F918F916E :100190000F900FBE0F901F9018959C011092840134 :1001A00010928501109286011092870197FF04C07A :1001B00082E08093C0003F773093C5002093C40055 :1001C00088E98093C10086E08093C20008959091F1 :1001D000860180918701981719F420E031E012C060 :1001E000E0918701EF5FEF71E0938701F0E0EC5958 :1001F000FE4F308120918801922F80E0AC01430FA7 :10020000511D9A01C9010895282F909184019F5F83 :100210009F71809185019817E1F3E92FF0E0EC5B85 :10022000FE4F2083909384018091C100806280936F :10023000C1000895CF93DF93EC0102C02196E4DF63 :1002400088818823D9F7DF91CF910895CF93DF93E9 :10025000EC0101C0D9DFFE01219684918823D1F7FA :0A026000DF91CF910895F894FFCFCD :10026A00537072696E6765207A756D20426F6F747C :10027A006C6F616465722E2E2E0D0A00447520681B :10028A0061737420666F6C67656E646573205A6566 :10029A00696368656E20676573656E6465743A2084 :0402AA00000A0D0039 :00000001FF
>Aus dem Tutorial:
Ok. Und du benutzt natürlich einen Quarz damit die Baudrate
auch stimmt?
Die Baudrate liegt bei 9600 und wird mit (laut Tutorial) 8 Mhz internem Oszillator verwendet. Die Kommunikation funktioniert ja an sich. Ich erhalte Rückmeldung über den seriellen Port in Textform und erhalte darüber auch die Anweisung was zu tun ist. Nur beim Übertragen der HEX-Datei habe ich Probleme. Normale serielle Kommunkation habe ich auch schon öfter aufgebaut etc und das müsste (meiner Ansicht nach) alles laufen. Muss ich die hex-Date in irgend einem bestimmte Format erstellen? Also, kommt der irgendwie nicht mit dem Dateiformat zurecht (sprich, da ist irgendetwas in einem Header...) Gruß, Durokh
Ich kenne das Projekt nicht, aber übersetzt der Bootloader wirklich Hex in Bin? Die Programme, die ich kenne fressen zwar alle .Hex, senden aber Binärdaten.
Die main-File aus dem Tutorial übersetzt den empfangenen HEX-Code, soweit ich das verstanden habe. Eine Vermutung, die ich derzeitig habe, ist, dass es mit der Flow-Control zusammenhängt. Die Funktioniert bei mir anscheinend nicht korrekt. Wenn ich die Flow-Control an habe, klappt das Programm nicht, wie es soll, obwohl ich es in Putty /Hterm eingestellt habe. Schalte ich es aus, funktioniert das Programm wie gewünscht, importiert aber nicht die HEX-Datei. Oder es ist so, dass die Flow Control falsch funktioniert und das Empfangen der HEX-Datei nicht steuern... In dem Tutorial ist übrigens die Rede davon, dass ich die Extended Fuses setzen soll -- wo kann ich die im AVR Studio 6 einstellen? Bei mir ist nur HIGH und LOW zu sehen. Vielleicht liegt es ja daran.
Ralf S. schrieb: > Eine Vermutung, die ich derzeitig habe, ist, dass es mit der > Flow-Control zusammenhängt. Die Funktioniert bei mir anscheinend nicht > korrekt. Was ist es denn für eine Flußkontrolle, Hardware oder Software? Wenn Hardware, dann muß es natürlich auch die entsprechenden Leitungen zwischen µC und PC geben, im Minimum also eine 5-adrige Verbindung. Zusätzlich ist dann PC-seitig (zumindest unter Windows) aber auch noch eine Verbindung zwischen DSR und DTR auf der PC-Seite nötig. Und wenn Software, dann müssen natürlich PC-seitig genau die Steuerzeichen für XON/XOFF konfiguriert sein, die auch der µC verwendet. > > Wenn ich die Flow-Control an habe, klappt das Programm nicht, wie es > soll, obwohl ich es in Putty /Hterm eingestellt habe. > Schalte ich es aus, funktioniert das Programm wie gewünscht, importiert > aber nicht die HEX-Datei. > > Oder es ist so, dass die Flow Control falsch funktioniert und das > Empfangen der HEX-Datei nicht steuern... > > > In dem Tutorial ist übrigens die Rede davon, dass ich die Extended Fuses > setzen soll -- wo kann ich die im AVR Studio 6 einstellen? Bei mir ist > nur HIGH und LOW zu sehen. Vielleicht liegt es ja daran.
c-hater schrieb: > Was ist es denn für eine Flußkontrolle, Hardware oder Software? > > Wenn Hardware, dann muß es natürlich auch die entsprechenden Leitungen > zwischen µC und PC geben, im Minimum also eine 5-adrige Verbindung. > Zusätzlich ist dann PC-seitig (zumindest unter Windows) aber auch noch > eine Verbindung zwischen DSR und DTR auf der PC-Seite nötig. > > Und wenn Software, dann müssen natürlich PC-seitig genau die > Steuerzeichen für XON/XOFF konfiguriert sein, die auch der µC verwendet. Wenn ich das richtig überblick, läuft die Flußkontroller über Software (XON/XOFF). Ich kann mich ja leider nur auf das Tutorial berufen. Dort steht, dass in Putty (HTerm bietet keine direkte Auswahl an, nur CTS Flowcontrol) die Flusskontrolle auf XON/XOFF gestellt werden soll. Im Code des Tutorials ist ebenfalls XON/XOFF als Flusskontrolle eingestellt. Muss für die Flusskontrolle, wenn sie Softwareseitig läuft, noch eine zusätzliche Verbindung vorhanden sein? Mein Schaltplan sieht aus wie hier: http://www.mikrocontroller.net/wikifiles/d/d8/Max232_korr.png
Du kannst in HTerm oder Putty (sogar das Windows Terminal) eine Wartezeit angeben, die der Sender wartet, bis er das nächste Zeichen sendet. Stell das mal auf 1ms-10ms ein und versuch das neu. Jetzt werden dann alle 10ms ein neues Zeichen gesendet. Wenn es jetzt funktioniert, liegt es sicher an deiner Flusskontrolle. (Achja, bei dem Test schaltest du die Flusskontrolle aus) Gruß, Jens
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.