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?
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. |
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
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.
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
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!
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.
Sebastian W. schrieb: > Könnte vielleicht an instabiler Stromversorgung liegen? Die macht der STK600 ja (normalerweise) selbst.
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...
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.
Stefan schrieb: > Warum ich > mit der HVPP-Schnittstelle trotzdem auch nicht weiterkam, Dein Tiny kann kein HVPP!
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.)
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.
Der Autor hat erst 3 Beiträge geschrieben, nicht hunderte. Das ist ein Trittbrettfahrer in Bezug auf den Namen, aber kein Neuling im Forum.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.