Schlagwort-Archiv: Fuses

Arduino Mega 2560, AMS1117, ATMega CPU. Teil 2 – Firmware

Nachdem nun mechanisch alles in Ordnung gebracht wurde, kommt der zweite kniffelige Teil.

Mein Arduino Mega war noch über Seriell ansprechbar, daher wird hier nur die CPU selbst beschrieben, nicht der USB-Seriell-Wandler (Atmega18U2, CHG340 oder was eben so auf dem Board ist)

Es wird benötigt: Ein Programmer für Atmel 8-bit CPUs.
Software, Arduino IDE.

Ich habe folgende Tools:
UsbASP (fischl.de) als Programmer
AVR8-Burn-o-Mat als Frontend
Arduino-IDE 1.06 „classic“
Google 🙂

Neben der CPU sieht man einen ICSP-Anschluss aus einer 3×2 Pfostensteckerleiste. Das ist standartisiert, wer dazu noch keinen Adapter hat kann sich das googeln.

Die CPU ist nun noch komplett nackig, es fehlt der Arduino Bootloader und die passende Konfiguration in den Fuses-Registern.

Also ran an den ISCP-Anschluss, auf Pin1 aufpassen und UsbASP anschließen.
AVR8-Burn-o-Mat starten (Unter Linux: als Root, sonst hat das Programm keinen zugriff auf /usr/bin/avrdude, ggf. config anpassen um den korrekten Pfad zu ARVDUDE einzutragen. AVRDude wird dann auch als Root ausgeführt was wichtig ist für den Zugriff auf die USB-Hardware).

Zunächst müssen die FUSES gesetzt werden. Der Prozessor ist noch langsam und es ist zu empfehlen den Jumper für langsame Prozessoren am UsbASP zu stecken.
Google liefert dazu diesen Treffer:
http://www.codingwithcody.com/2011/04/arduino-default-fuse-settings/

Arduino Mega 2560
Low Fuse 0xFF
High Fuse 0xD8
Extended Fuse 0xFD

im AVR8-burn-o-Mat wählt man also den AVR-Type ATmega2560 aus, daneben ist der Button „Fuses“.
Der öffnet ein Dialogfeld mit vielen optionen.
Da wir schon wissen welche Hexwerte gebraucht werden wird der Reiter „Fuse HEX Editor“ gewählt und die 3 Werte eingetragen.

Apply anklicken, dann oben „write Fuses“.
Die Ausgabe von AVRDUDE im Programmfenster beobachten, ob es geklappt hat.

Nun alles einmal abstecken und wieder anstecken, damit der Prozessor neu startet, am UsbASP den Jumper 2 wieder entfernen, sonst dauert das schreiben des Bootloaders sehr lange.

Jetzt kann das AVR8DUDE wieder zugemacht werden.
Wir brauchen nun die Arduino-IDE. (unter Linux wieder als Root)

In der Arduino IDE nun im Menü Tools wieder das Board „Arduino Mega2560“ auswählen. Dann den Programmer UsbASP auswählen, und im Menü Tools „Bootloader installieren“ starten.
(Ausgabe in der Statusleiste beobachten)

Nun ist der Arduino Mega wieder einsatzbereit und kann ganz normal über die IDE per „upload“ programmiert werden.