Forum: Mikrocontroller und Digitale Elektronik Nach dem Setzen der Fuses ist Attiny nicht mehr programmierbar


von Manuel (Gast)


Lesenswert?

Hallo,

Ich habe folgenden Befehl ausgeführt (Attiny direkt mit Programmer 
verbunden):

avrdude -c usbtiny -pt2313 -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

Seitdem wird jeder Flashversuch mit folgender Meldung quittiert:

$ avrdude -c usbtiny -B 1 -pt2313 -U flash:w:main.hex -B

avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.


Kann man noch etwas retten? Was genau ist die Ursache das der Chip 
direkt am Programmer nicht mehr programmierbar ist?

:
von Manuel (Gast)


Lesenswert?

Der korrekte Flash-Befehl ist natürlich ohne das "-B" am Ende.

Ich habe aber schon verschiedene Varianten durch. Die Ursache sind die 
Fuses. Vorher konnte ich flashen. Ich weiß nun nur nicht wie ich die 
Fuses wieder korrigieren kann...

von Karl M. (Gast)


Lesenswert?

Manuel schrieb:
> Hallo,
>
> Ich habe folgenden Befehl ausgeführt (Attiny direkt mit Programmer
> verbunden):
>
> avrdude -c usbtiny -pt2313 -U hfuse:w:0xdf:m -U lfuse:w:0xef:m
>
> Kann man noch etwas retten? Was genau ist die Ursache das der Chip
> direkt am Programmer nicht mehr programmierbar ist?

Ja was machen dein deine Änderungen?

von Einer K. (Gast)


Lesenswert?

Einen Quarz dran bauen, oder externen Takt einspeisen, dann tuts das 
wieder!
http://www.engbedded.com/fusecalc/

von Karl M. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Einen Quarz dran bauen, oder externen Takt einspeisen, dann tuts
> das
> wieder!
> http://www.engbedded.com/fusecalc/

Ja er sollte doch selbst mal Nachdenken.

Evtl. muss man noch etwas mehr Zeit zum Anschwingen einbringen.

von Karl B. (gustav)


Lesenswert?

Manuel schrieb:
> Kann man noch etwas retten?

Hi,
ja. Mit HV Programmierung.
STK500 Studio 4 aufwärts.

ciao
gustav

von Herbert (Gast)


Lesenswert?

@ TO

Warum setzt du dieses unübersichtliche Tool überhaupt ein? Eine gute 
Alternative ist das aktuelle Atmel Studio 7. Dort sind alle 
Einstellungen übersichtlich aufgeführt und damit nicht so 
fehlerträchtigt.

von Axel S. (a-za-z0-9)


Lesenswert?

Manuel schrieb:

> avrdude -c usbtiny -pt2313 -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

Für die H-Fuse ist 0xDF die Werks-Einstellung
Für die L-Fuse ist die Werks-Einstellung 0x68

Deine Änderungen:
- CLKDIV8 gelöscht
- CKSEL3..0=1111

Du hast deinen Tiny also darauf programmiert, mit einem externen Quarz 
>=8MHz betrieben zu werden.

> Seitdem wird jeder Flashversuch mit folgender Meldung quittiert:
> avrdude: initialization failed, rc=-1

> Was genau ist die Ursache das der Chip
> direkt am Programmer nicht mehr programmierbar ist?

Er hat keinen Takt. Hast du denn den externen Quarz und die zwei 22pF 
Kondensatoren angeschlossen? Warum nicht?

> Kann man noch etwas retten?

Schließ einen Quarz an. Oder speise einen externen Takt an XTAL1 ein. 
Und vor allem: lies mal das Datenblatt!

Du brauchst weder einen HV-Programmer noch irgendwelche obskuren 
Klicki-Bunti-Programme. Aber das Hirn mußt du einschalten!

: Bearbeitet durch User
von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Axel S. schrieb:
> Du brauchst weder einen HV-Programmer

Hi,
wenn "verfused", doch. Danach sieht es nämlich aus, da schon einmal 
vergeblicher Zugriff versucht wurde.

Gerade bei nachträglicher Veränderung von "Clock geteilt durch 8" ist 
mir das oft passiert, dass Zugriff nicht mehr möglich o h n e 
HV-Programmierung (12V).
Oder als Alternative Griff in die Bastelkiste und neuen 2313-er 
rauskramen.

ciao
gustav

: Bearbeitet durch User
von Michael U. (amiga)


Lesenswert?

Hallo,

Karl B. schrieb:
> Gerade bei nachträglicher Veränderung von "Clock geteilt durch 8" ist
> mir das oft passiert, dass Zugriff nicht mehr möglich o h n e
> HV-Programmierung (12V).

noch nie erlebt... Nur wenn man Reset wegflasht steht im Dunklen.
Bei Quarz reicht auch ein externer Takt an XTAL1 um wieder ranzukommen. 
Frequnz ist egal, solange man mehr als das 4-fache der ISP Frequent 
anlegt.
Allerdings programmiee ich sowas auch mit dem AVR-Dragon oder dem alten 
STK500 und AVR Studio 4. Das STK500 hat den Vorteil, daß man gleich 
einen externen Takt zu Verfügung hat, wenn man ihn braucht. Dafür ist 
aber eben inzwischen ein USB-RS232-Adapter nötig mangels RS232 am 
Rechner.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Karl B. (gustav)


Lesenswert?

Michael U. schrieb:
> Dafür ist
> aber eben inzwischen ein USB-RS232-Adapter nötig mangels RS232 am
> Rechner.

Hi,
überhaupt kein Problem. Delock (Prolific) 62589.
Nur ein Genderchanger wäre noch komfortsteigernder.
(Auto - nicht com1)

ciao
gustav

von Ralph S. (jjflash)


Lesenswert?

Herbert schrieb:
> Warum setzt du dieses unübersichtliche Tool überhaupt ein? Eine gute
> Alternative ist das aktuelle Atmel Studio 7. Dort sind alle
> Einstellungen übersichtlich aufgeführt und damit nicht so
> fehlerträchtigt.

Irgendwie scheinst du sehr heftige Scheuklappen zu haben (und ausser 
Windows und dem Atmel Studio kennst du wohl nix).

AVRDUDE ist schlicht das Standardprogramm zum Flashen von AVR 
Controllern. Gerade WEIL es ein Kommandozeilentool (und damit wie von 
dir bezeichnet "unübersichtlich") ist, ist es gut, denn:

Es läßt sich mittels Make oder (wenn Windows und man das mag) 
Batchdateien in unzählige automatisierte Abläufe einbinden. (u.a. 
avr-gcc) ist extrem "unübersichtlich" und dennoch ist er der 
Standardcompiler für AVR und ich bin überzeugt davon, dass du den 
avr-gcc ebenfalls benutzt.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Michael U. schrieb:
> Frequnz ist egal, solange man mehr als das 4-fache der ISP Frequent
> anlegt.

Und wenn die Frequenz der externen Taktquelle zu niedrig ist, kann man
die ISP-Frequenz des Programmierers mittels der Avrdude-Option -B auf
einen passenden Wert reduzieren.

Der USBtinyISP scheint defaultmäßig mit 100 kHz zu laufen, so dass man
-B nur dann braucht, wenn die externe Taktquelle ≤400 kHz hat.

Generell sollte man auch den Brownout-Detector aktivieren. Mir ist es
schon ein paarmal passiert, dass der Controller selber seine Fuses
umprogrammiert hat und danach nicht mehr gestartet ist. Mit aktiviertem
Brownout-Detector trat das Problem nicht mehr auf.

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hi,
Habe auch noch einen anderen Programmer.
Zu Fuß.
Brauch 1 Stunde für 1024 Bytes.

Adresssen-
Daten-
Strobe
Adressenincrement
Daten-
Strobe..

Atmel AVR STK500 war für mich wie ein Quantensprung.
Und ein Zurück gibt es aus Prinzip nicht, wenn man einmal soweit kam.

ciao
gustav

von michael_ (Gast)


Lesenswert?

Diese Darstellung habe ich erwartet.
Aber die Strafe der Kommandozeile folgte auf dem Fuße.

Und Batchdateien, wer braucht das?
Gwerblich spielt das keine Rolle, Programmer dazu gibt es schon seit 
mehr als 20 Jahren.

Ralph S. schrieb:
> AVRDUDE ist schlicht das Standardprogramm zum Flashen von AVR
> Controllern.

Nein!
Die mit einer grafischen Benutzerfläche, die machen einfach.
Selbst mit einem Chinesischen EPROMMER kann man viele MC brennen.

von Frank B. (frank501)


Lesenswert?

michael_ schrieb:
> Diese Darstellung habe ich erwartet.
> Aber die Strafe der Kommandozeile folgte auf dem Fuße.
>
> Und Batchdateien, wer braucht das?
> Gwerblich spielt das keine Rolle, Programmer dazu gibt es schon seit
> mehr als 20 Jahren.


Manche Menschen rennen eben mit Scheuklappen durch die Welt und sehen 
nicht, was neben ihnen so alles passiert.
Oder, wie es Einstein gesagt hat:
Der Horizont vieler Menschen ist wie ein Kreis mit Radius Null. Und das 
nennen sie dann ihren Standpunkt.

Es gibt mehr als einen Weg, einen AVR zu programmieren. Man muss nicht 
mehrere verwenden, aber akzeptieren, daß es für andere Anwendungen auch 
andere Lösungen gibt.
Man kann einen AVR auch mit Hilfe eines Arduino und der Arduino-IDE 
brennen, wenn man es unbedingt will.



michael_ schrieb:
> Ralph S. schrieb:
>> AVRDUDE ist schlicht das Standardprogramm zum Flashen von AVR
>> Controllern.
>
> Nein!
> Die mit einer grafischen Benutzerfläche, die machen einfach.
> Selbst mit einem Chinesischen EPROMMER kann man viele MC brennen.

Die helfen lediglich dabei, nicht das eigene Hirn benutzen zu müssen.

von Einer K. (Gast)


Lesenswert?

michael_ schrieb:
> ....
Du möchtest also Arduino für nicht existent erklären.
Oder ausrotten.
Denn dort ist Avrdude DAS Programm für AVR8 Uploads.
Egal mit welchem Programmer, oder auch über den jeweiligen Bootloader

von Peter D. (peda)


Lesenswert?

michael_ schrieb:
> Und Batchdateien, wer braucht das?

Typisch will man Programmänderungen ja auch ausprobieren.
Und da ist es bequem, wenn man mit nur einem Klick auf die Batch 
compiliert und programmiert.

von Karl B. (gustav)


Lesenswert?

Peter D. schrieb:
> Und da ist es bequem, wenn man mit nur einem Klick auf die Batch
> compiliert und programmiert.

OK,
sogar bei Zugriffen auf Konfigurationsregister wird man nicht jeden 
Befehl einzen eingegeben. Das dauert zu lange.
Dafür gibt es das Menü "send textfile".
Das sind dann von den Kollegen ausgefeilte, standardisierte "templates" 
oder wie man das nennen möchte, drin. -
Habe selber mit DOS gerne rumexperimentiert.
Ok. EDLIN (mit Strg Z abschließen.)
Wirklich weniger geht wohl nicht.
Zum Beispiel eine Sortierung und Komprimierung von Textfiles nach 
alphabetischer Ordnung. Batch deswegen, weil Endung *.bat

sort.bat
cd\
md ff
copy e:\z\lha.exe
lha e e:\text\!*.lzh
pause
copy e:\a*.txt e:\ff\*.*
copy e:\b*.txt e:\ff\*.*
copy e:\c*.txt e:\ff\*.*
....
copy e:\x*.txt e:\ff\*.*
copy e:\y*.txt e:\ff\*.*
copy e:\z*.txt e:\ff\*.*
pause
lha a ! e:\ff\*.*
pause
del e:\*.txt
rename !.lzh !texte.lzh
del e:\kor\kor2\!texte.lzh
copy e:\!texte.lzh e:\kor\kor2\!texte.lzh
pause
del !texte.lzh
deltree ff

Bis Windows 3.11 klappte das noch.
Alles schön hintereinander auf Platte.

OK. Auch auf's Programmen anwendbar.
Nur sollte man da auch die Syntax "drauf"haben.
Hat man eben nicht.

ciao
gustav

von Manuel (Gast)


Lesenswert?

Um das ganze mal aufzulösen:

Zum einen habe ich wieder etwas dazu gelernt. Ich hätte irgendwie 
erwartet das die "Clock"-Leitung die ich vom Programmer verbinde 
zumindest während dem Flash-Vorgang für einen Takt sorgt.

Der Gedanke "vielleicht brauche ich einen Taktgeber" kam mir aber schon 
vor dem Posten hier im Forum. Ich habe den IC deshalb "mit der einen 
Seite" zurück in das Gerät gesteckt in das er rein soll (um den Quarz zu 
verbinden aber zu verhindern das mir die Schaltung irgendwas an den 
ISP-Pins macht). Ging dann auch nicht.

Und die Lösung des ganzen? Der Quarz war kaputt. Ich hatte den 
Mikrocontroller in Verdacht und einen neuen bestellt aber das sowas wie 
ein Quarz ausfallen kann hatte ich nicht erwartet. Alten Mikrocontroller 
wieder rein und Quarz getauscht --> Geht wieder.

Beitrag #6081659 wurde von einem Moderator gelöscht.
von Einer K. (Gast)


Lesenswert?

Manuel schrieb:
> das sowas wie
> ein Quarz ausfallen kann hatte ich nicht erwartet.

Quarze gehen sogar erstaunlich häufig kaputt.
Gerade in Fernbedienungen, die dauernd runter fallen.

Resonatoren sind deutlich rüttelfester.


Am Rande:
Du hättest hier vermutlich viel weniger "Eiertanz" gehabt, wenn du 
sofort gesagt hättest, dass du den µC an einem Quarz betreibst.

von o.T. (Gast)


Lesenswert?

Karl B. schrieb:
> Zum Beispiel eine Sortierung und Komprimierung von Textfiles nach
> alphabetischer Ordnung. Batch deswegen, weil Endung *.bat

Was bitte hat das mit der Programmierung eines ATtiny zu tun?

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


Lesenswert?

Manuel schrieb:
> Ich hätte irgendwie erwartet das die "Clock"-Leitung die ich vom
> Programmer verbinde zumindest während dem Flash-Vorgang für einen Takt
> sorgt.

Bei JTAG ist es tatsächlich so, dort wird der JTAG-Takt während des 
Programmierens der Master-Takt (kommt allerdings bei deinem ATtiny2313 
nicht in Frage).

Bei SPI dagegen läuft der interne SPI-Peripheriebaustein mit seinem 
eigenen Takt. Daher auch die Forderung, dass der SPI-Takt weniger als 
1/4 des CPU-Taktes sein muss, ansonsten verpasst das Sampling am SPI 
irgendwann mal eine der SCK-Taktflanken, und alles kommt außer Tritt.

von Karl B. (gustav)


Lesenswert?

o.T. schrieb:
> Was bitte hat das mit der Programmierung eines ATtiny zu tun?

Hi,
es ging in der Reply um den Begriff "Batch".

Peter D. schrieb:
> michael_ schrieb:
>> Und Batchdateien, wer braucht das?

Und wo für man der die das Batch verwendet.
Unter anderem auch:

Karl B. schrieb:
> OK. Auch auf's Programmen anwendbar.
> Nur sollte man da auch die Syntax "drauf"haben

ciao
gustav

von Peter D. (peda)


Lesenswert?

Karl B. schrieb:
> Zum Beispiel eine Sortierung und Komprimierung von Textfiles nach
> alphabetischer Ordnung.

Das geht aber einfacher.
Dazu gibt man den DIR-Befehl in eine Datei aus und läßt diese per FOR 
zeilenweise abarbeiten.
dir /?
...
  /O         Gibt die Liste sortiert aus.
  Folge       N Name (alphabetisch)           S Größe (kleinere zuerst)
              E Erweiterung (alphabetisch)    D Datum/Zeit (ältere 
zuerst)
              G Verzeichnisse zuerst          - vorangestellt kehrt die
                                                Reihenfolge um

Beitrag #6081856 wurde von einem Moderator gelöscht.
von michael_ (Gast)


Lesenswert?

Frank B. schrieb:
> Manche Menschen rennen eben mit Scheuklappen durch die Welt und sehen
> nicht, was neben ihnen so alles passiert.

Klar, mit Scheuklappen sieht man nicht den Nachbar, der viel weiter ist.

Frank B. schrieb:
> Die helfen lediglich dabei, nicht das eigene Hirn benutzen zu müssen.

Ich war schon immer so, dass ich mein Gehirn nicht für sinnlose 
Routine-Statusaufgaben belasten wollte. Meines ist dafür nicht groß 
genug :-)

Peter D. schrieb:
> michael_ schrieb:
>> Und Batchdateien, wer braucht das?
>
> Typisch will man Programmänderungen ja auch ausprobieren.
> Und da ist es bequem, wenn man mit nur einem Klick auf die Batch
> compiliert und programmiert.

Mit einem Klick sicher nicht!
Aber schon vor 20 Jahren, also im Jahr 2000, war das kein Problem.
AVR-Assembler (Das AVR-Studio war noch nicht geboren, bzw. in den 
Kinderschuhen) und der EQUINOX-Programmer.
Der EQUINOX hatte ein autoload auf die kompilierte Datei.
Mit zwei Klick war es fertig.

Arduino Fanboy D. schrieb:
> Quarze gehen sogar erstaunlich häufig kaputt.
> Gerade in Fernbedienungen, die dauernd runter fallen.
>
> Resonatoren sind deutlich rüttelfester.

Egal, Resonatoren fallen häufiger aus. Eigene Erfahrung.

von Karl B. (gustav)


Lesenswert?

Peter D. schrieb:
> Das geht aber einfacher.
> Dazu gibt man den DIR-Befehl in eine Datei aus und läßt diese per FOR
> zeilenweise abarbeiten.
> dir /?

Hi,
die lange Zeit undokumentierte erweiterte Syntax des Dir Befehls war zu 
dem Zeitpunkt noch eine grosse Unbekannte:

REM file search and find batch file
  @ECHO OFF
  CLS
  ECHO searching for %1...
  FOR %%d IN (C) DO DIR %%d:\%1 /S/P

ciao
gustav

Beitrag #6082701 wurde von einem Moderator gelöscht.
Beitrag #6082708 wurde von einem Moderator gelöscht.
Beitrag #6082723 wurde von einem Moderator gelöscht.
Beitrag #6082734 wurde von einem Moderator gelöscht.
Beitrag #6082775 wurde von einem Moderator gelöscht.
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.