Forum: Mikrocontroller und Digitale Elektronik ArduinoISP - Expected signature for ATMEGA8?


von Michael (Gast)


Lesenswert?

Hallo Leute,

ich komme mit dem ArduinoISP nicht weiter. Ich schreib mal was ich 
gemacht habe:

Arduino IDE 1.05 für Windows gestartet und das Beispiel ArduinoISP auf 
den einen UNO gespielt. Meldung: Binäre Sketchgröße: 5.492 Bytes (von 
einem Maximum von 32.256 Bytes)

Arduino IDE beendet.

AVR Burn-O-Mat gestartet und alle möglichen Einstellungen durchprobiert. 
Der ArduinoISP wird nur mit folgenden Einstellungen fehlerfrei 
angesprochen.
 Programmer: arduino (Arduino)
 Port: Com14 //wie in der Arduino IDE

Wenn ich den µC vom Arduino-Board (ATmega328P) einstelle und ein Read 
Flash/EEPROM mache funktionierts. Folgende Ausgabe erscheint:

C:\WinAVR-20100110\bin\avrdude.exe -C 
C:\WinAVR-20100110\bin\avrdude.conf -p m328p -P com14 -c arduino -D  -U 
flash:r:D:\Install\Treiber\USBasp-Firmware\Original\OldUSBasp_Firmware.h 
ex:i

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
-0.00s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: reading flash memory:

Reading | ################################################## | 100% 
4.71s

Aber ich will ja nicht den Arduino-Chip auslesen, sondern einen an den 
Leitungen MOSI, MISO, SCK, BP2->RST, GND, VCC angeschlossenen m8. Also 
stelle ich diesen bei AVR-Typ ein. Das lesen des m8 gelingt aber nur, 
wenn ich den Parameter -F an avrdude übergebe. Die Ausgabe sieht dann 
folgendermassen aus:
C:\WinAVR-20100110\bin\avrdude.exe -C 
C:\WinAVR-20100110\bin\avrdude.conf -p m8 -P com14 -c arduino -D  -U 
flash:r:D:\Install\Treiber\USBasp-Firmware\Original\OldUSBasp_Firmware.h 
ex:i

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.00s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07
             Double check chip, or use -F to override this check.

Woher weiss ich jetzt, ob der UNO die Daten des m8 geliefert hat und 
nicht die des UNO?
Mit BASCOM kommt, egal welchen Chip ich einstelle die Meldung: Detected 
Micro does not match the selected...

Kann jemand helfen?

Michael

von Uwe (de0508)


Lesenswert?

Der ISP Takt muss < 1/4 F_CPU sein.

von Verwirrter Anfänger (Gast)


Lesenswert?

>  Aber ich will ja nicht den Arduino-Chip auslesen, sondern einen an den
> Leitungen MOSI, MISO, SCK, BP2->RST, GND, VCC angeschlossenen m8. Also
> stelle ich diesen bei AVR-Typ ein.

Das klappt so nicht. Der Typ gibt nur an, welchen AVR der Programmer 
erwartet, nicht wie der angeschlossen ist.

Mit dem Argument -c arduino wird der Bootloader des Arduino benutzt, 
und du kannst nur den Arduino beschreiben. Um den Arduino als ISP zu 
benutzen, musst du -c avrisp benutzen. Damit wird nur der externe Chip 
angesprochen.


> Der ArduinoISP wird nur mit folgenden Einstellungen fehlerfrei angesprochen.
> Programmer: arduino (Arduino)

Falls -c avrisp nicht klappt, würde ich als Erstes auf falsche 
Verbindungen zwischen den Arduino und dem Mega8 schliessen.

Ist der externe Mega8 richtig beschaltet? Mit Kondensatoren?

von isnah (Gast)


Lesenswert?

Folgende Seite sollte alle deine Fragen beantworten:
http://pdp11.byethost12.com/AVR/ArduinoAsProgrammer.htm

von Michael (Gast)


Lesenswert?

Vielen Dank an euch beide!

eure Tipps waren sehr hilfreich. Auf der Kommandozeile hat alles 
Reibungslos funktioniert. Wenn ich in Burn-O-Mat den avrisp eingestellt 
habe, kam immer eine Fehlermeldung:

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

Vielleicht hätte ich in den "additional Options" unter Settings noch ein 
bischen herumexperimentieren sollen.

Benutze ich die Kommandozeile cmd.exe nach der Anleitung im Link, kann 
ich die Kommandos nacheinander ohne Probleme ausführen. Allerdings 
musste ich nach jedem Aufruf die Resettaste am UNO drücken.

Bei mir ging das folgendermassen:

Windows Startmenü -> ausführen cmd.exe -> <Enter>

cd /D C:\WinAVR-20100110\bin
 - wechselt in das avrdude-Verzeichnis von WinAVR

avrdude.exe -P COM14 -b 19200 -c avrisp -p m168 -n
 - gibt mir den Status des zu flshenden ICs aus

avrdude.exe -P COM14 -b 19200 -c avrisp -p m168 -u -U 
flash:w:"D:\Elektro\Projekte\Komponententester\svn\transistortester\Soft 
ware\trunk\mega168_strip_grid\TransistorTester.hex":i
 - schreibt den Flash-Speicher mit entsprechenden Statusmeldungen

avrdude.exe -P COM14 -b 19200 -c avrisp -p m168 -u -U 
eeprom:w:"D:\Elektro\Projekte\Komponententester\svn\transistortester\Sof 
tware\trunk\mega168_strip_grid\TransistorTester.eep":i
 - Schreibt in den EEPROM

Das Auslesen der Fuse-Bits habe ich wie folgt gemacht:

avrdude.exe -P COM14 -b 19200 -c avrisp -p m168 -u -U 
efuse:r:efuse.hex:r -U hfuse:r:hfuse.hex:r -U lfuse:r:lfuse.hex:r

Prinzipell läuft der µC schon in der Zielschaltung. Jetzt muss ich nur 
noch prüfen, ob die Fuses schon richtig eingestellt sind.

Vielen Dank zunächt noch mal.

Michae

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.