Forum: Mikrocontroller und Digitale Elektronik ATtiny85 Probleme mit Fuses


von Christian Garbs (Gast)


Lesenswert?

Hallo zusammen,

ich habe einen USBasp-basierten Programmer und will damit per ISP einen 
ATtiny85 befüllen.

Einfache Tests waren schon erfolgreich: Der ATtiny85 hat mit seinem 
internen Takt erfolgreich eine LED zum Blinken gebracht.

Nun soll er in eine etwas größere Schaltung (basierend auf 
V-USB/HIDKeys) und dazu benötige ich einen externen Takt.  Ich will dort 
einen 12 MHz-Quarz benutzen, dementsprechend muss ich an die Fuses ran.

Der Engbedded Fuse-Calculator sagt: low=0x62 high=0xDF wäre 
Defaulteinstellung für den Chip.
Wenn ich die Fuses mit avrdude auslese, bestätigt sich das.

Nun habe ich mit dem Calculator das CKDIV8 abgeschaltet und auf 
"External Crystal Osc. Freq 8.0- MHz" mit maximalen Timings gewechselt 
(CKSEL=1111 SUT=11).  Demnach wäre die low-Fuse auf 0x7F zu wechseln.
Der andere Fuse-Calculator sagt das gleiche: 
http://eleccelerator.com/fusecalc/fusecalc.php?chip=attiny85&LOW=7F&HIGH=DF&EXTENDED=FF&LOCKBIT=FF

Wenn ich avrdude mit dem Parameter "-U lfuse:w:0x7f:m" aufrufe, dann 
läuft das fehlerfrei durch, aber danach ist der ATtiny85 nicht mehr 
programmierbar.  Er wird vom Programmer nicht mehr gefunden.  Auch das 
einfache Auslesen der Fuses (was vorher mehrfach ging) klappt nicht 
mehr.

Ich habe extra die Finger von den "gefährlichen" Einstellungen in der 
High-Fuse (RSTDISBL, SPIEN, DWEN) gelassen - was habe ich falsch 
gemacht?

Zwei Vermutungen habe ich, aber bevor ich nochmal 99¢ himmele (ich habe 
leider keinen HV-Programmer parat…), frag ich dich lieber :-)

A)
Muss man High- und Low-Fuse immer gleichzeitig schreiben?  Da das beim 
avrdude zwei verschiedene "-U"-Programmiervorgänge sind, habe ich mich 
auf die lfuse beschränkt.

B)
Muss ich nach dem Umschalten auf externen Quarz jetzt auch fürs 
Programmieren extern den Takt extern liefern?  Ich habe bisher gedacht, 
dafür würde das CLK-Signal auf dem ISP-Header ausreichen, aber beim 
Stöbern hier im Forum bin ich langsam zur Überzeugung gekommen, dass dem 
nicht so ist…
Ich habe also testweise während des versuchten Programmierens Quarz und 
Kondensatoren an XTAL1/XTAL2 des ATtiny85 gehängt, aber das hat auch 
nicht geholfen - avrdude hat weiterhin nichts mehr erkannt.

Was tun, sprach Zeus?

Danke und Gruß
Christian

von Oliver R. (orb)


Lesenswert?

Christian Garbs schrieb:
> Muss ich nach dem Umschalten auf externen Quarz jetzt auch fürs
> Programmieren extern den Takt extern liefern?

Ja, wenn Du den internen Oszillator abschaltest braucht er einen 
externen Takt/ein externes Quarz/einen externen Resonator. Das 
CLK-Signal ist nur für den Programmiertakt auf der Schnittstelle.

Mit einem externen Takt sollte das Programmieren auch wieder 
funktionieren.

: Bearbeitet durch User
von Christian Garbs (Gast)


Lesenswert?

D'oh, der Programmer sponn, das ist mir erst aufgefallen, als ich dann 
nochmal einen brandneuen ATtiny aus der Tüte probiert habe - der wollte 
von Anfang an nicht mit mir reden.

Der "verfuste" ATtiny redet seit ich den Programmer gefixt habe auch 
wieder mit mir – wie schon bemerkt natürlich nur, wenn ein auch Quarz 
dranhängt.

Danke!
Christian

von Philipp K. (philipp_k59)


Lesenswert?

Die letzten HID-Keyboards die ich auf dem Attiny85 nutzte waren mit dem 
internen 8Mhz Takt möglich/machbar.

Hab da einfach nur den Tiny mit nem bissl DiodenSalat am USB Stecker.

: Bearbeitet durch User
von Christian Garbs (Gast)


Lesenswert?

Worüber hast Du denn da das USB abgewickelt?  Ich bin im Moment bei 
V-USB, da reichen die 8 MHz scheinbar nicht aus:

"Can be clocked with 12 MHz, 15 MHz, 16 MHz or 20 MHz crystal or from a 
12.8 MHz or 16.5 MHz internal RC oscillator."

Letztendlich sind das ja auch nur 3 Bauteile (Quarz, Kondensatoren) :-)


Ich will nur eine einfache 1-Tasten-Tastatur bauen (Fußschalter für 
Push-to-Talk im Teamspeak).  Der Testaufbau auf meinem Entwicklungsboard 
(ATmega168) läuft, nun will ich das mit einem ATtiny85 "standalone" 
implementieren.  Da läuft aktuell natürlich irgendwas nicht und mangels 
passender Hardware kann ich nicht sinnvoll debuggen…

Kann ich mal in Deine Schaltung und Software gucken?
Bei weniger Bauteilen kann ich ja auch weniger Fehler machen, vielleicht 
läuft's dann (und dabei hab ich so schön in KiCAD meine Platine 
designed).

Gruß
Christian

PS: Wie wechselt man jetzt das Topic?!

von Philipp K. (philipp_k59)


Lesenswert?

google hätte geholfen:
http://codeandlife.com/2012/02/22/v-usb-with-attiny45-attiny85-without-a-crystal/

Dazu halt das HID-Keyboard ..
http://www.elektronik-labor.de/AVR/VUSB.html

Bisschen runterscrollen könnte schon das sein.

: Bearbeitet durch User
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.