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?
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!
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?
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.
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 mit Megaload mein Programm übertragen will zeigt mir Megaload zunächst einen falschen AVR an, stellt dies bei der Übertragung aber richtig.
Sorry für die blöde Frage, aber du überträgst schon ein fertig compiliertes Hex-File oder?Wenn ich das Programm dann sende wird aber nur PAGE#0 übertragen bzw. dieses immer wieder hintereinander übertragen und der rest gar nicht.
Und der Bootloader den du mit Ponyprog hochgeladen hast ist für einen ATMega16 mit 16MHz?Ich verwende wie schon gesagt einen ATMega 16 mit 16 MHz Quarz
Ich kenne die richtigen Fusebit Einstellungen nur aus ascom, da sind sie etwas anders (ausführlicher) bezeichnet als auf deinem PonyProg Screenshot.Sind die Einstellungen so richtig, wie ich sie habe oder was muss ich ändern?
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.
Erst einmal vielen dank für die Antwort.
Ja, das tue ich natürlich!Sorry für die blöde Frage, aber du überträgst schon ein fertig compiliertes Hex-File oder?
Für den Mega 16 ist der Bootloader auf jeden Fall ausgelegt. Ob die Taktfrequenz stimmt werde ich noch einmal überprüfen.Und der Bootloader den du mit Ponyprog hochgeladen hast ist für einen ATMega16 mit 16MHz?
Genau das habe ich auch schon probiert und festgestellt das die Übertragung über die serielle Schnittstelle funktioniert.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.
Ü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.
Ich konnte leider noch nicht herausfinden, für welch Taktfrequenz der Bootloader ausgelegt ist.
Da ich den Bootloader von hier 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.
Ich tippe auf falsche Taktfrequenz. Einfach mal mit verschiedenen ausprobieren. Ich nutze nen modifizierten Bascom Bootloader. Funzt bei mir 1a mit 16MHZ.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Lesezeichen