ATtiny13 lässt sich nicht programmieren - Brauche Ideen zum debuggen

#3239937
Lesenswert?

Hallo,

ich versuche seit Tagen den Fehler zu finden - und bin kurz vorm 
Aufgeben.
Folgendes Verhalten tritt bei mir auf: ich kann über SPI die Fuses 
auslesen und setzen. Den Upload kann ich nicht ausführen.

Der Output von den Fuses:
1
avrdude -c usbasp -b 300 -p t13 -q -U lfuse:r:LOW.tmp:h -U hfuse:r:HIGH.tmmp:h
2

3
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
4
avrdude: AVR device initialized and ready to accept instructions
5
avrdude: Device signature = 0x1e9007
6
avrdude: reading lfuse memory:
7
avrdude: writing output file "LOW.tmp"
8
avrdude: reading hfuse memory:
9
avrdude: writing output file "HIGH.tmmp"
10

11
avrdude: safemode: Fuses OK

ergibt folgende Konfiguration:
1
LOW: 0x6a
2
HIGH: 0xff

Der Upload der Software bringt folgende Fehlermeldung;
1
 
2
avrdude: verifying ...
3
avrdude: verification error, first mismatch at byte 0x0000
4
         0x09 != 0xff
5
avrdude: verification error; content mismatch

Ich programmiere seit einiger Zeit Erfolgreich ATmega's. Auf dem Tiny 
bin ich neu. Für ein Projekt brauche ich viel kleine tinys und habe mir 
ein Sack-Voll bestellt. Auf meinem Programmer-Board soll ich entweder 
einen Mega328 programieren können, oder einen Tiny13.
Ich benutze den ATtiny13-20PU
Schaltplan anbei.

Zur Erklärung: Der Sockel vom Mega ist NICHT belegt! Die LED'S am Tiny 
sind (anders als auf dem Schaldplan) sind NICHT verbunden. Es handelt 
sich also um die im Netz gefundenen Basisbeschaltungen.

Anbei noch der volle Output vom avrdude. Eventuell übersehe ich etwas?
1
avrdude -c usbasp -B300 -Uflash:w:PS_AVR_Programmer.hex -p t13 -F -e -i 10 -v
2

3
avrdude: Version 5.11.1, compiled on Jul  8 2013 at 13:22:36
4
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
5
         Copyright (c) 2007-2009 Joerg Wunsch
6

7
         System wide configuration file is "/usr/local/Cellar/avrdude/5.11.1/etc/avrdude.conf"
8
         User configuration file is "/Users/petershaw/.avrduderc"
9
         User configuration file does not exist or is not a regular file, skipping
10

11
         Using Port                    : unknown
12
         Using Programmer              : usbasp
13
         Setting bit clk period        : 300.0
14
         Setting isp clock delay        :  10
15
         AVR Part                      : ATtiny13
16
         Chip Erase delay              : 4000 us
17
         PAGEL                         : P00
18
         BS2                           : P00
19
         RESET disposition             : dedicated
20
         RETRY pulse                   : SCK
21
         serial program mode           : yes
22
         parallel program mode         : yes
23
         Timeout                       : 200
24
         StabDelay                     : 100
25
         CmdexeDelay                   : 25
26
         SyncLoops                     : 32
27
         ByteDelay                     : 0
28
         PollIndex                     : 3
29
         PollValue                     : 0x53
30
         Memory Detail                 :
31

32
                                  Block Poll               Page                       Polled
33
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
34
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
35
           eeprom        65     5     4    0 no         64    4      0  4000  4000 0xff 0xff
36
           flash         65     6    32    0 yes      1024   32     32  4500  4500 0xff 0xff
37
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
38
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
39
           calibration    0     0     0    0 no          2    0      0     0     0 0x00 0x00
40
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
41
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
42

43
         Programmer Type : usbasp
44
         Description     : USBasp, http://www.fischl.de/usbasp/
45

46
avrdude: set SCK frequency to 2000 Hz
47
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
48
avrdude: AVR device initialized and ready to accept instructions
49

50
Reading | ################################################## | 100% 0.00s
51

52
avrdude: Device signature = 0x1e9007
53
avrdude: safemode: lfuse reads as 6A
54
avrdude: safemode: hfuse reads as FF
55
avrdude: erasing chip
56
avrdude: set SCK frequency to 2000 Hz
57
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
58
avrdude: reading input file "PS_AVR_Programmer.hex"
59
avrdude: input file PS_AVR_Programmer.hex auto detected as Intel Hex
60
avrdude: writing flash (124 bytes):
61

62
Writing | ################################################## | 100% 0.06s
63

64

65

66
avrdude: 124 bytes of flash written
67
avrdude: verifying flash memory against PS_AVR_Programmer.hex:
68
avrdude: load data flash data from input file PS_AVR_Programmer.hex:
69
avrdude: input file PS_AVR_Programmer.hex auto detected as Intel Hex
70
avrdude: input file PS_AVR_Programmer.hex contains 124 bytes
71
avrdude: reading on-chip flash data:
72

73
Reading | ################################################## | 100% 0.04s
74

75

76

77
avrdude: verifying ...
78
avrdude: verification error, first mismatch at byte 0x0000
79
         0x09 != 0x00
80
avrdude: verification error; content mismatch
81

82
avrdude: safemode: lfuse reads as 0
83
avrdude: safemode: hfuse reads as 0
84
avrdude: safemode: lfuse changed! Was 6a, and is now 0

Für jegliche Idee über einen Möglichen Fehler wäre ich dankbar.
Angehängte Dateien:
Gast #3239955
Lesenswert?

-B, nicht -b. Ist Case-sensitiv

hier:
> Der Output von den Fuses:

>avrdude -c usbasp -b 300 -p t13 -q -U lfuse:r:LOW.tmp:h -U >hfuse:r:HIGH.tmmp:h

und hier:
>Anbei noch der volle Output vom avrdude. Eventuell übersehe ich etwas?

>avrdude -c usbasp -B300 -Uflash:w:PS_AVR_Programmer.hex -p t13 -F -e -i 10 -v

die anderen Command-linwe options muss ich erst nachsehen...
#3239958
Lesenswert?

hm, komisch das die Megas so problemlos gehen,

hier der output, vieleicht hilft es:
1
avrdude -c usbasp -Uflash:w:PS_AVR_Programmer.hex -p t13 -e -v
2

3
avrdude: Version 5.11.1, compiled on Jul  8 2013 at 13:22:36
4
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
5
         Copyright (c) 2007-2009 Joerg Wunsch
6

7
         System wide configuration file is "/usr/local/Cellar/avrdude/5.11.1/etc/avrdude.conf"
8
         User configuration file is "/Users/kris/.avrduderc"
9
         User configuration file does not exist or is not a regular file, skipping
10

11
         Using Port                    : unknown
12
         Using Programmer              : usbasp
13
         AVR Part                      : ATtiny13
14
         Chip Erase delay              : 4000 us
15
         PAGEL                         : P00
16
         BS2                           : P00
17
         RESET disposition             : dedicated
18
         RETRY pulse                   : SCK
19
         serial program mode           : yes
20
         parallel program mode         : yes
21
         Timeout                       : 200
22
         StabDelay                     : 100
23
         CmdexeDelay                   : 25
24
         SyncLoops                     : 32
25
         ByteDelay                     : 0
26
         PollIndex                     : 3
27
         PollValue                     : 0x53
28
         Memory Detail                 :
29

30
                                  Block Poll               Page                       Polled
31
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
32
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
33
           eeprom        65     5     4    0 no         64    4      0  4000  4000 0xff 0xff
34
           flash         65     6    32    0 yes      1024   32     32  4500  4500 0xff 0xff
35
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
36
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
37
           calibration    0     0     0    0 no          2    0      0     0     0 0x00 0x00
38
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
39
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
40

41
         Programmer Type : usbasp
42
         Description     : USBasp, http://www.fischl.de/usbasp/
43

44
avrdude: auto set sck period (because given equals null)
45
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
46
avrdude: error: programm enable: target doesn't answer. 1 
47
avrdude: initialization failed, rc=-1
48
         Double check connections and try again, or use -F to override
49
         this check.
50

51

52
avrdude done.  Thank you.
53

54
make: *** [upload] Error 1
Gast #3239965
Lesenswert?

Jetzt da du die -F Option weggelassen hast siehst du, dass nicht einmal 
das Auslesen der Chipidentifikation funktioniert. Und die Fehlermeldung 
auf ein HW-Verbindungsproblem hinweist.
Ich nehme an die Falschnummerierung am ISP-Srecker ist ein 
Zeichnungsfehler, sonst müsstest du das ändern.
Was ich sicher einmal in deiner Schaltung ändern würde ist, einen der 
beiden 10k Widerstände, die anscheinend parallel sind, entfernen. Und 
die beiden Led-Pfade an MISO und MOSI, welche ca 10 mA brauchen ausser 
Betrieb setzen. Denn es ist gut möglich, dass es bei den Megas 
Funktioniert, aber beim ATtiny nicht.

isnah
Moderator Persönliche Seite #3239983
Lesenswert?

Peter Shaw schrieb:
1
> avrdude: safemode: lfuse reads as 6A 
2
> avrdude: safemode: hfuse reads as FF 
3
...
4
> avrdude: safemode: lfuse reads as 0 
5
> avrdude: safemode: hfuse reads as 0 
6
> avrdude: safemode: lfuse changed! Was 6a, and is now 0

Der verliert zwischendurch die Synchronisation.  Deine
ISP-Verkabelung ist zu wackelig (zu lang, zu schlechte Leitungen,
was auch immer). Sie funktioniert prinzipiell (zumindest im hier
zitierten ersten Beispiel, später wohl gar nicht mehr), denn Fuses
und Signatur ließen sich ja lesen.

Da du außerdem ein USBasp mit zu alter Firmware hast, kannst du die
ISP-Taktrate nicht runtersetzen, was noch (in Grenzen) als Würgaround
für ein schlechtes Kabel ansonsten nutzbar gewesen wäre.
#3240189
Lesenswert?

Danke für die Ausführungen und die Hinweise zu den Zeichnungsfehlern.
Ich habe die Zeichnung aktualisiert und werde nochmals die Verkabelung 
prüfen und die Pullups ändern. Klar so sind sie parallel, das habe ich 
beim Bau der Tiny-Sektion nicht beachtet.

Am Ende muss ich mir wohl einen eigenen USBasp bauen, der nue neuste 
Firmeware hat, nicht wahr?
Gast #3240200
Lesenswert?

der usbasp muss sich doch updaten lassen. Du hast den nicht 
selbstgebaut, sonder fertig gekauft. Hmm - tue also einfach so, als wenn 
Du dir selbst einen baust und verwende den gekauften statt dessen. 
Firmwareupdate geht bei mir über den USB. Ist aber ein wenig her. Müsste 
ich mich wieder einlesen. Ich glaube, ich hatte bei meinem USB-Dingens 
die Möglichkeit, mehrere Software Varianten "aufzuspielen". USBasp war 
da auch bei.
Evtl. möchte jemand das ausführen, der der mehr im Stoff steht.
axelr.
#3240273
Lesenswert?

Jörg Wunsch schrieb:

>
> Der verliert zwischendurch die Synchronisation.  Deine
> ISP-Verkabelung ist zu wackelig (zu lang, zu schlechte Leitungen,
> was auch immer). Sie funktioniert prinzipiell (zumindest im hier
> zitierten ersten Beispiel, später wohl gar nicht mehr), denn Fuses
> und Signatur ließen sich ja lesen.

Ich mache auch einige Zeit mit den Tiny13 rum und im Anfang ging alles 
gut, dann wieder nicht.
Letzten Endes war es die Spannungsversorgung. Die Tinys scheinen wohl 
deutlich empfindlicher auf die Spannungsversorgung zu reagieren. Wenn 
dann noch eine lange Leitung da dran ist, dann hatte ich zumindest die 
gleichen Probleme.
Für den 328ger war das kein Ding, aber war bei gleicher Konfiguration 
der Tiny im Zif, dann kamen genau solche Probleme.
Vielleicht schaust du mal nach deiner Spannung!
Auch "etwas" zu viel scheinen die nicht zu mögen.
#3243185
Lesenswert?

Sorry, wenn ich jetzt dumm frage. Ziemlich viel hier im Thread kann ich 
noch nicht verstehen.

Aber seitdem ich einen neuen PC mit Win 7 (64bit mit dem neuen PC) 
benutze habe ich mit ansonsten unveränderter Hardware auf einmal 
ähnliche Fehlermeldungen.

Ich benutze das Pollin board und flashe abwechselnd mit RS232 oder einen 
usbasp-clone.
Trotz Fehlermeldungen wird bei mir meistens das Programm richtig 
übertragen und funktioniert.

Mit einer bestimmten Schaltung die am Pollin-Board dranhing, konnt ich 
gar nicht mehr flashen, obwohl die identische Schaltung mit altem PC und 
Win 7 32bit problemlos war. Nach einigen Versuchen bin ich 
draufgekommen, entweder die Schaltung vom Pollin-Board zu entfernen oder 
manuell den Reset-Taster während des Flashen zu drücken und schon ist es 
wieder gegangen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren