Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Mega16 Bootloader
mikro-VIIV
27.12.2007, 10:29
Hallo alle zusammen.
Was das Thema Bootloader angeht bin ich leider noch Anfänger und habe deshalb einige Probleme damit.
Ich möchte auf meinen Mega16 einen Bootloader aufspielen um ihn dann mit Megaload programmieren zu können.
Meinen Bootloader habe ich hier her:
https://www.roboternetz.de/phpBB2/viewtopic.php?p=29369
Ich habe ihn mit PonyProg auf den Avr überspielt und habe jetzt das Problem, dass ich den Mega16 nicht richtig mit Megaload programmieren kann.
Mein Problem ist folgendes:
Wenn ich mit Megaload mein Programm übertragen will zeigt mir Megaload zunächst einen falschen AVR an, stellt dies bei der Übertragung aber richtig.
Wenn ich das Programm dann sende wird aber nur PAGE#0 übertragen bzw. dieses immer wieder hintereinander übertragen und der rest gar nicht.
Darum funktioniert das ganze am ende auch nicht.
Weis jemand, was ich falsch gemacht habe?
Hab schon ziemlich viel herum prubiert und dabei leider auch schon einen AVR tot gebrannt.
Bin daher für jede Hilfe dankbar!
mikro-VIIV
27.12.2007, 11:51
Hier noch ein paar Informationen!
Ich verwende wie schon gesagt einen ATMega 16 mit 16 MHz Quarz
die Fusebits habe ich wie folgt gesetzt:
Kann es sein dass das nicht ganz richtig ist oder liegt der Fehler woanders?
mikro-VIIV
27.12.2007, 20:36
Habe nochmals alles überprüft und kann jetzt die serielle Schnittstelle als Fehlerquelle ausschließen.
Ich glauhe (und hoffe auch), dass es an den Fuse Bits liegt. Nochmal, ich arbeite mit einem externen Quarz mit 16 MHz.
Sind die Einstellungen so richtig, wie ich sie habe oder was muss ich ändern?
Kenne mich leider mit den Fuse Bits nicht so aus und hoffe daher auf eure Unterstützung.
Wenn ich mit Megaload mein Programm übertragen will zeigt mir Megaload zunächst einen falschen AVR an, stellt dies bei der Übertragung aber richtig.
Ich glaube das ist normal, weil Megaload ja erst mal über die serielle Kommunikation feststellen muss mit welchem AVR es zu tun hat.
Wenn ich das Programm dann sende wird aber nur PAGE#0 übertragen bzw. dieses immer wieder hintereinander übertragen und der rest gar nicht.
Sorry für die blöde Frage, aber du überträgst schon ein fertig compiliertes Hex-File oder?
Ich verwende wie schon gesagt einen ATMega 16 mit 16 MHz Quarz
Und der Bootloader den du mit Ponyprog hochgeladen hast ist für einen ATMega16 mit 16MHz?
Sind die Einstellungen so richtig, wie ich sie habe oder was muss ich ändern?
Ich kenne die richtigen Fusebit Einstellungen nur aus ascom, da sind sie etwas anders (ausführlicher) bezeichnet als auf deinem PonyProg Screenshot.
Wenn du weisst, wie du die Fusebits einstellen muss, damit die Programmierung über ISP funktioniert, stell sie erst mal so ein.
Dann würde ich ein kleines Programm schreiben das für eine Taktrate von 16MHz compiliert ist und ein bischen Text über die serielle Schnittstelle ausgibt.
Wenn du das über den ISP hochlädst und es richtig funktioniert, sind die Fusebits für den externen Quarz richtig eingestellt.
Asl nächstes kannst du dann über ISP den Bootloader hochladen und dann mit Megaload irgendein kleines Programm über die serielle Verbindung hochladen.
Die Fusebits muss man soweit ich weiss nur ändern, weil sonst der Bootloader bei jedem Reset wieder gelöscht wird.
Das heisst das Programmieren sollte eigentlich erst mal auch ohne Ändern der Fusebits funktionieren.
Wenn du ein Programm mit Megaload richtig hochladen kannst und es läuft, kannst du dich dann den Einstellungen für die Fusebits widmen.
mikro-VIIV
28.12.2007, 10:41
Erst einmal vielen dank für die Antwort.
Sorry für die blöde Frage, aber du überträgst schon ein fertig compiliertes Hex-File oder?
Ja, das tue ich natürlich!
Und der Bootloader den du mit Ponyprog hochgeladen hast ist für einen ATMega16 mit 16MHz?
Für den Mega 16 ist der Bootloader auf jeden Fall ausgelegt. Ob die Taktfrequenz stimmt werde ich noch einmal überprüfen.
Dann würde ich ein kleines Programm schreiben das für eine Taktrate von 16MHz compiliert ist und ein bischen Text über die serielle Schnittstelle ausgibt.
Wenn du das über den ISP hochlädst und es richtig funktioniert, sind die Fusebits für den externen Quarz richtig eingestellt.
Genau das habe ich auch schon probiert und festgestellt das die Übertragung über die serielle Schnittstelle funktioniert.
Über ISP kann ich die Programme fehlerfrei hochladen und die funktionieren dann auch.
OK. dann werde ich jetzt noch einmal überprüfen ob der Bootloader auch für 16 MHz ausgelegt ist.
Nochmals vielen Dank für die Hilfe.
mikro-VIIV
28.12.2007, 11:16
Ich konnte leider noch nicht herausfinden, für welch Taktfrequenz der Bootloader ausgelegt ist.
Da ich den Bootloader von hier (https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=173&sid=dc51189b7f2567d8c0576dcc3770bb27) habe, hoffe ich, dass mir da jemand helfen kann.
Ich habe auch schon versucht mir den Bootloader mit ICCAVR selber zu compilieren, komme damit allerdings nicht zurecht, da ich auch überhaupt keine Erfahrungen in C habe.
peterfido
29.12.2007, 14:24
Ich tippe auf falsche Taktfrequenz. Einfach mal mit verschiedenen ausprobieren. Ich nutze nen modifizierten Bascom Bootloader. Funzt bei mir 1a mit 16MHZ.
mikro-VIIV
29.12.2007, 15:15
ICH HAB'S!
Ich habe heute mal den Bascom Bootloader ausprobiert (im Bascom-AVR Installationsordner unter Samples/Boot/ zu finden) und der hat dann auch funktioniert. :mrgreen: :mrgreen:
Ich nutze nen modifizierten Bascom Bootloader
Worin genau besteht denn deine Modifikation?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.