Forum: Mikrocontroller und Digitale Elektronik Usbasp funktioniert nicht richtig


von Sandro L. (sandro_l)


Lesenswert?

Hallo,

Ich habe einen Usbasp von HobbyKing gekauft. Da dieser eine ältere 
Firmware drauf hatte, habe ich ihn mit Hilfe des Usbasp's von einem 
Kollegen die Firmware aktualisiert. Hat soweit auch alles geklappt.

Jetzt wollte ich einen ATtiny2313 programmieren. Den selben Controller 
hatte ich zuvor bereits geflasht.

Leider gehts jetzt nicht mehr. Ich hab auch schon verschiedene Exemplare 
ausprobiert. Zu beginn hat avrdude einfach als Device Signature 0xFFFFFF 
oder 0x000000 zurückgegeben und abgebrochen. Seit neustem bricht avrdude 
bereits zu Beginn wieder ab mit der Fehlermeldung "Target doesn't 
answer".
Ich hab alle Leitungen auf Unterbrücke überprüft und sogar mal ein 
anderes Kabel und Programmiergerät genommen und probiert, von Windows 
und von Mac zu flashen. Hat alles nicht funktioniert.

Wenn ich hingegen den einen Usbasp mit dem andern flashen will, klappt 
es ohne Fehlermeldung! Deshalb hab ich mal probiert, einen ATtiny26 zu 
flashen, hatte aber das selbe Ergebnis wie beim ATtiny2313.

Hat jemand einen Rat, was ich übersehen hab oder was ich noch 
ausprobieren kann?

von Meppel (Gast)


Lesenswert?

Kauf Dir was vernünftiges und Du hast keinen Ärger mit so nem Krampf.

Geiz ist Geil lohnt sich nicht.

Merket aus Holland.

von Peter S. (petershaw)


Lesenswert?

Hi Sandro,

versuch mal bitte einen ATMega zu flashen, falls du einen herumliegen 
hast.
Ich bekomme auch kein ATtiny mit usbasp geschrieben. Liegt bei mir an 
mehreren Faktoren, prüf als erstes mal sie Spannung, der tiny ist 
wesentlich empfindlicher.

von Neo (Gast)


Lesenswert?

Von den chinesendingern hatte ich 2 Stück, keins der beiden hat wirklich 
das getan was es sollte....
kauf dir den mysmartusb light für 15€, das ist der günstigste isp 
programmer mit einer einfach nur super geschriebenen software. (ich mein 
die gui is gut verständlich)

von isnah (Gast)


Lesenswert?

Zeige deine avrdude-Befehlszeile und den avrdude-Kommunikationsoutput 
beim Aufruf mit der -vvvv Option.

von Sandro L. (sandro_l)


Lesenswert?

Vielen Dank für die schnellen Antworten.

Ich werde mal versuchen, einen ATMega8 zu flashen... Wenn es 
funktionieren sollte, kann es  mit Sicherheit nicht an der Verkabelung 
liegen.
Dann werde ich auch den avrdude output nachreichen.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Sandro L. schrieb:
> Vielen Dank für die schnellen Antworten.
>
> Ich werde mal versuchen, einen ATMega8 zu flashen... Wenn es
> funktionieren sollte, kann es  mit Sicherheit nicht an der Verkabelung
> liegen.
> Dann werde ich auch den avrdude output nachreichen.

Und prüf mal bitte, welcher Takt bei deinen ATinys eingestellt ist. Der 
Programmiertakt muss nämlich deutlich niedriger sein (siehe Datenblatt).

Falls du den Takt nicht kennst, dann stell versuchsweise den 
Programmiertakt auf ganz langsam, das geht bei avrdude mit der Option 
-B, also z.B. -B 600

Und... wie isnah schon schrieb, zeige uns deine Befehlszeile sowie die 
Ausgaben von avrdude, sonst können wir hier nur Rätsel raten. :-)
Bei mir laufen die USBasp nämlich sehr zuverlässig, wenn sie die 
aktuelle Firmware drauf haben.

von jojo (Gast)


Lesenswert?

Hi, ich bin auch so ein Geiz ist geil Typ, und bin noch einen schritt 
weiter gegengen.
ich habe mir den USB Programmer von Thimas Fishl (Fishl.de) 
selbstgebaut.
ist aber sowies Aussieht genau der Gleiche Programmer und funktioniert 
einwandfrei.
Mein Programmer hat einen Schalter for einen langsamen Programmiermodus, 
und den musste ich beim programmieren von Attinys setzen, bis der 
interne Vorteiler (/8) über die Fuses ausgeschaltet wurde.

viele Grüße

von jojo (Gast)


Lesenswert?

jojo schrieb:
> ich habe mir den USB Programmer von Thimas Fishl (Fishl.de)
> selbstgebaut.

sorry Schreibfehler, wenn sich jemand dafür interresiert, war Thomas 
fischl www.fischl.de

von Peter S. (petershaw)


Lesenswert?

jojo schrieb:
> Schalter for einen langsamen Programmiermodus

Hi Jojo, kannst du mir das mit dem Schalter mal genauer erklären? Würde 
mich interessieren. (Solange Sandro noch am schrauben ist. - will hier 
ja keinen Thread ownen.)

Lieben Dank,
ps

von Martin (Gast)


Lesenswert?

Peter Shaw schrieb:
> Hi Jojo, kannst du mir das mit dem Schalter mal genauer erklären? Würde
> mich interessieren. (Solange Sandro noch am schrauben ist. - will hier
> ja keinen Thread ownen.)

Bei dem neue Firmware (so viel ich weiss) braucht man nicht stattdessen 
benutzt man in AVRDUDE die Funktion -B bzw. was hier Markus schreib.

Markus Weber schrieb:
> Falls du den Takt nicht kennst, dann stell versuchsweise den
> Programmiertakt auf ganz langsam, das geht bei avrdude mit der Option
> -B, also z.B. -B 600

von Peter S. (petershaw)


Lesenswert?

Ah ok, die Übertragungsgeschwindigkeit. Hatte ich als zwei verschiedene 
Dinge gelesen.

Danke!

von Postix (Gast)


Lesenswert?

Neo schrieb:
> Von den chinesendingern hatte ich 2 Stück, keins der beiden hat wirklich
> das getan was es sollte...

Ich habe einen Sack voll von den Dingern und die tun es alle 
einwandfrei. Allerdings habe ich sie erst ausprobiert und dann mit neuen 
Firmwares experimentiert. Nun ist es schwer fest zu stellen, was hier 
nicht stimmt. Was hier auf jeden Fall noch fehlt: Bitte mal alle 
Jumperstellungen auflisten. Eventuell steht z.B. noch auf 
self-programming...

von Postix (Gast)


Lesenswert?

A propos: Bilder vom Aufbau helfen oft mehr als Worte!

von Sandro L. (sandro_l)


Lesenswert?

Die Option -B 200 habe ich auch schon probiert. Hat aber auch nichts 
gebracht.

Mein Usbasp hat 2 Lötjumper (also für eine Lötbrücke). Einer ist für 
self-programming. Dort habe ich zum programmieren ein Stück Metall zum 
verbinden draufgedrückt. Daran kanns also nicht liegen. Die Funktion des 
anderen konnte ich noch nicht in Erfahrung bringen.

Ein normaler Jumper hat es auch drauf, der bestimmt aber nur, ob die 
Schaltung vom USB gespeist wird oder eine externe Spannungsquelle den zu 
programmierenden Controller speist.

Ich kann erst am späten Nachmittag Bilder und den avrdude Befehl mit 
Output posten.

von jojo (Gast)


Lesenswert?

@Shawn:

der Schalter ist einfach ein Jumper auf dem Board.
Wenn der gesetzt ist wirde der Programmiertakt heruntergeseiach habe da 
halt einen Schalter drauf gemacht.

manche langsamere Kontroller benötigen in der ausgangskonfiguration 
einen langsameren Takt, zumindest bis man Die Fuses richtig eingestellt 
hat.
danach kann man den Schalter (Jumper) wieder umschalten, und in wenigen 
sekunden so ein Teil flashen.

von Sandro L. (sandro_l)


Angehängte Dateien:

Lesenswert?

So, hab mal einen ATMega16, den ich gefunden habe, drangehängt (siehe 
Bild) und mit folgendem Befehl getestet:
1
avrdude -c usbasp -P usb -p m16 -B 600 -v -v

Hier der Output:
1
avrdude: Version 5.11.1, compiled on Aug 12 2013 at 20:23:12
2
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
3
         Copyright (c) 2007-2009 Joerg Wunsch
4
5
         System wide configuration file is "/opt/local/etc/avrdude.conf"
6
         User configuration file is "/Users/salu95/.avrduderc"
7
         User configuration file does not exist or is not a regular file, skipping
8
9
         Using Port                    : usb
10
         Using Programmer              : usbasp
11
         Setting bit clk period        : 600.0
12
avrdude: seen device from vendor ->www.fischl.de<-
13
avrdude: seen product ->USBasp<-
14
         AVR Part                      : ATMEGA16
15
         Chip Erase delay              : 9000 us
16
         PAGEL                         : PD7
17
         BS2                           : PA0
18
         RESET disposition             : dedicated
19
         RETRY pulse                   : SCK
20
         serial program mode           : yes
21
         parallel program mode         : yes
22
         Timeout                       : 200
23
         StabDelay                     : 100
24
         CmdexeDelay                   : 25
25
         SyncLoops                     : 32
26
         ByteDelay                     : 0
27
         PollIndex                     : 3
28
         PollValue                     : 0x53
29
         Memory Detail                 :
30
31
                                  Block Poll               Page                       Polled
32
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
33
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
34
           eeprom         4    10   128    0 no        512    4      0  9000  9000 0xff 0xff
35
           flash         33     6   128    0 yes     16384  128    128  4500  4500 0xff 0xff
36
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
37
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
38
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
39
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
40
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
41
42
         Programmer Type : usbasp
43
         Description     : USBasp, http://www.fischl.de/usbasp/
44
45
avrdude: try to set SCK period to 0.0006 s (= 1666 Hz)
46
avrdude: set SCK frequency to 1000 Hz
47
avrdude: AVR device initialized and ready to accept instructions
48
49
Reading | ################################################## | 100% 0.10s
50
51
avrdude: Device signature = 0x1e9403
52
avrdude: safemode: lfuse reads as E1
53
avrdude: safemode: hfuse reads as 99
54
55
avrdude: safemode: lfuse reads as E1
56
avrdude: safemode: hfuse reads as 99
57
avrdude: safemode: Fuses OK
58
59
avrdude done.  Thank you.


Und hier dasselbe mit den ATtiny26
Hier habe ich aber eine kleine Platine gemacht, weil ich diesen 
Controller öfters brauchen werde. Hab das ganz aber auch mit dem Kabel 
wie beim ATmega16 probiert. Kam genau das gleiche raus.

Befehl:
1
avrdude -c usbasp -P usb -p t26 -B 600 -v -v
Output:
1
avrdude: Version 5.11.1, compiled on Aug 12 2013 at 20:23:12
2
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
3
         Copyright (c) 2007-2009 Joerg Wunsch
4
5
         System wide configuration file is "/opt/local/etc/avrdude.conf"
6
         User configuration file is "/Users/salu95/.avrduderc"
7
         User configuration file does not exist or is not a regular file, skipping
8
9
         Using Port                    : usb
10
         Using Programmer              : usbasp
11
         Setting bit clk period        : 600.0
12
avrdude: seen device from vendor ->www.fischl.de<-
13
avrdude: seen product ->USBasp<-
14
         AVR Part                      : ATTINY26
15
         Chip Erase delay              : 9000 us
16
         PAGEL                         : PB3
17
         BS2                           : PB2
18
         RESET disposition             : dedicated
19
         RETRY pulse                   : SCK
20
         serial program mode           : yes
21
         parallel program mode         : yes
22
         Timeout                       : 200
23
         StabDelay                     : 100
24
         CmdexeDelay                   : 25
25
         SyncLoops                     : 32
26
         ByteDelay                     : 0
27
         PollIndex                     : 3
28
         PollValue                     : 0x53
29
         Memory Detail                 :
30
31
                                  Block Poll               Page                       Polled
32
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
33
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
34
           eeprom         4    10    64    0 no        128    0      0  9000  9000 0xff 0xff
35
           flash         33     6    16    0 yes      2048   32     64  4500  4500 0xff 0xff
36
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
37
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
38
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
39
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
40
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
41
42
         Programmer Type : usbasp
43
         Description     : USBasp, http://www.fischl.de/usbasp/
44
45
avrdude: try to set SCK period to 0.0006 s (= 1666 Hz)
46
avrdude: set SCK frequency to 1000 Hz
47
avrdude: error: programm enable: target doesn't answer. 1 
48
avrdude: initialization failed, rc=-1
49
         Double check connections and try again, or use -F to override
50
         this check.
51
52
53
avrdude done.  Thank you.

Die Spannung, die am Controller anliegt, ist 4.93 V.

von Postix (Gast)


Lesenswert?

Welche Masseleitung hast du fuer den "kleinen" ISP-Anschluss verwendet? 
Bei einigen USBASP ist noch die serielle Schnittstelle mit auf dem 
ISP-Anschluss...

von Sandro L. (sandro_l)


Lesenswert?

Masse ist beim ISP 10 an Pin 4.
Das Kabel wurde beim Usbasp mitgelifert.

von Postix (Gast)


Lesenswert?

Pin 4 waere exakt der Kandidat fuer Txd. Auf deinem Bild kann man zwar 
sehen, dass der mit GND beschriftet ist, aber miss es mal nach.

von Sandro L. (sandro_l)


Lesenswert?

Also, ich hab mal die Spannung gemessen. Die liegt bei 5.1 V und ist mit 
allen anderen Pins, die GND sind, verbunden.

von Postix (Gast)


Lesenswert?

Nicht Spannung messen, sondern feststellen, wo die Leiterbahnen lang 
gehen. Wenn du auf GND 5.1v misst, stimmt ganz sicher was nicht... aber 
wohl eher an der Messung. Gegen welchen Bezugspunkt hast das denn 
gemessen?

von Sandro L. (sandro_l)


Lesenswert?

Als Bezugspunkt habe ich den VCC Pin gleich nebenan genommen (hab also 
die Spannung zwischen VCC und GND gemessen).

Die GND Pins auf dem Usbasp sind mit der Massefläche verbunden. Hab es 
auch mit dem Durchgangsprüfer geprüft. die GND pins sind mit dem 
Masse-Pin des USB-Steckers direkt verbunden.

von Peter K. (peterka2000)


Lesenswert?

Ich hab (leider) noch nie einen USBASP in den Händen gehalten, aber 
probiers mal mit einer externen Versorgungsspannung für den AVR.

von Sandro L. (sandro_l)


Lesenswert?

Peter K. schrieb:
> Ich hab (leider) noch nie einen USBASP in den Händen gehalten, aber
> probiers mal mit einer externen Versorgungsspannung für den AVR.

Mit einer externen Spannungsversorgung für den zu programmierenden 
Controller hat es tatsächlich funktioniert! Beim Usbasp hab ich einfach 
den Jumper entfernen müssen.


Vielen tausend Dank Peter K.

von Peter S. (petershaw)


Lesenswert?

Super.
Dann war mein erster Verdacht ja auch in die richtige Richtung. :-)

freut mich das es bei dir nun klappt.

Für weitere Leser währe es eventuell schön, wenn du ein Bild den Jumpers 
auf dem Board fotografierst. Das wäre ein super schönes und 
erfolgreiches Ende.

von batman (Gast)


Lesenswert?

Der gängige Jumper, der die +5V vom USB-Port mit dem Vcc zum Target 
verbindet.
Eigentlich müßte der Saft vom USB zum Programmieren reichen. Da wird was 
mit der Verdrahtung faul sein.

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.