Hallo,
Ich bin neu im bereich MC Programmierung.
Vor 10 Jahren ahbe ich zwar mal z80 Programmiert aber das nur auf
fertigen Versuchsanordnungen...
Ich habe heute meinen USBasp Bausatz bekommrn und gleich aufgebaut.
nun habe ich ein Problem wenn ich versuche meinen ATmega8 zu
programmieren.
Ich habe am USBasp den jumper 3 gesetzt um die Geschwindigkeit zu
drosseln.
Ebenso habe ich schon mehrere Stunden Google bemüht.
Aber ich komme über folgenden Punkt nicht hinaus:
>avrdude -p m8 -c usbasp -v
avrdude: Version 5.10, compiled on Jan 19 2010 at 15:10:54
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "C:\Documents and
Settings\perpa15\
sktop\New Folder\New folder\avrdude-5.10-win\avrdude.conf"
Using Port : lpt1
Using Programmer : usbasp
AVR Part : ATMEGA8
Chip Erase delay : 10000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages
MinW M
W ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------
----- --- ---------
eeprom 4 20 128 0 no 512 4 0
900000 0xff 0xff
flash 33 10 64 0 yes 8192 64 128
450000 0xff 0x00
lfuse 0 0 0 0 no 1 0 0
200000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0
200000 0x00 0x00
lock 0 0 0 0 no 1 0 0
200000 0x00 0x00
calibration 0 0 0 0 no 4 0 0
0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0
0 0 0x00 0x00
Programmer Type : usbasp
Description : USBasp, http://www.fischl.de/usbasp/
avrdude: auto set sck period (because given equals null)
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
Ich benutze den neuesten USB-Treiber und AVRdude 5.10
Die minimalbeschaltung des MC habe ich bereits zwei mal erneuert, ohne
Erfolg. Zur Verwendung kommt der interne Takt.
Leider bin ich nun am Ende meiner Weisheit angekommen.
Vieleicht habe ich in meiner Unwissenheit etwas übersehen?
Dank und Gruß
Patrick
Hast du denn "libusb" installiert?
Wenn nicht:
Windows requires a driver for USBasp:
usbasp-windriver.2009-02-28.zip (70 kB)
u.a. zu finden auf:
http://www.fischl.de/usbasp/
also bei mir gibg es erst mit avr studio 2009, da 2010 das nicht
unterstützt.
Nimm doch Avr burn o mat. Das ist einfacher (und ich kann dir besser
helfen).
Patrick Perl schrieb:>> müsste da nicht usb rein?>> Stimmt, aber ändert leider nichts.
Dann schicke mal bitte ein Log mit -vvvv (aber bitte als Anhang, das
ist lang). Du kannst das Log in eine Datei umleiten mit:
avrdude ... 2> logfile.txt
Naja, sehr gesprächig ist Thomas Fischls Code wohl nicht. :-/
Hast du auf dem Teil eigentlich eine aktuelle Firmware drauf?
Hast du ein Oszilloskop, mit dem du nachsehen kannst, ob an den
Ausgangspins (SCK, /RESET, MOSI) sich überhaupt etwas tut?
Angeblich ist es die aktuelle Firmware.
Ein Oszilloskop habe ich leider nciht hier :(
Meinst du ob sich seitens der Quell oder seitens der Zielschaltung was
tut?
>avrdude: error: programm enable: target doesn't answer. 1>avrdude: initialization failed, rc=-1> Double check connections and try again, or use -F to override> this check
USBASP läuft mit zu hoher Taktrate für die intern 1 MHZ getakteten Mega8
Dafür gibt es den "Slow SCK" Jumper, den setzen dann sollte es gehen
Da gebe ich dir recht.
Das wäre Jumper 3 aber den habe ich bereits gebrückt.
Ich habe auch bereits versuche den ATmega8 in der Zielschaltung zu
ersetzen, leider ohne Erfolg.
Patrick Perl schrieb:> Ein Oszilloskop habe ich leider nciht hier :(
Kennst du vielleicht jemanden, der sowas hat?
> Meinst du ob sich seitens der Quell oder seitens der Zielschaltung was> tut?
Ja, um erst einmal zu sehen, ob du ein Hardwareproblem hast mit
dem USBasp.
Für den allerersten Anfang würde sicher sogar ein Monoflop mit
angeschlossener LED genügen um zu sehen, ob an SCK da Impulse
angewackelt kommen.
Kannst du mal ein Bild (.jpg) von deiner Zielhardware machen oder sie
beschreiben?
Du schreibst nämlich nicht, wo du den USBasp abgeschlossen hast.
Grund:
avrdude: error: programm enable: target doesn't answer. 1
>> Ein Oszilloskop habe ich leider nciht hier :(> Kennst du vielleicht jemanden, der sowas hat?
Der nächste wäre 40km weg :(
>> Meinst du ob sich seitens der Quell oder seitens der Zielschaltung was>> tut?> Ja, um erst einmal zu sehen, ob du ein Hardwareproblem hast mit> dem USBasp.>> Für den allerersten Anfang würde sicher sogar ein Monoflop mit> angeschlossener LED genügen um zu sehen, ob an SCK da Impulse> angewackelt kommen.
meinst du eine LED mit Vorwiederstand tät es auch oder wäre die zu
träge?
Nimm mal einen Atmega der mit >= 8Mhz Quarz läuft. Bei mir ist es als so
das es mit 1Mhz manchmal auch nicht klappt, auch mit langsam Jumper. Ich
setzte dann immer die Quarz Fuse und programmiere ihn dann mit einem
8Mhz Quarz. Niedrigeres hab ich leider noch nicht probiert.
Brenner schrieb:> Kannst du mal ein Bild (.jpg) von deiner Zielhardware machen oder sie> beschreiben?> Du schreibst nämlich nicht, wo du den USBasp abgeschlossen hast.> Grund:> avrdude: error: programm enable: target doesn't answer. 1
Ich habe das ganze auf einem Steckbrett zusammengebaut, da ich dort die
fertige Schaltung erstmal testen möchte.
übernommen habe ich folgendes Schaltschema:
http://www.fundf.net/usbasp/pic/simple_mega8.png
Mangels quarz habe ich an jede leitung mal eine LED gesetzt.
Sobald strom da ist liegt spannung an MISO.
Wenn ich versuche mit swm MC zu kommunizieren, ändert sich allerdings
nichts.
Ohne USB Verbindung läuchten alle 4 LEDs
Ein Bild der Schaltung anbei
Achso du hast gar kein anderes Programmiergerät außer den Usbasp.
Hm... Ich würde dir empfehlen aus einem Transitor und 3 Widerständen
einen Seriell / Parallel Programmer zu basteln (schau dir mal das Atmel
Evalutions Board von Pollin an da wird das auch so gemacht).
Quarz allein bringt dir nichts du musst die Fuse setzen.
Oder vielleicht kann man die Programmiergeschwindigkeit noch mehr über
software senken. Ich setzte immer erst über mein Board die Quarzfuse
(oder wie die heißt) und programmiere dann über Usbasp.
Und wenn die grüne usbasp led leuchtet, funktioniert er. Dann kann
hardwaremäßig nur noch was von Usbasp Ausgang zu µC falsch sein.
am Seriallen Anschluß hapert es leider auch ;)
Deswegen habe ich mich für eine USB Lösung entschieden
Weder mein PC noch der Laptop haben noch einen Com-Port :(
Hätte ich den mit einem ATmega16 bessere Karten?
Wobei der 8er genau das ist was ich für meine Schaltung brauche...
Ich hab das nochmal ausprobiert. Komisch mit meinem neuen Mega8L
funktioniert das, dabei hätte ich schwören können, das vor ein paar
Wochen das mit dem normalen Mega8-16 nicht funktioniert hat. Egal.
Überprüfe nochmal deine Schaltung von Usbasp-ISP zum ISP des µCs, da
muss der Fehler liegen. Nutzt du eigentlich eine Pfostenbuchse? Ich hab
bei meinem Usbasp diese falsch eingelötet. Damit das dann passte musste
ich ein bisschen schnitzen ;)
Ich hab schon oft gelesen das es mit oder ohne geht. Auch schon das
einer dran muss. Ich hab bisher immer einen benutzt und hab keine
Probleme gehabt. Und die 5cent sinds doch wert, oder?
Samuel K. schrieb:> Ich hab das nochmal ausprobiert. Komisch mit meinem neuen Mega8L> funktioniert das, dabei hätte ich schwören können, das vor ein paar> Wochen das mit dem normalen Mega8-16 nicht funktioniert hat. Egal.>> Überprüfe nochmal deine Schaltung von Usbasp-ISP zum ISP des µCs, da> muss der Fehler liegen. Nutzt du eigentlich eine Pfostenbuchse? Ich hab> bei meinem Usbasp diese falsch eingelötet. Damit das dann passte musste> ich ein bisschen schnitzen ;)
Ich habe am 10 Poligen Kabel zum MC hin einzelne Anschlüsse gelötet
Welche pfostensteckbuchse meinst du am USBASP?
Ich benutze den Bausatz Fischl.de
Ich weiß nicht wie der von Fischl ist - ich hab die SChaltung von
Ulrich radig genommen. Allerdings deutlich kleiner als die fertige
Platine ist aufgebaut. Prüf einfach mal ob die Anschlüsse richtig zum µC
gehen. Ich vermute das ist falsch.
Mach aber erst mal einen 100nF zw. Vcc und GND, so nah wie geht an den
µC.
Samuel K. schrieb:> Ich hab schon oft gelesen das es mit oder ohne geht. Auch schon das> einer dran muss. Ich hab bisher immer einen benutzt und hab keine> Probleme gehabt. Und die 5cent sinds doch wert, oder?
Stimmt schon ;)
War eine Fehleinschätzung meinerseits.
Habe nochmal 2 die ich noch hatte eingesetzt aber ohne Änderung.
Wenn du die 4 Kabel zum µC richtig hast, dürfte der µC nicht
funktionieren, bzw. falsch angeschlossen sein. Überprüfe deine Schaltung
nochmal auf z.b. Spannungsversorgung, richtige Pinbelegung...
Achja hast du reset mit PullUp auf Vcc?
EDIT: OK, Pinbelegung müsste stimmen, Pullup auch.
Also wenn die SPannungsversorgung stimmt, dann ist er entweder kaputt
oder ichweiß nicht mehr weiter.
Patrick P. schrieb:> Wenn ich versuche mit swm MC zu kommunizieren, ändert sich allerdings> nichts.
Das ist nicht unnormal. Die Impulse sind so kurz, dass du davon
nichts merkst. Wenn schon, dann müsstest du sie mit einem Monoflop
verlängern, aber wenigstens ein primitiver Oszi wäre einfach mal
besser.
Patrick P. schrieb:> Am MC sollte es nciht liegen, ich habe mittlerweile 3 Stück getestet.
Dann wird's wohl an deinem USBasp liegen, wobei die Firmware ja
zumindest prinzipiell läuft, denn sie redet auf dem USB.
Ja das fürchte ich auch, ausser alle 3 MCs wurden defekt geliefert...
(stammen aus einer Lieferung)
Ich versuche momentan zugang zu einem Oszilloskop und/oder einem anderen
MC zu bekommen.
Viel Dank ;D
Mit der Firmware aus usbasp.2009-02-28.tar.gz habe ich mich auch schwer
getan. Dort wird abhängig von dem Bitclock entweder Hardware-SPI oder
Software-SPI verwendet. Hardware-SPI war i.o. Bei der Software-Version
erfolgte die Datenübernahme auf der verkehrten Flanke und die
delay-Routinen lieferten mit meinem gcc auch nur Müll. Also Flanke
umgedreht und delay-Routinen von avr-libc verwendet, und schon sah die
Software-SPI am LogicAnalyzer wie eine skalierte Hardware-SPI aus. Zudem
gab es ein weiteres Problemchen, und zwar wude beim "enter programming"
zur Synchronisation der SCL gepulst. Dies ist auch richtig für ältere
AVRs, bei dem von mir verwendeten Mega88 und Mega32 muss jedoch die
Resetleitung gepulst werden.