PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega8 Bootloader (USBAsp) brennen mit Arduino Fehler



Black Math
20.02.2012, 18:15
Hallo Leute,

hab vor mir ein Metaboard zu bauen: https://metalab.at/wiki/Metaboard
Dazu muss der USBAsp-Bootloader auf den Atmega.
Habe es nach dieser Anleitung gemacht: http://arduino.cc/en/Tutorial/ArduinoISP
Hatte die Variante auf dem Breadboard mit ext. Oszillator (16MHz).
Nachdem ich den Brennvorgang gestartet habe, blicken/flackern die RX/TX-LEDs ein paar mal, es dauert ca. 15 Sekunden, dann kommt folgende Fehlermeldung:

avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: failed to write flash memory, rc=-4
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51


In meine "boards.txt" habe ich folgendes eingefügt:

################################################## ############
metaboard.name=Metaboard w/ ATMega8
metaboard.upload.protocol=usbasp
metaboard.upload.maximum_size=7168
metaboard.upload.speed=19200

metaboard.build.mcu=atmega8
metaboard.build.f_cpu=16000000L
metaboard.build.core=arduino

metaboard.bootloader.low_fuses=0xef
metaboard.bootloader.high_fuses=0xc9
metaboard.bootloader.path=metaboard
metaboard.bootloader.file=mega8_16mhz.hex
metaboard.bootloader.unlock_bits=0x3F
metaboard.bootloader.lock_bits=0x2F

metaboard.upload.disable_flushing=true


Warum schreibt AVRDUDE von "Stk500", obwohl ich als Protokoll "usbasp" angegeben habe?!

Was läuft hier schief, kann mir jemand helfen?
Habe leider keinen alternativen Programmieradapter...

Viele Grüße,
Julian

BenderBR
24.02.2012, 01:06
Habe ähnliches Problem,
hast du es über direkt avrdude direkt mit "-c arduino" probiert ein beliebiges hex, zB.USBAsp-Bootloader darauf zu laden
bei mir liegt es an dem lfuse, muss morgen mit HV ändern
wobei dein Fehler erst mit http://www.ladyada.net/library/arduino/arduinoisp.html aufgetreten ist, mit dem ISP aus dem Example, hatte ich eine 000000 signatur für mein m328P (1e950f), also liegt es am lfuse (bei mir)

Warum schreibt AVRDUDE von "Stk500", obwohl ich als Protokoll "usbasp" angegeben habe?!
Kommt von … kp würde ich gerne auch wissen
aber du muss -c arduino benutzten, weil du das Arduino als ISP benutzt (unsicher)

Hoffe du updatest dein Erfolg!

Black Math
24.02.2012, 09:22
Hallo, habe das Problem mittlerweile gelöst.
Waren aber mehrere Dinge:
1. Ich hatte Arduino 1.0 verwendet. Da scheint in der Sketch irgendein Fehler drin zu sein. Nimm am besten 0022 zum Flashen des Bootloaders.
2. metaboard.upload.protocol=usbasp : usbasp muss zum Flashen in "avrisp" umgeändert werden, zum Hochladen von Sketches muss es wieder in "usbasp" geändert werden.
3. mein HFuse war nicht ganz richtig, es muss 0xc8 sein (BOOTRST=0, also aktiviert, damit der Atega durch Druck auf den Reset-Button wieder in den Bootloader-Modus wechselt.
4. das Lockbit sollte idealerweise 0x0F sein (BLB11/12 = 0)

Habe es mit der ArduinoIDE gemacht, nicht den direkten Weg via avrdude.
So funktioniert jetzt jedenfalls alles wie es soll.

Gruß, Julian

ePyx
24.02.2012, 10:17
Warum schreibt AVRDUDE von "Stk500", obwohl ich als Protokoll "usbasp" angegeben habe?!


Das is der Standardfehler von AVRDude, wenn eine Verbindung nicht hergestellt werden konnte. Da der USBAsp das STK500-Protokoll benutzt, kommt auch die Fehlermeldung zum STK500-Protokoll.