Forum: Mikrocontroller und Digitale Elektronik ATtiny85 lässt sich mit STK600 nicht flashen


von Stefan (stefantus)


Lesenswert?

Ich versuche verzweifelt, mittels meines Evaluation-Boards AVR STK600 
ein Controller des Typs ATtiny85 zu
flashen. Das Board funktioniert sehr gut mit einer Routing-Card RC028 
(für 28-beinige Controller) und der Socket-Card STK600 DIP (für bis zu 
40 pol. DIPs). Einen Controller ATMEGA 328P kann ich damit sowohl über 
ISP, als auch über HVSP bestens bedienen, größere Projekte laufen 
einwandfrei. Nun erwartete ich dieselben Erfolge für
den ATtiny85. Dieser ist 8-beinig, wird mit derselben Socket-Card, aber 
mit einer Routing-Card RC008 (für 8-beinige Controller) am AVR STK600 – 
Board betrieben. Es gelingt mir aber nicht, diese zu flashen. Weder mit 
ISP, noch mit HVSP.
Bei HVSP wird wenigstens die Signatur des Device erkannt und ohne 
Probleme die FuseBits dargestellt, was über ISP garnicht erkannt wird. 
Alle Einstellungen bezüglich Fuse- und Lockbits und andere Exemplare 
dieses Controllers enden spätestens beim Flashen mit der Fehlermeldung: 
„Verifying Flash…Failed! address=0x0000 expected=0x0e actual=0x0f“. 
Dabei wurden knallneue ATtinys verwendet, aber auch bereits (vergeblich) 
modifizierte.
Spannung und/oder ISP-Frequenz wurden verändert.................
Es gibt einfach keinen keinen Erfolg.
Nun bin ich relativ frisch dabei, konzentrierte mich eher auf die 
Programmierung und habe mich -weil´s mit ATMEGA 328P und ATMEGA 2560 
funktionierte- um die Technik des Flashens nicht groß gekümmert, aber 
für
kleine Projekte möchte ich eben gerne die kleinen ATtinys einsetzen! – 
Im Netz kann ich nichts dergleichen finden. Habe ich ein 
Grundlagen-Problem?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hmm. Tief gegraben, um den Stapel routing cards auszubuddeln … Das 
Konzept des STK600 klang ja damals so schlecht nicht, aber erstens sind 
natürlich die Wege der Strömlinge durch den Kartenstapel kaum 
MHz-tauglich, und zweitens war das alles viel zu teuer.

Anyway, die STK600-RC008T-2 rausgekramt, socket card drauf, funktioniert 
auf Anhieb:
1
% avrdude -c stk600 -p t85 -t
2
3
avrdude: AVR device initialized and ready to accept instructions
4
avrdude: device signature = 0x1e930b (probably t85)
5
avrdude> part
6
7
AVR Part                      : ATtiny85
8
Chip Erase delay              : 4500 us
9
RESET disposition             : possible i/o
10
RETRY pulse                   : SCK
11
Serial program mode           : yes
12
Parallel program mode         : yes
13
Timeout                       : 200
14
StabDelay                     : 100
15
CmdexeDelay                   : 25
16
SyncLoops                     : 32
17
PollIndex                     : 3
18
PollValue                     : 0x53
19
Memory Detail                 :
20
21
                                  Block Poll               Page                       Polled
22
  Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
23
  ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
24
  eeprom                 65     5     4    0 no        512    4      0  4000  4500 0x00 0x00
25
  flash                  65    10    32    0 yes      8192   64    128  4500  4500 0x00 0x00
26
  lfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
27
  hfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
28
  efuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
29
  lock                    0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
30
  signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00
31
  calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00
32
33
avrdude> d fl
34
35
Reading | ################################################## | 100% 0.12 s 
36
37
0000  0e c0 28 c0 9d c0 26 c0  25 c0 24 c0 23 c0 22 c0  |..(...&.%.$.#.".|
38
0010  21 c0 20 c0 1f c0 1e c0  1d c0 1c c0 b6 c0 11 24  |!. ............$|
39
0020  1f be cf e5 d2 e0 de bf  cd bf 10 e0 a0 e6 b0 e0  |................|
40
0030  ea ec f2 e0 02 c0 05 90  0d 92 a6 37 b1 07 d9 f7  |........ ..7....|
41
0040  20 e0 a6 e7 b0 e0 01 c0  1d 92 af 38 b2 07 e1 f7  | ..........8....|
42
0050  0d d1 39 c1 d5 cf 98 2f  96 95 95 75 88 0f 8a 7a  | .9..../...u...z|
43
0060  98 2b 89 2f 86 95 86 95  83 73 99 0f 99 0f 9c 7c  |.+./.....s.....||
44
0070  89 2b 82 95 08 95 10 92  7d 00 10 92 7e 00 10 92  |.+......}...~...|
45
0080  77 00 10 92 78 00 08 95  f8 94 12 be 81 e0 8c bd  |w...x...........|
46
0090  92 e0 9a bd 97 e6 99 bd  83 bf 84 e5 8d b9 8f ef  |................|
47
00a0  8f b9 8e b9 b9 9a 80 91  76 00 81 60 80 93 76 00  |........v..`..v.|
48
00b0  78 94 08 95 88 b3 8f 60  88 bb 87 b3 80 7f 87 bb  |x......`........|
49
00c0  1d b8 80 e2 8a bf 81 e0  85 bb 8b b7 80 62 8b bf  |.............b..|
50
00d0  08 95 cf 93 c0 91 78 00  cf 5f c3 70 90 91 77 00  |......x.._.p..w.|
51
00e0  c9 17 e1 f3 b8 df ec 2f  f0 e0 e7 58 ff 4f 80 83  |......./...X.O..|
52
00f0  c0 93 78 00 80 91 76 00  80 fd 06 c0 80 91 76 00  |..x...v.......v.|
53
54
avrdude> 
55
56
avrdude done.  Thank you.
OK, noch was programmieren (passt nicht wirklich, Code für einen 
ATtiny13, aber egal):
1
% avrdude -c stk600 -p t85 -U nachtlicht.elf 
2
3
avrdude: AVR device initialized and ready to accept instructions
4
avrdude: device signature = 0x1e930b (probably t85)
5
avrdude: Note: flash memory has been specified, an erase cycle will be performed.
6
         To disable this feature, specify the -D option.
7
avrdude: erasing chip
8
avrdude: reading input file nachtlicht.elf for flash
9
         with 772 bytes in 1 section within [0, 0x303]
10
         using 13 pages and 60 pad bytes
11
avrdude: writing 772 bytes flash ...
12
13
Writing | ################################################## | 100% 0.42 s 
14
15
avrdude: 772 bytes of flash written
16
avrdude: verifying flash memory against nachtlicht.elf
17
18
Reading | ################################################## | 100% 0.38 s 
19
20
avrdude: 772 bytes of flash verified
21
22
avrdude done.  Thank you.

von Stefan (stefantus)


Lesenswert?

Hmm... Danke Dir für Deinen Aufwand, ich bin  begeistert. - Nun weiß 
ich,
das es wohl grundsätzlich funktionieren muss.
Ich hatte das Board vor 10-12 Jahren gebraucht bei Ebay gezogen, daher 
hielt sich der "teure" Spaß für mich in Grenzen. - Es lag dann aus 
berufl. Gründen rum bis ich dieses Jahr damit anfing.
Bisher lief ja alles mit der 28.pol. Konstellation.
Aber was soll ich für meinen Fall nun daraus schlussfolgern?
Ist die Routing-Card defekt? - Sie wurde noch nie eingesetzt (Neu 
gekauft). Oder sind alle ATtinys85, die ich habe, nicht geeignet (Typ 20 
MHz) oder waren Ihrerseits schon bei der Lieferung beschädigt?
Hmmm... Wenn auch andere 8-Beiner in Zukunft damit nicht laufen, kann es 
wohl nur die Routing-Card sein.

Trotzdem erstmal herzlichen Dank

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Viel kann an der Routing-Card ja eigentlich nicht defekt sein.

Schau mal, dass keins der popeligen Pins an den Federleisten verfummelt 
ist. Die Dinger sind empfindsam.

Du könntest natürlich mal mit einem Logikanalysator oder zur Not Oszi 
direkt an den Pins des Controllers messen.

von Sebastian W. (wangnick)


Lesenswert?

Stefan schrieb:
> expected=0x0e actual=0x0f

Also konnte ein Flash-Transistor nicht auf "0" programmiert werden, vier 
andere dagegen schon.

Könnte vielleicht an instabiler Stromversorgung liegen?

Kannst du den Flashspeicher wenigstens auslesen? Und funktioniert ein 
Chip Erase?

LG, Sebastian

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Stefan schrieb:
> Einen Controller ATMEGA 328P kann ich damit sowohl über
> ISP, als auch über HVSP bestens bedienen,

Ähm...
Der ATMega328P kann gar kein HVSP.
Somit möchte ich da mal Zweifel anmelden.

Stefan schrieb:
> Spannung und/oder ISP-Frequenz wurden verändert.................
Verdächtiger Satz!
12V sind 12V, was gibts da zu ändern?
Was soll die ISP-Frequenz im HVSP Mode aus machen?
Ich denke, soweit ich das kenne: Nix!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Arduino F. schrieb:

> Der ATMega328P kann gar kein HVSP.
> Somit möchte ich da mal Zweifel anmelden.

Ja, weil sich einer nicht exakt genug ausdrücken kann. Mannomann. Der 
hat dafür HVPP.

> Verdächtiger Satz!

Verdächtig sind höchstens deine Verdächtigungen.

Die 12 V sind bei HV* sowieso nur für den Reset da, selbstverständlich 
kannst du ansonsten auch die Targetspannung ändern, und dass sich eine 
ISP-Frequenz natürlich genau auf ISP bezieht und sonst nichts, das 
scheint nur dir nicht einleuchten zu wollen. Nur, weil drei Sätze weiter 
vorn mal "HVSP" stand, heißt das doch nicht, dass sich deshalb der ganze 
Rest darauf beziehen muss. ISP-Frequenz ist halt sonst noch etwas, an 
dem man schrauben kann. Allerdings führt eine zu hohe ISP-Frequenz, 
außer direkt "an der Kante" typischerweise zu einem "es geht gar keine 
Kommunikation" vs. "alles funktioniert", nicht dazu, dass sich einzelne 
Zellen nicht programmieren lassen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Sebastian W. schrieb:
> Könnte vielleicht an instabiler Stromversorgung liegen?

Die macht der STK600 ja (normalerweise) selbst.

von Stefan (stefantus)


Angehängte Dateien:

Lesenswert?

Das Problem ist gelöst!!!
Ich danke allen Konstruktiven, die sich wirklich bemüht haben!
Ich versuche in aller Regel, meine Probleme selber zu lösen, aber 
manchmal ist man eben am Ende mit seinem Latein.
- Es hat Tage gedauert, aber ich konnte einfach nicht einsehen, warum 
ich mit einem so teuren Board keine popeligen ATtinys flashen konnte! Es 
funktioniert jetzt!
Leider war ich das Superhirn, das sich nicht die Mühe gemacht hat, die 
137 Seiten lange Hardware-Doku wie ein Fuchs durchzulesen. Mit dem 
Einsatz der Routing-Card STK600-RC008T-2 für die kleinen 8-Beiner  muss 
man nämlich ausnahmsweise den Jumper mit der Bezeichnung AREF0 ziehen, 
für alle anderen Routing-Cards gilt das nicht. Bei dieser Card hingegen 
liegt wohl eine Doppelbelegung vor, so dass der AREF-Pin gleichenfalls 
auf einem Pin liegt,  der von der SPI-Schnittstelle genutzt wird. 
Nachdem ich diesen Jumper zog,  lief alles wie am Schnürchen. Warum ich 
mit der HVPP-Schnittstelle trotzdem auch nicht weiterkam, (jetzt geht 
auch sie) will sich mir im Moment nicht erschliessen. Aber das ist jetzt 
auch nicht mehr wichtig. Für Interessierte: Wenn Ihr ATtinys mit einem 
STK600-Board flashen wollt, seht auf Seite 109 der Hardware-Doku, Punkt 
7.1.2 !!!

Nochmals vielen Dank...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Danke für die Auflösung des Rätsels! Da wäre ich auch nie und nimmer 
drauf gekommen. Mehr zufällig als absichtlich sind die AREFx-Jumper bei 
mir auf "aus" gesteckt (also eine Position daneben).

HVSP wird ansonsten halt das gleiche Problem der Doppelbelegung der Pins 
haben.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Stefan schrieb:
> Warum ich
> mit der HVPP-Schnittstelle trotzdem auch nicht weiterkam,

Dein Tiny kann kein HVPP!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Arduino F. schrieb:
> Stefan schrieb:
>> Warum ich
>> mit der HVPP-Schnittstelle trotzdem auch nicht weiterkam,
>
> Dein Tiny kann kein HVPP!

Nun lass doch deine Krümelkackerei bitte mal sein! Das nervt einfach 
nur!

Ja, er hat sich in der Wortwahl vertan. Nein, das tut überhaupt nichts 
zur Sache. Der STK600 abstrahiert das sowieso für den Nutzer. (OK, wenn 
man AVRDUDE benutzt, muss man es noch wissen, weil man zwischen 
stk600_hvsp und stk600_pp als programmer type wählen muss. Aber das ist 
auch alles.)

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Jörg W. schrieb:
> Ja, er hat sich in der Wortwahl vertan.

Beim ersten Mal, könnte sein!
Beim zweiten Mal, eher nicht, denn das ist doch kein Idiot.

Nöö..
Das ist ihm offensichtlich schlicht scheißegal, was ihm von sich gibt 
(wie man auch an hunderten von anderen seiner Beiträgen sehen kann).
Schlampiges denken, schlampiges schreiben, schlampiges arbeiten.

von Uwe G. (scd)


Lesenswert?

Der Autor hat erst 3 Beiträge geschrieben, nicht hunderte. Das ist ein 
Trittbrettfahrer in Bezug auf den Namen, aber kein Neuling im Forum.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Uwe G. schrieb:
> nicht hunderte

Oh, dann nehme ich alles zurück und behaupte ab jetzt das Gegenteil!

Stefanus ich bitte dich um Verzeihung.
Ich weiß um deine Borniertheit, aber dass es soweit gehen sollte hat 
mich dann auch wirklich überrascht.
Da bin ich ja mal froh, dass ich mich geirrt habe.

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.