Hallo, nachdem es mir jetzt gelungen ist, den Attiny10 via Buspirate zu programmieren, taucht jetzt ein neues Problem auf: Der Tiny läßt sich nur 1x programmieren. Anschließend habe ich dann mal versucht, mit 12V an Reset zu programmieren (händisch angelegt). Dies funktioniert dann auch. Da ich die fuses nicht angerührt habe kann dies eigentlich nur bedeuten, daß das fuse für RSTDISBL defaultmäßig gesetzt ist und beim ersten programmieren aktiviert wird. Kann das sein? Zweite Frage: Wie liest man die fuses mit AVRdude beim Tiny10 aus? Laut http://www.engbedded.com/fusecalc/heißt der Parameter für die fuses im Tiny10 BYTE0. Sowohl BYTE0 als auch byte0, lfuse, hfuse sowie efuse geben mir aus: "efuse" memory type not defined for part "ATtiny10" Auch im Datenblatt finde ich nichts (die fuses heißen jetzt configuration bits). Gruß Andreas
Hallo, die fuses heißen jetzt schlicht und einfach: "fuses". Allerdings bekommt man mit -v einen leeren String geliefert. Erst mit -U fuse:r:-:i läßt er sich überreden, :00000001FF auszugeben. Die 1 davor wollen wir mal geflissentlich übersehen. ;-) Jetzt wird es aber immer lustiger: Spasseshalber habe ich jetzt mal mit -U fuse:w:0x00:m die fuses mit 0 überschrieben. Das geht (scheinbar) soweit noch. Anschließend lassen sie sich nicht mehr mit FF beschreiben: avrdude: verification error, first mismatch at byte 0x0000 0x00 != 0xff Programmieren läßt er sich aber nach wie vor. Edit: Lese ich die fuses jetzt wieder, dann steht wieder 1FF drin. Das schreiben mit FF liefert mir aber nach wie vor den o.g.Fehler. Gruß Andreas
Der Tiny hat keine efuse. Der buspirate ist noch recht neu und erfordert eine sehr aktuelle Version von avrdude. Vergleiche mal mit einem anderen ISP Programmer, es könnte durchaus ein Firmwarefehler oder Softwarefehler vorliegen. Prüfe außerdem die GND Verbindung.
Halo, mit dem usbasp habe ich es schon versucht. Da ging gar nichts. So neu ist der Buspirate ja auch wieder nicht. Es ist die aktuelle Version von avrdude.(Version 6.1, compiled on Sep 11 2014 at 21:49:31) GND ist natürlich angechlossen. Alle Strippen zum buspirate sind ca. 20cm lang. Gruß Andreas PS: Ich weiß daß dieser Tiny nur 1 byte fuses hat. Das efuse diente nur dazu, den Namen herauszufinden. Aber das hat sich ja schon erledigt.
> GND ist natürlich angechlossen.
Möglicherweise ist die Leitung defekt. Das passiert bei diesem Kabeln
öfters mal.
Lass doch einfach die Finger von den Fuses. Die brauchst Du beim ATtiny 10 nicht.
Trillian ist ein Cybernaut schrieb: > Lass doch einfach die Finger von den Fuses. Die brauchst Du beim ATtiny > 10 nicht. Woher weißt Du so genau, ob ich Reset als Port benötige? Glaskugel? Hast Du eigentlich den Anfang des Threads gelesen? Gruß Andreas
Stefan Us schrieb: >> GND ist natürlich angechlossen. > > Möglicherweise ist die Leitung defekt. Das passiert bei diesem Kabeln > öfters mal. Gerade geprüft. GND ist verbunden. Gruß Andreas
Noch ein Nachtrag: Im Terminalmode des AVRdude funktioniert das lesen und schreiben der fuses einwandfrei. AVRdude ist wohl bezüglich des Tiny10 noch etwas buggy. Allerdings funktioniert das programmieren (incl.fuses) nach wie vor nur im HV modus. Gruß Andreas
Andreas B. schrieb: > Erst mit -U fuse:r:-:i läßt er sich überreden, :00000001FF auszugeben. > Die 1 davor wollen wir mal geflissentlich übersehen. ;-) Warum willst du die igorieren? Das ist einfach nur ein Ende-Record. Du hast also nach wie vor deine leere Datei. Insofern ist es konsistent. Andreas B. schrieb: > AVRdude ist wohl bezüglich des Tiny10 noch etwas buggy. Wenn du denkst, dass es da Bugs gibt, dann schreib' das bitte nicht irgendwo in einem Forum, wo man es mehr oder minder nur durch Zufall erfährt, sondern schreib' einen ordentlichen Bugreport bitte: https://savannah.nongnu.org/bugs/?group=avrdude Andreas B. schrieb: > Das efuse diente nur dazu, den Namen herauszufinden. Dafür gibt es im Terminal-Modus das "part"-Kommando.
Hier funktioniert es:
1 | $ avrdude -c avrisp2 -p t10 -U fuse:r:-:h |
2 | |
3 | avrdude: AVR device initialized and ready to accept instructions |
4 | |
5 | Reading | ################################################## | 100% 0.03s |
6 | |
7 | avrdude: Device signature = 0x1e9003 |
8 | avrdude: reading fuse memory: |
9 | |
10 | Reading | ################################################## | 100% 0.03s |
11 | |
12 | avrdude: writing output file "<stdout>" |
13 | 0xff |
14 | |
15 | avrdude done. Thank you. |
16 | |
17 | $ avrdude -c avrisp2 -p t10 -U fuse:r:-:i |
18 | |
19 | avrdude: AVR device initialized and ready to accept instructions |
20 | |
21 | Reading | ################################################## | 100% 0.03s |
22 | |
23 | avrdude: Device signature = 0x1e9003 |
24 | avrdude: reading fuse memory: |
25 | |
26 | Reading | ################################################## | 100% 0.03s |
27 | |
28 | avrdude: writing output file "<stdout>" |
29 | :01000000FF00 |
30 | :00000001FF |
31 | |
32 | avrdude done. Thank you. |
(Ohne HV-Programmierung.)
Moin! Andreas B. schrieb: > mit dem usbasp habe ich es schon versucht. Da ging gar nichts. Läuft mit dem USBasp aber einwandfrei. Kann höchstens sein, dass du einen hast, dessen Firmwarestand deutlich älter als 5 Jahre ist, damals war die TPI-Funktionalität noch nicht drin. Mit "Firmwarestand" meine ich jetzt nicht das Kaufdatum, denn auch heute werden vereinzelt neue USBasp mit Firmwarestand 2009 verkauft. Also genau hinschauen. :-) Ansonsten kann ich nicht von Problemen mit avrdude berichten, der ATtiny10 hat sich damit immer problemlos programmieren lassen. Durch die Protokollverwandtschaft von TIP und HV-TPI kann der Tiny sogar per avrdude und (z.B.) USBasp mit HV programmiert werden, wenn man die Reset-Leitung zwischen Programmer und Mikrocontroller offen lässt und den Reset-Pin des Mikrocontrollers extern mit +12V speist. Was mir grade noch einfällt: Hast du mal die Programmierspannung überprüft? Während die meisten ATtinys auch mit 3,3 Volt programmiert werden können, verlangt der ATtiny10 5 Volt. Jedenfalls soweit ich mich ans Datenblatt erinnere. Zur Ausgabe von Fusebits mit avrdude: Ich geb als Ausgabeformat immer ":b" an, das ist weniger verwirrend als das Intel-Format ":i". EDIT: Jörg war schneller. :-) ":h" ist natürlich genauso gut.
Markus Weber schrieb: > Während die meisten ATtinys auch mit 3,3 Volt programmiert werden > können, verlangt der ATtiny10 5 Volt. Yep, aber auslesen muss er sich bei jeder Spannung ab 1,8 V lassen. Ist halt nur, dass sie offenbar an der Chipfläche für die Kondensatoren der Ladungspumpe sparen mussten, die die Programmierspannung (um die 12 V) intern bereitstellt.
Jörg Wunsch schrieb: > Andreas B. schrieb: >> Erst mit -U fuse:r:-:i läßt er sich überreden, :00000001FF auszugeben. >> Die 1 davor wollen wir mal geflissentlich übersehen. ;-) > > Warum willst du die igorieren? > > Das ist einfach nur ein Ende-Record. Du hast also nach wie vor deine > leere Datei. Insofern ist es konsistent. > OK, dann habe ich die Ausgabe falsch aufgefaßt. Ich dachte, das wäre 01 (ein nicht existierendes Higherbyte) und FF für das fuse. Jetzt habe ich auch festgestellt, daß das fuse sich auf der Kommandozeile nicht auslesen läßt, sonden nur im Terminal modus. > Andreas B. schrieb: >> AVRdude ist wohl bezüglich des Tiny10 noch etwas buggy. > > Wenn du denkst, dass es da Bugs gibt, dann schreib' das bitte nicht > irgendwo in einem Forum, wo man es mehr oder minder nur durch Zufall > erfährt, sondern schreib' einen ordentlichen Bugreport bitte: > > https://savannah.nongnu.org/bugs/?group=avrdude > Ich möchte erst einmal sichergehen, daß der Fehler nicht hier vor der Tastatur oder an einem defekten Tiny liegt. Ich bestelle mal neue und teste es nochmal. > Andreas B. schrieb: >> Das efuse diente nur dazu, den Namen herauszufinden. > > Dafür gibt es im Terminal-Modus das "part"-Kommando. Gut zu wissen. Danke! Gruß Andreas
Ich habe da schon einige von verbaut und noch nie Probleme beim programmieren gehabt. Allerdings nehme ich das Studio und AVR MKII. All zu viel fuses hat der ja nicht.
Markus Weber schrieb: > Moin! > > Andreas B. schrieb: >> mit dem usbasp habe ich es schon versucht. Da ging gar nichts. > > Läuft mit dem USBasp aber einwandfrei. Kann höchstens sein, dass du > einen hast, dessen Firmwarestand deutlich älter als 5 Jahre ist, damals > war die TPI-Funktionalität noch nicht drin. Mit "Firmwarestand" meine > ich jetzt nicht das Kaufdatum, denn auch heute werden vereinzelt neue > USBasp mit Firmwarestand 2009 verkauft. Also genau hinschauen. :-) Das kann natürlich sein. Der ist schon etwas älter, aber original Fischl. Irgendwie war ich der Meinung, ich hätte ihn mal aktualisiert. Mach ich nochmal. > Ansonsten kann ich nicht von Problemen mit avrdude berichten, der > ATtiny10 hat sich damit immer problemlos programmieren lassen. Durch die > Protokollverwandtschaft von TIP und HV-TPI kann der Tiny sogar per > avrdude und (z.B.) USBasp mit HV programmiert werden, wenn man die > Reset-Leitung zwischen Programmer und Mikrocontroller offen lässt und > den Reset-Pin des Mikrocontrollers extern mit +12V speist. Habe ich ja gemacht. HV programmierung mit dem Buspirate geht einwandfrei. > Was mir grade noch einfällt: Hast du mal die Programmierspannung > überprüft? Während die meisten ATtinys auch mit 3,3 Volt programmiert > werden können, verlangt der ATtiny10 5 Volt. Jedenfalls soweit ich mich > ans Datenblatt erinnere. Läuft mit 5V zum Programmieren. Die Schaltung habe ich für 3.3V ausgelegt und dies erst später nach Lesen des DB festgestellt. :-( > Zur Ausgabe von Fusebits mit avrdude: > Ich geb als Ausgabeformat immer ":b" an, das ist weniger verwirrend als > das Intel-Format ":i". > > EDIT: > Jörg war schneller. :-) ":h" ist natürlich genauso gut. Ja, das war dann auch mein Interpretationsproblem. Gruß Andreas
Hallo, Gerade habe ich noch herausgefunden, daß wenn man die Fuses im Terminalmodus beschreibt, sich der Tiny wieder normal ohne HV beschreiben läßt. Scheinbar funktioniert das lesen und schreiben mit dem Buspirate nur im Terminalmodus. Ich teste es aber nochmal mit einem neuen Tiny bevor ich einen Bugreport schreibe. Gruß Andreas
Andreas B. schrieb: > Scheinbar funktioniert das lesen und schreiben mit dem Buspirate nur im > Terminalmodus. Wäre zwar eigenwillig (beide benutzen ja die gleichen Funktionen als Backend), aber natürlich nicht auszuschließen. Einen Buspirate habe ich selbst nicht zum Testen, den Code haben andere beigesteuert.
Nur zur Sicherheit: Das bezieht sich nur auf die Fuses. Das sind aber vermutlich auch die gleichen Funktionen. Lesen und schreiben des Flash geht auch über die Kommandozeile. Ich habe auch mal das gelesene mit dem geschriebenen verglichen. Das funktioniert einwandfrei. Gerade habe ich es mal mit einem eingebauten Tiny10 versucht. Dort ist es das gleiche. (Ich mußte erst mal eine Sicherheit einlöten, damit mir die 5V zum Programmieren nicht sonstwo hingehen. Die Schaltung ist nur für 3,3V ausgelegt) Ich habe mal einen Bugreport erstellt. Gruß Andreas
Andreas B. schrieb: > Das sind aber vermutlich auch die gleichen Funktionen. Sollte schon, allerdings müsste ich mir den Buspirate-Code auch ansehen. > Ich mußte erst mal eine Sicherheit einlöten, damit mir > die 5V zum Programmieren nicht sonstwo hingehen. Wenn du den Flash nur auslesen willst, geht das auch mit kleineren Spannungen. Nur Programmieren braucht die 5 V. > Ich habe mal einen Bugreport erstellt. Ja, danke, hab' ich gesehen. Mal sehen, wer sich von den Buspirate-Kundigen der Sache annimmt.
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.