Forum: Mikrocontroller und Digitale Elektronik avrdude findet Attiny2313a nicht mehr


von Johannes (Gast)


Lesenswert?

Hallo,

scheinbar habe ich einen Attiny2313A über eine falsche Fuse-Setting 
zerschoßen. Aber vielleicht ist der Controller noch zu retten oder 
jemand von Euch kann mir sagen, was ich falsch gemacht habe.

Hier mein Vorgehen:
Ich will einen Attiny2313A mit einem externen Quarz mit 16MHz betreiben. 
Dafür habe ich zunächst die Fuse-Settings geändert. Auf 
https://www.engbedded.com/fusecalc/ habe ich den Attiny2313A ausgewählt 
und "Ext. Clock; Start-up time 14CK+65ms" ausgewählt und "Divide Clock 
by 8 internally" deaktiviert.

Damit habe ich folgenden Wert für die Low Fuse erhalten: 0xE0. Die 
anderen Fuses bleiben auf den Default-Werten. Anschließend habe ich die 
LFuse über avrdude und einen USBasp (so einen: 
https://www.roboter-bausatz.de/p/usbasp-avr-programmer?sPartner=8&gclid=EAIaIQobChMImLmP2oaH9QIVjeR3Ch0reABTEAYYAiABEgK90PD_BwE) 
programmiert:
1
root@x55u:/home/johannes# avrdude -c usbasp -p t2313 -U lfuse:w:0xe0:m
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
6
Reading | ################################################## | 100% 0.01s
7
8
avrdude: Device signature = 0x1e910a (probably t2313)
9
avrdude: reading input file "0xe0"
10
avrdude: writing lfuse (1 bytes):
11
12
Writing | ################################################## | 100% 0.01s
13
14
avrdude: 1 bytes of lfuse written
15
avrdude: verifying lfuse memory against 0xe0:
16
avrdude: load data lfuse data from input file 0xe0:
17
avrdude: input file 0xe0 contains 1 bytes
18
avrdude: reading on-chip lfuse data:
19
20
Reading | ################################################## | 100% 0.00s
21
22
avrdude: verifying ...
23
avrdude: 1 bytes of lfuse verified
24
25
avrdude: safemode: Fuses OK (E:FF, H:DF, L:E0)
26
27
avrdude done.  Thank you.

Das hat dann auch soweit funktioniert. Wenn ich jetzt aber den Chip auch 
nur mit den avrdude erkennen möchte, bekomme ich folgende Fehlermeldung:
1
root@x55u:/home/johannes# avrdude -c usbasp -p t2313 -F
2
3
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
4
avrdude: error: program enable: target doesn't answer. 1
5
avrdude: initialization failed, rc=-1
6
avrdude: AVR device initialized and ready to accept instructions
7
avrdude: Device signature = 0x50f698
8
avrdude: Expected signature for ATtiny2313 is 1E 91 0A
9
10
avrdude done.  Thank you.

Kann mir hier wer weiterhelfen? Was habe ich falsch gemacht? Passt die 
Fuse Setting nicht? Ist der Controller noch zu retten?

Viele Grüße,
Johannes

von Fuse Doctor (Gast)


Lesenswert?

Johannes schrieb:
> Dafür habe ich zunächst die Fuse-Settings geändert.

Zunächst musst du die Schaltung aufbauen.

Zeige Schaltung und Aufbau!

von Lötlackl *. (pappnase) Benutzerseite


Lesenswert?

Johannes schrieb:
> Ich will einen Attiny2313A mit einem externen Quarz mit 16MHz betreiben.
> Dafür habe ich zunächst die Fuse-Settings geändert. Auf
> https://www.engbedded.com/fusecalc/ habe ich den Attiny2313A ausgewählt
> und "Ext. Clock; Start-up time 14CK+65ms" ausgewählt

Der ATTiny ist jetzt auf externe Taktquelle (Quarzoszillator) ge*fused.
Das war sicherlich nicht das, was Du wolltest, vermutlich eher "Ext. 
Crystal/Resonator".
Da hilft, einen Takt (z.B. 1MHz) von einer externen Quelle an den 
Takteingang zu legen. Dann hat man wieder Zugriff.

von c-hater (Gast)


Lesenswert?

Johannes schrieb:

> Hier mein Vorgehen:
> Ich will einen Attiny2313A mit einem externen Quarz mit 16MHz betreiben.
> Dafür habe ich zunächst die Fuse-Settings geändert. Auf
> https://www.engbedded.com/fusecalc/ habe ich den Attiny2313A ausgewählt
> und "Ext. Clock; Start-up time 14CK+65ms" ausgewählt und "Divide Clock
> by 8 internally" deaktiviert.

Das war falsch. "Ext. Clock" meint: Einspeisung eines externen Taktes. 
Das ist was anderes als der Betrieb eines Quarzes.

Allerdings ist damit auch der Ausweg vorgezeichnet: lege einfach 
tatsächlich einen externen Takt an, dann kannst du das Ding erstmal 
wieder erreichen und auf die korrekte Einstellung für einen Quarz 
umprogrammieren.

von S. Landolt (Gast)


Lesenswert?

> ... Ext. Clock ...
Eben, externer Takt. Der müsste jetzt an XTAL1 angeschlossen werden.

Gewünscht war aber
> ... externen Quarz mit 16MHz ...
dazu gehört Fuse Low Byte 'FF'.

von Johannes (Gast)


Lesenswert?

Hallo c-hater und  S. Landolt,

danke für Euere Antworten. Jetzt habe ich es verstanden.

Reicht da ein NE-555 als Taktgeber? Ich habe auch noch einen Attiny85 
herumliegen, den könnte man so fusen, dass er die Clock am Ausgang PB4 
ausgibt. Das sollte funktionieren, um den Attiny2313A wieder zum Laufen 
zu bringen, oder?

Nochmal danke und schönen Abend,
Johannes

von S. Landolt (Gast)


Lesenswert?

Geht beides, aber die Antwort der pappnase beachten: der Takt darf nicht 
zu langsam sein.

von Stefan F. (Gast)


Lesenswert?

"Ext. Clock" heisst "Externer Takt" nicht Quarz. Du musst eine Taktgeber 
anschließen. Siehe http://stefanfrings.de/avr_verfused/index.html

Johannes schrieb:
> Reicht da ein NE-555 als Taktgeber?

Ja

Ich habe auch noch einen Attiny85
> herumliegen, den könnte man so fusen, dass er die Clock am Ausgang PB4
> ausgibt. Das sollte funktionieren

Ja, geht auch

von Johannes (Gast)


Lesenswert?

Hallo,

mir ist es dank euren Rückmeldungen gelungen, den Attiny2313 wieder 
nutzbar zu machen. Ich habe einen Attiny85 als Taktquelle genutzt und 
konnte die Fuses des Attiny2313 dann entsprechend ändern.

Schönen Abend,
Johannes

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.