atmega8 auf STK500 mit bootloader versehen

Hallo zusammen!

Nach langer Abstinenz wollte ich mich gerne mal wieder mit der Programmierung des mega8 beschäftigen. Habe früher BASCOM benutzt und wollte gerne mal arduino testen.

Ich habe hier noch diverse mega8 herumliegen und besitze ein STK500. Da kein Quarz mehr vorhanden, möchte ich mit der internen Taktung auskommen. Was aber anscheinend nicht so ohne weiteres geht. Ich habe das Internet durchforscht und habe diverse Anregungen gefunden.

Bin mir aber nicht sicher wie der genaue Ablauf ist.
Ich vermute mal, dass ich die boards - Datei editieren muss. Bin mir aber über die Parameter nicht ganz sicher.

Hat vielleicht jemand eine Schritt für Schritt Anleitung für genau meinen Fall? Oder kann mir sagen welche Schritte erforderlich sind? Dann kann ich mich daran durch hangeln.

Viele Grüße
Matthias

Also wenn es unbedingt ein atmega8 sein soll, dann erstmal die fuses aendern. Mehr dazu in der fussnote.

So nach etwas rumprobieren ließ sich jetzt die Blink-Sketch in den atmega8 laden und läuft. :slight_smile:

Leider ist das Laden eines neuen Programms nicht möglich. Nach dem Drücken des Reset-Knopfes flackert die LED nach 15 Sek. am PIN 13 kurz auf und das bereits geladene Programm legt los. Die Arduino - Umgebung gibt darauf nur folgendes aus:

avrdude: stk500_getsync(): not in sync: resp=0x00

Ich muss erst über die ISP den Flash löschen und den Bootloader neu laden. Vorher bekomme ich über Ihn kein neues Programm eingespielt.

Die Fusebits sehen wie folgt aus:

HIGH: 0xC4
LOW: 0xE4
LOCKBIT: 0xCF

Bin erstmal wieder ratlos.

Eine Idee?

Gruß
Matthias

Vermutlich vergessen die lock-bits wieder zu setzen.

Ich wuerde mit folgenden einstellungen arbeiten:

schnipp

atmega8.name=Arduino NG or older w/ ATmega8

atmega8.upload.protocol=arduino
atmega8.upload.maximum_size=7680
atmega8.upload.speed=115200

atmega8.bootloader.low_fuses=0xa4
atmega8.bootloader.high_fuses=0xcc
atmega8.bootloader.path=optiboot
atmega8.bootloader.file=optiboot_atmega8.hex
atmega8.bootloader.unlock_bits=0x3F
atmega8.bootloader.lock_bits=0x0F

atmega8.build.mcu=atmega8
atmega8.build.f_cpu=8000000L
atmega8.build.core=arduino
atmega8.build.variant=standard

schnipp

Der ATmega8 ist aber nicht register kompatibel mit der ATmegaxx8 serie (48,88,168,328) und es fehlen im 3 "PWM pins". Ersteres sollte der compiler klaeren, letzteres nicht. Ich wuerde erwarten, dass manche beispiele nicht erwartungsgemaess compilieren / laufen.