Hallo!
Ich hab mir jetzt auch den Brenner von Fischl nachgebaut.
Neuste Firmware und neuster Treiber installiert (WinXP).
Wenn ich ihn anstecker, wird er erkannt und die rote LED leuchtet.
Starte ich jetzt Burn-O-Mat und versuch was rüberzuschieben bekomm ich
folgende Fehlermeldung.
C:\WinAVR-20100110\bin\avrdude.exe -C
C:\WinAVR-20100110\bin\avrdude.conf -p m8 -P usb -c usbasp -U
flash:w:C:\ATMEGA8\blinky\default\Blinky.hex:a
avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
Double check connections and try again, or use -F to
override
this check.
avrdude.exe done. Thank you.
WinAVR ist die neuste version, mit dem beiliegenden AVRDUDE
Ich hab es schon mi mehreren Kabeln versucht, leider ohne Erfolg.
Ich bin jetzt seit 3 Tagen am versuchen und am lesen, aber leider klappt
garnichts.
Hallo,
Hast Du die Steckbrücke im USB ASP auch auf "Slow Device" gesteckt, da
falle ich auch immer drauf rein, wenn ich neue controller Flashe.
Gruß aus Köln
Frank
Hallo erstmal.
Habe ich am 05.10.2010 schon einmal dargelegt. Die Firmware
usbasp.2009-02-28.tar.gz scheint unvollendet. Hatte auch die Probleme
mit initialization failed, bis ich gesehen habe, das usbasp zur
Synchronisation SCK pulst. Meine AVRs wollten jedoch über /RES
synchronisiert werden (Mega8, Megax8).
Anbei meine zurechtgegaggelte Version mit sync auf /RES per default.
Gruß
Marco
Wenn der erste Zugriff durch "enter programming" erfolgreich ist,
braucht es auch keine Synchronisation. Warum das bei mir der Fall war,
weiss ich auch nicht. Hatte halt gelegentlich Ausfälle diesbezüglich.
Mit meinem Code seither gar keine Probleme diesbezüglich.
@Jens
Hoffentlich klappt es bei dir.
Habe den clockGenerator fuer Mega8 herausgenommen, aber immer noch mit
Bastelcode drinnen. Fuer Mega88 habe ich damit schon erfolgreich
geflasht.
So, ich hab jetzt mal deine Firm drauf gemacht, aber es klappt immer
noch nicht.
Gleiche Fehlermeldung.
Eins ist aber anders. Jetzt leuchtet die andere LED permanent.
Mit der original Software war immer die Rote LED an, jetz auf einmal die
Grüne.
Beim Versuch zu lesen oder zu schreiben leuchtet die zweite LED einmal
kurz auf und das wars.
In der Tat habe ich beim Bestücken die beiden LEDs vertauscht. Lötkolben
anheizen dauert 1 Minute, SourceCode umschreiben 10 Sekunden. Daher
einfach bei ledGreenOn&co PC0 gegen PC1 austauschen. Finde es ausserdem
schicker, grün für betriebsbereit und rot für Aktion zu verwenden.
Jetzt wäre es angebracht, mal mit einem LogicAnalyzer nachzusehen. Ein
Oszi kann auch hilfreich sein, um zu sehen, wie die Pins wackeln. Steht
beides nicht zur Verfügung hilft auch schon eine einfache LED mit
Vorwiderstand. MOSI und SCK sind im Normalfall low. Vielleicht auch
einfach mal mit einem Ohmmeter gemäß #define ISP_MOSI PB3 schauen, ob
der Widerstand von Prozessorpin zu Prozessorpin im Rahmen liegt, oder
überhaupt deiner Hardware entspricht. Über 270 Ohm sind bei mir für den
MegaX8-Programmer folgende Pins von Host-Target verbunden: 16-1, 17-17,
18-18, 19-19; wobei als Host ein Mega88 dient.
Als ich meine ersten Versuche mit einem zerflashten AVR gemacht habe,
hatte ich auch das Problem des fehlenden Taktes. Dazu habe ich dann den
clockGen geschrieben, mit dem man das Target takten kann.
In der Versuchsphase habe ich den USBaspLoader kennengelernt. Das ist
ein Bootloader, welcher einen usbasp simuliert, um die usbasp-Firmware
neu einzuspielen. Deshalb ist auch die Abfrage von PC2 herausgenommen
und zum starten vom Bootloader verwendet. Das spart das lästige ein- und
ausstecken beim Flashen. Den 8kHz ISP-Takt bekommt man unter avrdude
auch mit der Option -B 100 hin.
Ganz sicher dass es -B 100 ist.
Ich hab es nämlich die ganze Zeit mit -B 10 versucht.
Ich hatte am Anfang auch noch die Probleme, dass das Interface garnicht
erkannt wurde.
Das lag an den 2 Kondensatoren. Irgendwie waren die schon platt.
Ich werde mir morgen mal eine Platine für die Schaltung ätzen und sie
mal darauf aufbauen. Und dann werde ich es mal mit dem Pollin-Board
versuchen.
Im moment hab ich alles nur auf nem Steckbrett aufgebaut.
Vllt. liegt auch da der Fehler.
(surfer):~/projects/usbasp/firmware $ a88 -U flash:w:main.hex -B 100
avrdude: Version 5.10, compiled on Dec 24 2010 at 16:23:41
avrdude: set SCK frequency to 8000 Hz
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100%
0.05s
avrdude: set SCK frequency to 8000 Hz
avrdude: writing flash (4838 bytes):
Writing | ################################################## | 100%
71.14s
avrdude: 4838 bytes of flash written
avrdude: input file main.hex contains 4838 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100%
62.02s
avrdude: 4838 bytes of flash verified
Steckbrett kann funktionieren. Auch die 100n-Blockkondensatoren an VCC
nicht vegessen? Einfach mal schauen, ob an MOSI und SCK was rausgeht und
das Target an MISO antwortet. RESET muss natürlich auch auf GND gezogen
werden. Nach Möglichkeit an dem Metall messen, welcher in den Prozessor
geht.
Ja, der 100n ist da.
Hatte allerdings nur noch ein Vielschicht da, sollte aber auch gehen.
Morgen werd ich das Teil mal am Oszi nachmessen.
Ich seh grad, dass es bei dir ja mit der avrdude 5.1 funkitioniert.
Also müsste es ja auch mit meiner von WinAVR 2010 gehen.
Ist eigentlich Version 5.10
(http://download.savannah.gnu.org/releases/avrdude/avrdude-5.10.tar.gz),
und, wenn ich das richtig sehe, vom Januar 2010.
Meinen ersten usbasp-Prototyp habe ich auf Lochraster aufgebaut. Wollte
auch erst ätzen, aber so ging es schneller. Und ist zudem noch leichter
erweiterbar.
Könntest du mir vom avrdude auch eine Compilierte Version hochladen?
Ich hab im moment nichts da, mit dem ich es compilieren könnte.
Wenn es in der kombination ja bei dir geht, müsste es ja bei mir auch
klappen.
Ich möchte nämlich alles vom Laptop aus machen und da hab ich weder
Parallel noch Seriell dran.
Die selbstcompilierte Version ist unter Linux. Ob eine aktuelle Version
was reißt, weiß ich nicht, denn hier an der Arbeit funktioniert das
ganze auch mit
C:\Programme\WinAVR-20090313\bin\avrdude.exe
ohne Probleme. Selbige anbei im Anhang
Danke fürs Hochladen!
Klappt aber leider immer noch nicht.
Hab jetzt mal mein "altes" Board geholt und wenn ich versuch zu lesen
oder zu schreiben, dann blinken auf dem Board die Led's die an MOSI und
SCK hängen kurz auf.
Auch mit gesetzem Jumper klappt es nicht.
Dann würde ich mal schauen, ob auf MISO auch was passiert. Ist dies
nicht der Fall, eventuell mal einen Takt an XTAL1 anlegen und schauen,
ob sich MISO dann regt.
So, ich hab die Platine jetzt geätzt und alles verlötet.
Erster Versuch.... Nichts!
Dann hab ich den Mega8 seriell an einem anderen PC auf 8 Mhz intern
gestellt und dann klappt es.
Wie bekomm ich es jetzt noch hin, dass ich mit dem 1Mhz
auslieferungszustand per USB flashen kann??
Da der andere PC mit serieller Schnittstelle weg kommt, wär es schon
hilfreich, wenn das gehen würde.
So, neues Problem.
Mit dem AVR Burn-O-Mat klappt jetzt alles.
Jetzt wollte ich gern alles auf meinem Laptop installieren.
Ich hab den USBAsp das erste mal angeschlossen, da wurde er auch noch
richtig erkannt.
Treiber installiert und jetzt zeigt er mir nur noch "Unknown Device" und
ich kann keinen Treiber mehr installieren.
An meinen beiden anderen PC's funktioniert er ohne Probleme.
Jens:
> Jetzt wollte ich gern alles auf meinem Laptop installieren.
[...]
> An meinen beiden anderen PC's funktioniert er ohne Probleme.
Sind die Zener-Dioden eingebaut? D1 und D2 im Schaltplan auf
http://www.fischl.de/usbasp/.
Das ist schlecht, die Z-Dioden sind wichtig. An den meisten (modernen)
USB-Anschlüssen geht es nicht ohne. USB hat eine I/O-Spannung von 3.3V
und in vielen Fällen sind die Host-Controller nicht 5V-tolerant.
Den Fehler hatte ich schon öfter; jedesmal, wenn ich eine neue Version
von WinAVR aufspielte, ging der usbasp nicht mehr. (das letzte Mal war
gestern nachmittag)
Nimm die Version von 2007; dann geht es wieder.
Frag mich aber nicht, woran das liegt.....
Jens schrieb:> Nein, ich hab einen Schaltplan indem keine drin sind.
Sind denn die USB-Daten-Pegel (D+ / D-) 5V, bzw. wird der AVR mit 5V
gepeist?
Wenn ja ist es kein Wunder, dass es mit manchen Hosts nicht
funktioniert. Die USB-Spec legt IMHO Pegel zw. 2.7V und 3.6 V fest.
Einige Hostcontroller können mit 5V, andere geben einen Fehler aus.
Am besten du postest mal deine Schaltung. Da können wir auch mal einen
Blick drauf werfen.
Gruß Skriptkiddy
Häng mal ein Diode in die Spannungsversorgung zum µC. Ist zwar nicht
sonderlich sauber, aber hat bei mir meistens funktioniert. Ist
allerdings eine Frickellöung ohne jegliche Gewähr meinserseits.
Frickler
Ich hab jetzt einfach 2,7 V Dioden in die Signalleitungen reingemacht
und siehe da, es geht.
Einziges Problem ist jetzt noch, wenn ich einen Mega8 beschreibe klappt
es, will ich es danach wieder versuchen, klappt es nicht mehr.
"Target doesnt answer. 1"
ganz schön seltsam.