Forum: Mikrocontroller und Digitale Elektronik AtTiny2313 nach fusekill wiederbeleben


von Björn W. (bjoernw)


Lesenswert?

Hallo Gemeinde,

ich bin noch recht neu auf dem Gebiet
und habe gleich einen AtTiny2313 auf dem Gewissen.

Ich habe mich gewundert warum der AVR nur mit 1 MHz läuft, obwohl ein 
3,6864 Quarz dran hängt.
Nach ein wenig Googlei habe ich herausgefunden, dass die Fusebits noch 
für einen externen Taktgeber gesetzt werden muss.

Blöderweise habe ich bei den FuseLowBits alles auf low und nicht auf 
high gesetzt. Demnach kann ich jetzt den Atmel nicht mehr ansprechen.

Da ich zum Glück zwei gekauft habe, ist es nicht weiter schlimm, aber 
ist schade drum.
Darum versuche ich gerade mit dem 2. Atmel einen Taktgeber zu bauen, der 
mir den ersten wieder zurückholt.

Auf dem zweiten Atmel läft nun folgendes Programm:

-------------------------------
$regfile = "attiny2313.dat"
$crystal = 3686400

Dim Index As Byte
Ddrd = &B1111111
Portd = &B1111111

Do
  If Portd.2 = 1 Then
    Portd.2 = 0
  Else
    Portd.2 = 1
  End If
Loop
End
------------------------------

Dazu muss ich noch sagen, dass ich den Programmer von http://rowalt.de 
benutze (inkl. TWinAVR).

Ich habe das Ganze jetzt so verkabelt:
http://up-pic.de/images/img98/6008build.jpg
(Entschuldigt, aber ich hab noch nie mit Eagle gearbeitet :) kommt 
hoffentlich alles noch, aber im Prinzip sollte es verständlich sein, wie 
es angekabelt ist)
(IC 1 ist der "konfuse", und der IC 2 gibt den Takt an.)

Allerdings schaffe ich es nicht mit dem Programmer die Fusebits neu zu 
editieren.

Kann hier jemand meinen Denkfehler aufdecken, warum es nicht klappt?

Gruß

Björn

von Michael H. (michael_h45)


Lesenswert?

Stell bei deinem Programmer mal den Takt der ISP so weit runter, wie du 
kannst.
Stell auch sicher, dass du bei deinem laufenden Controller den CLKDIV8 
ausgemacht hast.

von Achim M. (minifloat)


Lesenswert?

Der andere, noch funktionierende AVR läuft auch nur mit 1MHz. Das 
Getoggel mit dem IF-Block ist also noch langsamer, Schätzungsweise 
Faktor 5. Damit wären wir dann bei 200kHz, d.h. dein SPI-Takt zum 
brennen muss <50kHz sein.

Kannst du die SPI-Geschwindigkeit deines Prommers soweit drosseln?

Ansonsten besteht noch die Möglichkeit, den Taktspender-AVR "richtig" zu 
befusen, dass er mit 8MHz rennt.

Schau dir mal alle Fuses an. SPIEN noch gesetzt? wenn RSTDISBL weg ist, 
hilft nur noch HV-Brennen.

mfg mf

von Björn W. (bjoernw)


Lesenswert?

Danke für die Antworten.

Ich habe die TWinAVR Software auf 10 KHz eingestellt, allerdings ohne 
Erfolg (Ich muss bei dieser Software zuerst die FuseBts auslesen, bevor 
ich sie wieder schreiben kann - hängts hier vielleicht?)

Und was ich vergessen habe: Am IC2 hängt ein 3,6864 Quarz dran (port 4 
und 5)

Da ist jetzt auch alles angehakt (Läuft auch mit 3,686 MHz) - muss ich 
dann trotzdem CLKDIV8 auf low setzten?

von Michael H. (michael_h45)


Lesenswert?

Atmel schreibt für den ISP Takt vor, dass er mindestens um einen Faktor 
4 unter dem Systemtakt liegen soll.
3,6864MHz/8/8/4 = 14,4kHz.
Nachdem der Bascom-Code sicher langsamer läuft: JA, nimm den Teiler von 
8 raus.

Björn W. schrieb:
> (Ich muss bei dieser Software zuerst die FuseBts auslesen, bevor
> ich sie wieder schreiben kann - hängts hier vielleicht?)
nein.

von Björn W. (bjoernw)


Lesenswert?

Vielen Dank an alle,

so hats funktioniert :)


Wieder was dazu gelernt.


Gruß Björn

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.