Forum: Mikrocontroller und Digitale Elektronik Mal wieder USBAsp


von Jens (Gast)


Lesenswert?

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.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Welche Version von avrdude ist das? Versuch mal ältere Versionen (5.2, 
5.3.1).

von Frank aus Köln (Gast)


Lesenswert?

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

von Jens (Gast)


Lesenswert?

> 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

C:\WinAVR-20100110\bin\avrdude.exe -p m8 -P USB:xx -c usbasp -e -U
flash:w:C:\ATMEGA8\blinky\default\Blinky.hex:a

von Jens (Gast)


Lesenswert?

Also ist die neuste Version, die bei WinAVR dabei ist.
Der Jumper ist auch gesetzt.

von Marco S (Gast)


Angehängte Dateien:

Lesenswert?

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

von Mike J. (emjey)


Lesenswert?

Die Version usbasp.2009-02-28.tar.gz läuft unter XP mit AVRdude und 
Linux mit meinen ATmegas. (ATmega 8, 16, 32,  ... ATmega644)

von Marco S (Gast)


Lesenswert?

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.

von Jens (Gast)


Lesenswert?

Dann werd ich das da mal versuchen.
Danke.
Werde morgen mal bescheid geben, ob es klappt oder nicht.

von Jens (Gast)


Lesenswert?

@Marco S

Ich bekomm die Dateien irgendwie nicht compiliert.
Könntest du mir evtl eine fertige .hex datei hochladen?
Wäre wirklich nett.

von Marco S (Gast)


Angehängte Dateien:

Lesenswert?

@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.

von Jens (Gast)


Lesenswert?

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.

von Marco S (Gast)


Lesenswert?

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.

von Jens (Gast)


Lesenswert?

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.

von Marco S (Gast)


Lesenswert?

(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.

von Jens (Gast)


Lesenswert?

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.

von Marco S (Gast)


Lesenswert?

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.

von Jens (Gast)


Lesenswert?

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.

von Marco S (Gast)


Angehängte Dateien:

Lesenswert?

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

von Jens (Gast)


Lesenswert?

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.

von Marco S (Gast)


Lesenswert?

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.

von Jens (Gast)


Lesenswert?

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.

von Bernhard M. (boregard)


Lesenswert?

Entweder, bei alter Firmware des USBasp, den Jumper für die reduzierte 
Geschwindigkeit setzen, oder, bei aktueller Firmware, bei avrdude -B 10 
für reduzierte Geschwindigkeit angeben.
Die Geschwindigkeiten sind:
-B 2000  500 Hz
-B 1000  1 kHz
-B 500   2 kHz
-B 250   4 kHz
-B 125   8 kHz
-B 62   16 kHz
-B 31   32 kHz
-B 10   93.75 kHz
-B 5    187.5 kHz
-B 2    375 kHz
-B 1    750 kHz
-B 0.5  1.5 MHz

andere Werte bringen beim USBasp auch keine anderen Geschwindigkeiten.

von Jens (Gast)


Lesenswert?

Also weder mit anderen Geschwindigkeiten noch mit gesetzem Jumper hab 
ich erfolg.
Klappt leider erst ab 2 Mhz

von Jens (Gast)


Lesenswert?

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.

von Michael R. (Gast)


Lesenswert?

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/.

von Jens (Gast)


Lesenswert?

Nein, ich hab einen Schaltplan indem keine drin sind.

von greg (Gast)


Lesenswert?

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.

von joachim (Gast)


Lesenswert?

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.....

von Oliver J. (skriptkiddy)


Lesenswert?

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

von Sven (Gast)


Angehängte Dateien:

Lesenswert?

So, das ist die Schaltung, die ich nachgebaut habe.
Lediglich die Kondensatoren am Quarz hab ich durch 22pF ersetzt.
sonst ist alles gleich.

von Frickler (Gast)


Lesenswert?

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

von Jens (Gast)


Lesenswert?

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.

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.