ATMEGA2560 umstellen auf 8Mhz int.

Hallo,

ich möchte mein Entwicklungsboard (Eigenbau) mit dem ATMEGA2560 umstellen auf 8Mhz internen Oscillator.
Dies habe ich per Fusebits i.V. mit dem ISP Anschluss und dem GALEP4 auch schon hinbekommen.

Dazu habe ich auch die board.txt angepasst, aber ich bekomme keinen Upload zustande.
hier die boards.txt:

mega.name=Arduino Mega WF 8Mhz int

mega.vid.0=0x2341
mega.pid.0=0x0010
mega.vid.1=0x2341
mega.pid.1=0x0042
mega.vid.2=0x2A03
mega.pid.2=0x0010
mega.vid.3=0x2A03
mega.pid.3=0x0042
mega.vid.4=0x2341
mega.pid.4=0x0210
mega.vid.5=0x2341
mega.pid.5=0x0242

mega.upload.tool=avrdude
mega.upload.maximum_data_size=8192

mega.bootloader.tool=avrdude
mega.bootloader.low_fuses=0xFF
mega.bootloader.unlock_bits=0x3F
mega.bootloader.lock_bits=0x0F

mega.build.f_cpu=8000000L
mega.build.core=arduino
mega.build.variant=mega_WF

mega.build.board=AVR_MEGA2560
mega.menu.cpu.atmega2560=ATmega2560 (Mega 2560)

mega.menu.cpu.atmega2560.upload.protocol=wiring
mega.menu.cpu.atmega2560.upload.maximum_size=253952
mega.menu.cpu.atmega2560.upload.speed=57600

mega.menu.cpu.atmega2560.bootloader.high_fuses=0xD8
mega.menu.cpu.atmega2560.bootloader.extended_fuses=0xFD
mega.menu.cpu.atmega2560.bootloader.file=stk500v2/stk500boot_v2_mega2560.hex

mega.menu.cpu.atmega2560.build.mcu=atmega2560
mega.menu.cpu.atmega2560.build.board=AVR_MEGA2560

Was muss ich denn noch umstellen um einen Upload mit der Arduino IDE (1.8.13) erfolgreich hinzubekommen?
Und muss im Sketch dann auch noch die neue Taktfrequenz angegeben werden?

Erstmal sehe ich nicht, dass du die Fuses überhaupt angepasst hast.

Und muss im Sketch dann auch noch die neue Taktfrequenz angegeben werden?

Nein, der Eintrag aus der boards.txt wird übernommen.

Dann ist es immer ein derbes Problem, den internen Takt in Verbindung mit der seriellen Schnittstelle zu verwenden.
Der ist zu ungenau.
Datenblatt Suchwort: OSCCAL

mega-hz:

mega.bootloader.low_fuses=0xFF


mega.menu.cpu.atmega2560.bootloader.high_fuses=0xD8
mega.menu.cpu.atmega2560.bootloader.extended_fuses=0xFD

Also wenn ich die 3 Fuses bei einem Fuse Calculator eingebe, sagt der mir bei Taktgenerator:
“Ext. Crystal Osc. ; Frequency 8.0-MHz…”

Du hast Dich da wohl irgendwo vertan. Dein Quarz außen hat 16MHz, falls es den noch gibt. Also passt die Baudrate auch nicht. Ist jetzt doppelt so hoch da der 2560 von 8 MHz ausgeht, bekommt aber wirklich das doppelte.

Fuse Calculator: https://www.engbedded.com/fusecalc/

Gruß, Jürgen

mega-hz:
ich möchte mein Entwicklungsboard (Eigenbau) mit dem ATMEGA2560 umstellen auf 8Mhz internen Oscillator.
Dies habe ich per Fusebits i.V. mit dem ISP Anschluss und dem GALEP4 auch schon hinbekommen.

Dazu habe ich auch die board.txt angepasst, aber ich bekomme keinen Upload zustande.

Hast Du aich einen neuen, zur Taktfrequenz 8MHz passenden Bootloader aufgespielt? Wenn da noch der original Bootloader drauf ist, kann es nicht funktionieren.

Ihm hat die Baudrate halbiert.
Nicht der goldene Weg, sollte aber reichen.

Na dann...
Welche Fehlermeldungen gibt es denn beim Upload?

Hallo, danke allen,

die Fusebits hatte ich im GALEP4 bereits gesetzt, nun auch in der boards.txt.

mega.name=Arduino Mega WF 8Mhz int

mega.vid.0=0x2341
mega.pid.0=0x0010
mega.vid.1=0x2341
mega.pid.1=0x0042
mega.vid.2=0x2A03
mega.pid.2=0x0010
mega.vid.3=0x2A03
mega.pid.3=0x0042
mega.vid.4=0x2341
mega.pid.4=0x0210
mega.vid.5=0x2341
mega.pid.5=0x0242

mega.upload.tool=avrdude
mega.upload.maximum_data_size=8192

mega.bootloader.tool=avrdude
mega.bootloader.low_fuses=0xE2
mega.bootloader.unlock_bits=0x3F
mega.bootloader.lock_bits=0x0F

mega.build.f_cpu=8000000L
mega.build.core=arduino
mega.build.variant=mega_WF

mega.build.board=AVR_MEGA2560
mega.menu.cpu.atmega2560=ATmega2560 (Mega 2560)

mega.menu.cpu.atmega2560.upload.protocol=wiring
mega.menu.cpu.atmega2560.upload.maximum_size=253952
mega.menu.cpu.atmega2560.upload.speed=57600

mega.menu.cpu.atmega2560.bootloader.high_fuses=0xD9
mega.menu.cpu.atmega2560.bootloader.extended_fuses=0xFD
mega.menu.cpu.atmega2560.bootloader.file=stk500v2/stk500boot_v2_mega2560.hex

mega.menu.cpu.atmega2560.build.mcu=atmega2560
mega.menu.cpu.atmega2560.build.board=AVR_MEGA2560

Habe dann den Sketch compelieren lassen und die "mit Bootloader"-Hex Datei per ISP geflasht.
Nun passt die Baudrate schonmal wieder, d.h. ich muss bei meinem Programm welches auf 19200 Baud eingestellt ist, den SerialMonitor nicht mehr auf 9600 Baud umstellen.

Ich hab mir schon fast gedacht, daß da ein anderer Bootloader draufmuss.
Kann ich den selber auf 8Mhz irgendwo einstellen oder wer weiss, wo ich den herbekomme?

und zu der boards.txt hab ich noch 2 Fragen:

Ich habe in meiner boards.txt 2 Varianten des 2560 eingebaut, es wird jedoch nur eine angezeigt und zwar die mit 8Mhz.

mega.name=Arduino Mega WF 16Mhz ext.

mega.vid.0=0x2341
mega.pid.0=0x0010
mega.vid.1=0x2341
mega.pid.1=0x0042
mega.vid.2=0x2A03
mega.pid.2=0x0010
mega.vid.3=0x2A03
mega.pid.3=0x0042
mega.vid.4=0x2341
mega.pid.4=0x0210
mega.vid.5=0x2341
mega.pid.5=0x0242

mega.upload.tool=avrdude
mega.upload.maximum_data_size=8192

mega.bootloader.tool=avrdude
mega.bootloader.low_fuses=0xFF
mega.bootloader.unlock_bits=0x3F
mega.bootloader.lock_bits=0x0F

mega.build.f_cpu=16000000L
mega.build.core=arduino
mega.build.variant=mega_WF

mega.build.board=AVR_MEGA2560
mega.menu.cpu.atmega2560=ATmega2560 (Mega 2560)

mega.menu.cpu.atmega2560.upload.protocol=wiring
mega.menu.cpu.atmega2560.upload.maximum_size=253952
mega.menu.cpu.atmega2560.upload.speed=115200

mega.menu.cpu.atmega2560.bootloader.high_fuses=0xD8
mega.menu.cpu.atmega2560.bootloader.extended_fuses=0xFD
mega.menu.cpu.atmega2560.bootloader.file=stk500v2/stk500boot_v2_mega2560.hex

mega.menu.cpu.atmega2560.build.mcu=atmega2560
mega.menu.cpu.atmega2560.build.board=AVR_MEGA2560

##############################################################
mega.name=Arduino Mega WF 8Mhz int

mega.vid.0=0x2341
mega.pid.0=0x0010
mega.vid.1=0x2341
mega.pid.1=0x0042
mega.vid.2=0x2A03
mega.pid.2=0x0010
mega.vid.3=0x2A03
mega.pid.3=0x0042
mega.vid.4=0x2341
mega.pid.4=0x0210
mega.vid.5=0x2341
mega.pid.5=0x0242

mega.upload.tool=avrdude
mega.upload.maximum_data_size=8192

mega.bootloader.tool=avrdude
mega.bootloader.low_fuses=0xE2
mega.bootloader.unlock_bits=0x3F
mega.bootloader.lock_bits=0x0F

mega.build.f_cpu=8000000L
mega.build.core=arduino
mega.build.variant=mega_WF

mega.build.board=AVR_MEGA2560
mega.menu.cpu.atmega2560=ATmega2560 (Mega 2560)

mega.menu.cpu.atmega2560.upload.protocol=wiring
mega.menu.cpu.atmega2560.upload.maximum_size=253952
mega.menu.cpu.atmega2560.upload.speed=57600

mega.menu.cpu.atmega2560.bootloader.high_fuses=0xD9
mega.menu.cpu.atmega2560.bootloader.extended_fuses=0xFD
mega.menu.cpu.atmega2560.bootloader.file=Q:\Arduino 1.8.10\hardware\arduino\avr\bootloaders\atmega\MegaPro3.3V-8MHz-57600.hex

mega.menu.cpu.atmega2560.build.mcu=atmega2560
mega.menu.cpu.atmega2560.build.board=AVR_MEGA2560

Wie bekomme ich das hin, daß mir die Arduino IDE 2 Varianten anzeigt?
Beispiel ATMEGA 2560 WF und dann untermenüs mit 8 oder 16Mhz ?

  1. Frage:
    Warum gibt es auf C:....Arduino... auch eine boards.txt?
    Mein Arduino Umgebung ist nach Laufwerk Q:\ installiert mit allen libs usw.
    Kann man die auf C: bedenkenlos löschen?

Kann ich den selber auf 8Mhz irgendwo einstellen oder wer weiss, wo ich den herbekomme?

Ja!
Sowohl Toolchain, als auch Bootloaderquellen werden mit der Arduino IDE auf deinen Rechner gespielt.
(ist make auch dabei?)

Die Quellen liegen bei mir unter E:\Programme\arduino\hardware\arduino\avr\bootloaders\stk500v2

  1. Frage:

Vielleicht möchtest du eine portable Installation verwenden?

Wie bekomme ich das hin, daß mir die Arduino IDE 2 Varianten anzeigt?
Beispiel ATMEGA 2560 WF und dann untermenüs mit 8 oder 6Mhz ?

Hier lesen

combie:
Ja!
Sowohl Toolchain, als auch Bootloaderquellen werden mit der Arduino IDE auf deinen Rechner gespielt.
(ist make auch dabei?)

Die Quellen liegen bei mir unter E:\Programme\arduino\hardware\arduino\avr\bootloaders\stk500v2

Vielleicht möchtest du eine portable Installation verwenden?
Hier lesen

Im Stk500v2 Ordner ist ein Makefile.

Hat die protable Version irgendwelche Nachteile? Vorteile wären ja, daß man sie überall "mitnehemen" könnte...

Im Stk500v2 Ordner ist ein Makefile.

Ich bin ja nicht (nur) blind!

Das beantwortet aber nicht die (rethorische) Frage ob make mitgeliefert wird.

puhh, das weiss ich auch nicht, kenn mich mit make nicht aus, was ist das und wofür braucht man das?
Kann man nicht einen 8Mhz Bootloader irgendwo runterladen?

MegaCore sollte einen passenden Bootloader mitliefern: GitHub - MCUdude/MegaCore: Arduino hardware package for ATmega64, ATmega128, ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90CAN32, AT90CAN64 and AT90CAN128

MegaCore ist die einfachste Lösung

ich habe nun den MegaCore Bootloader für 8Mhz internen Takt auf den 2560 geflasht, bekomme dann aber beim hochladen per usb folgende Fehler:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x98
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x80
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe6
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x86
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe6
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x86
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe6
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x86
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe6
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x86
Beim Hochladen des Sketches ist ein Fehler aufgetreten

mega-hz:
ich habe nun den MegaCore Bootloader für 8Mhz internen Takt auf den 2560 geflasht,

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x98

Die Antwort steckt vermutlich in #1

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\mega-\AppData\Local\Arduino15\packages\MegaCore\hardware\avr\2.0.4/avrdude.conf"

         Using Port                    : COM16
         Using Programmer              : arduino
         Overriding Baud Rate          : 38400
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x98
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x80
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe6
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x86
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe6
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x86
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe6
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x86
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe6
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x86

avrdude done.  Thank you.

Beim Hochladen des Sketches ist ein Fehler aufgetreten

Es ist OK, wenn dich die Kommandozeile nicht interessiert…
Aber helfen wird so auch schwieriger.

Je mehr du verheimlichst, um so schwieriger.

Aber dennoch habe ich Willen gezeigt dir zu helfen.
Und zwar so:

Habe einen meiner teuren und wertvollen Megas aus dem Regal genommen.
Den 8MHz intern Bootloader aufgespielt.
Dann ein Programm compíliert und ebenso drauf getan.

Was soll ich sagen?
Es läuft.


Ich schließe daraus:
Alles was du bisher gezeigt und versucht hast, ist ok, und würde auch zum Erfolg führen.

Aber:
Da du keinen Erfolg hast, wird der Fehler dort stecken, wo du Dinge verheimlichst.

Und das fängt mit dem Schaltplan an.

Schaltplan?
Das Board ist wie bei einem Arduino Mega Board angeschlossen, nur das die 16 IOs die dort nicht herausgeführt sind bei meinem Board da sind.
Es hat ja bereits mit externen 16Mhz Quarz gelaufen.

Wie hast Du den Bootloader denn auf Dein Board aufgespielt?