Forum: Mikrocontroller und Digitale Elektronik Attiny 45/85 funktioniert nicht mit externem Quarz


von Daniel J. (theend)


Angehängte Dateien:

Lesenswert?

Hallo, ich Flashe meine Chips eigentlich immer auf einem Sockel, an dem 
Schließe ich dann den USBISP programmer an.
Allerdings brauche ich für mein Projekt einen externen Quarz und deshalb 
Programmiere ich ihn gerade auf einem Steckbrett.

Ich verwende Burn-O-Mat, also AVRdude.

Dort habe ich nichts verändert nur: CKSEL3-0

Ein häckchen bedeuetet es wird "0" programmiert, also brauche ich für 
"0000" externen Quarz, 4 mal häckchen.
Starttime dürfte hier 14ck + 4ms sekunden sein = default = unverändert.

Angeschlossen habe ich den Quarz mit 2 x 22pF Kondensator. 16MHz 
Kondensator.

Folgender Fehler wird angezeigt:
1
C:\WinAVR-20100110\bin\avrdude.exe -C C:\WinAVR-20100110\bin\avrdude.conf -p t45 -P usb -c usbasp  -U efuse:r:C:\DOKUME~1\Dan\LOKALE~1\Temp\efuse7719407333882818515.hex:r -U hfuse:r:C:\DOKUME~1\Dan\LOKALE~1\Temp\hfuse7021855211026429154.hex:r -U lfuse:r:C:\DOKUME~1\Dan\LOKALE~1\Temp\lfuse2038070954991651627.hex:r 
2
3
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
4
avrdude.exe: error: programm enable: target doesn't answer. 1 
5
avrdude.exe: initialization failed, rc=-1
6
              Double check connections and try again, or use -F to override
7
              this check.
8
9
10
 avrdude.exe done.  Thank you.

cannot set sck period, steht schon immer da. Habe ich aber immer 
Ignorieren können.

Das Komische:
Wenn ich den Attiny mit einem neuen austausche und mit dem Internen takt 
ihn beschreibe, funktioniert alles. Also Sollte meine Schaltung 
funktionieren.

Woran kann das liegen?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Nur doof, dass du nicht 0000 brauchst fürn Quarz sondern 1111
Fusebitcalculator:
http://www.engbedded.com/fusecalc/
Die Überlegung mit den Häkchen is sonst richtig.

So haste den Tiny auf externen Takt gestellt, also der will Rechteck 
sehen am XTAL1, so kannste die weider retten.

von Lisa (Gast)


Lesenswert?

Kann es sein, dass du für deinen externen Quarz eine falsche Frequenz 
vorgibst? Kannst mal unter -> http://www.engbedded.com/fusecalc 
nachrechnen ob deine Einstellungen so passen...

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Lisa schrieb:
> Kann es sein, dass du für deinen externen Quarz eine falsche Frequenz
> vorgibst?

Der usbasp versucht den Programmiertakt selber zu finden, aber wenn der 
Tiny durch die falschen Fuses nimmer antwortet, geht das natürlich 
nicht.

von Viktor N. (Gast)


Lesenswert?

Externer Quarz ... ? Ist eine unguenstige Bezeichnung. Denn es gibt 
keinen internen Quarz. Die richtige Bezeichnung lautet "externer 
Oszillator". Was aber nicht ein Quarz, sondern ein Oszillator ist.

Ich befuerchte, ohne die Fuses gecheckt zu haben, du hast auf externer 
Oszillator programmiert. Es sollte nur Quarz heissen.

Dann muss auch am Clk-1 eine Clock anliegen. Von extern. Dh schliess nun 
einen Oszillator an, und programmiere neu.

von Daniel J. (theend)


Lesenswert?

Martin Wende schrieb:
> Nur doof, dass du nicht 0000 brauchst fürn Quarz sondern 1111
> Fusebitcalculator:
> http://www.engbedded.com/fusecalc/
> Die Überlegung mit den Häkchen is sonst richtig.

Hm mist...
Der fusebitcalculator zeigt das genau andersrum an, wie Burn-O-Mat.

vielen dank

von Daniel J. (theend)


Lesenswert?

Eine frage habe ich noch, wäre es irgendwie möglich das der Attiny 
während dem Betrieb zwischen dem Internen Taktgeber und dem Quarz 
umschaltet? Oder muss man das mit den Programmern machen?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Daniel J. schrieb:
> Eine frage habe ich noch, wäre es irgendwie möglich das der Attiny
> während dem Betrieb zwischen dem Internen Taktgeber und dem Quarz
> umschaltet? Oder muss man das mit den Programmern machen?

Nein, die Clocksource ist während des Betriebes nicht mehr umschaltbar. 
Du kannst allerdings den Prescaler (CLKPR) im Programm umschalten. Siehe 
Kapitel 6.5.2 im Datenblatt.

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.