AVR ISP mkII programmierung Sketch nach Neustart weg?

Hallo,
ich habe mir ein AVR ISP mkII besorgt damit ich meine MCU und Arduinos über die ISP Schnittstelle programmieren kann (Programmiere inzwischen über Atmel Studio aber auch über die Arduino IDE ist gleiche Phänomen zu sehen).
Es funktioniert auch, das Programm wird übetragen ich kann den AVR aus der Schnittstelle abnehmen und das Programm bleibt im MCU. Sobald ich aber den Reset Button drücke (AVR nun nicht mehr angeschlossen) oder den Arduino neustarte ist der Sketch weg? Ist das normal? Ich schreibe auf den Flash Speicher eigentlich sollte der Sketch doch weiterhin drauf sein oder verstehe ich da was falsch?

Danke für eure Hilfe!

Hallo,

wenn Du einen Controller per ISP programmierst und dabei den Bootloader überschreibst, bleibt das Programm auch nach einen Neustart erhalten. Falls Du aber den Bootloader erhältst und die Fuse-Bits entsprechend gesetzt sind, wird nach einem Neustart wieder der Bootloader gestartet und ich weiß nicht, ob dieser dann Dein Programm starten kann.

Gruß,
Ralf

Im Atmel Studio habe ich ein haken bei "Erase device before programming" kann ich dann davon ausgehen das der Bootloader mitgelöscht wird?

Was kann ich machen das nach dem Bootloader das Programm gestartet wird?

Vielleicht kann es sein das durch das setzen der Fuses der Speicherbereich in dem sich der Bootloader befindet
gegen überschreiben und erase geschützt ist?

Gibsonuser:
Vielleicht kann es sein das durch das setzen der Fuses der Speicherbereich in dem sich der Bootloader befindet
gegen überschreiben und erase geschützt ist?

Nicht nur vielleicht, sondern ziemlich sicher. Wie Du die Fuses für Deinen bestimmten Controller setzen musst, kannst Du auf dieser Seite leicht herausfinden: AVR® Fuse Calculator – The Engbedded Blog

Für Dich dürften BOOTRST und BOOTSZ interessant sein.

Gruß,
Ralf

Hi,

bevor ich irgendwas kaputt mache:
Ich habe den Atmega2560
Allerdings benutze ich einen Externen Oszilator mit 16 MHZ den kann ich im Menüeintrag gar nicht finden.

Wenn ich die Fuses einmal setze kann ich sie auch wieder ändern? Habe mal etwas von verfusten MCU gelesen, die dann nur anders zu retten sind.
Gruß

Gibsonuser:
Ich habe den Atmega2560

Wenn ich die Fuses einmal setze kann ich sie auch wieder ändern? Habe mal etwas von verfusten MCU gelesen, die dann nur anders zu retten sind.

Tja, zum ATMega2560 kann ich nichts sagen. Ich habe zwar auch einen Arduino Mega2560 hatte aber bisher noch keine Veranlassung, den per ISP zu programmieren, sondern nur über den Bootloader.

Aber ja, je nachdem welche Fuses Du setzt, kannst Du den Controller unbrauchbar machen oder zumindest soweit bringen, dass er nicht mehr läuft und auch über den mkII nicht mehr programmierbar ist. Wenn Du Dir nicht absolut sicher bist, was Du tust, lass es lieber.

Gruß,
Ralf

Ich habe die Fuses mal ausgelesen BOOTSZ ist auf 00 gesetzt wurde was heißt das die komplette Flash Größe benutzt wird von 4096 (somit müsste kein Bootloader vorhanden sein) die Start Adresse ist die 1F000 jetzt ist die Frage wohin schreibt Atmel Studio meine Daten ? Wahrscheinlich an 0x0000 oder?

Der fuse BOOTRST ist auch gesetzt ist die für die Start Adresse zuständig?

Jetzt hab ich noch eine Frage
gibt es die Möglichkeit den Arduino Bootloader mit meinen Sketch zu kombinieren und als Hex Datei zu exportieren?
Diese würde ich dann mit dem ISP flashen und im Bootloader sollte dann die richtige Startadresse stehen.