Forum: Mikrocontroller und Digitale Elektronik Wie AVR nach falschem Quarz-Fusebit reaktivieren?


von Mike (Gast)


Lesenswert?

Hallo Leute,

habe heute aus Hast ausversehen auf extern Oszi anstatt auf extern
Quarz gefused. Nun will ich ihn wieder erwecken.
Im Forum stand mal was, aber ich habe es nicht gefunden. Takt an Xtal1
anlegen? Wer kann mir da weiterhelfen. Habe kein STK 500 bzw externen
Oszi...

Vielen Dank

von André K. (freakazoid)


Lesenswert?

Ja, Takt an XTAL1. Takt muß meines Wissens nach 4x so hoch sein wie die
Programmer-Frequenz. Das mit XTAL1 steht aber auch im Datenblatt des
jeweiligen Controllers.

Grüße,
Freakazoid

von Breti (Gast)


Lesenswert?

Hi,

ich glaube, dass das nur im Parallel Programmiermodus geht. Dazu
benötigst du das STK500 oder einen anderen parallelen Programmer.
Einfacher wäre da noch der Quarzoszillator oder eine andere Taktquelle,
falls das möglich ist.

Gruß,
      Thomas

von jmoney (Gast)


Lesenswert?

Teile für einen RC-Oszillator hat eigentlich fast jeder daheim. Ein R,
ein C und ein Gatter, das man sich auch diskret aufbauen kann. Das wäre
denke ich das einfachste. Ein Quarzoszi gehört aber auch in jede
Bastelkiste ;)

von hans dieter (Gast)


Lesenswert?

die auswahl des taktes hat NICHTS mit der art der programmierung zu tun.
der mc braucht immer einen takt wenn er arbeiten soll (egal ob der durch
einen internen oszilator oder durch eine externe quelle erzeugt wird).
(notfalls geht auch eine sinus-quelle. oder der serielle port des
computers.)

von Ssss S. (sssssss)


Lesenswert?

Hi!

Hast du noch einen weiteren Atmel da ?
Dann programmier ihn wie folgt:

portpin=output;

loop:
portpin=1;
nop;
portpin=0;
rjmp loop;

(pseudocode g)

Dann verbindest du den Output pin mit dem xtal deines falsch
programmierten.
Dann kannste deinen "toten" ganz normal programmieren ;)

Musst mal hier danach suchen, dann findest du auch den Assemblercode
für den obigen pseudocode :)
(hab lange nichts mehr mit avr asm gemacht und würde nur quatsch
schreiben g)

Gruss, Simon

von Breti (Gast)


Lesenswert?

[quote]die auswahl des taktes hat NICHTS mit der art der programmierung
zu tun.[/quote]

Korrigiert mich, wenn ich falsch liege, aber so weit ich mich erinnere
geht das Programmieren per ISP nicht, wenn per Fusebits vorher eine
falsche Taktquelle gewählt wurde. In diesem Fall kann man aber trotzdem
immer noch parallel programmieren. Daher gibt es in diesem Fall nur die
2 Möglichkeiten:

1. Einen passenden Taktgeber anschließen und per ISP die Fuesebits
zurück setzen
2. Die Fusebits per paralleler Programmierung zurück setzen

Gruß,
       Thomas

von Hanno D. (Gast)


Lesenswert?

Auf Assembler wär das:

.nolist
.include "m8def.inc" ;für ATmega8
.list

ldi r16, 0x01
out DDRD, r16 ;Für PortD.0 (also 1. Pin in PortD)

main:

ldi r16, 0x01
out portd, r16 ; 1.Pin an PortD auf high setzen
nop ; Päuschen einlegen
ldi r16, 0x00
out portd, r16 ; 1.Pin an PortD au low setzen

rjmp main ; Und das Ganze nochmal von Vorn

Grüße,

Hanno

von Ingo (Gast)


Lesenswert?

@Berti: Du liegst falsch :)

Wenn ein externer Oszillator gewählt wurde erwartet der AVR einen Takt
am XTAL1. Alles ander bleibt wie es ist.

Was Du meinstest ist, dass, wenn man z.B. die Funktion des RESET Pin
"verbogen" hat (was bei einigen AVRs geht), ISP nicht mehr
funktioniert.

von Hannes L. (hannes)


Lesenswert?

Schau dir doch einfach mal im Datenblatt des betreffenden AVRs unter
Clock Sources an, welche externen Taktquellen der AVR unterstützt und
wie sie angeschlossen werden. Die Schaltbilder dazu stehen auch im
Datenblatt. Nun kannst du eine Möglichkeit nach der anderen
durchprobieren.

Anders ist es, wenn du Reset deaktiviert hast (Portpin draus gemacht)
oder ISP deaktiviert hast, dann hilft nur noch der HV-
(Hochvolt-)Programmiermodus, wie ihn z.B. das STK500 und einige
Nachbauten kann.

Dass der Umgang mit den Fusebits Aufmerksamkeit erfordert, hast du nun
sicherlich selbst gemerkt, also erübrigen sich weitere Warnungen...
;-(

...

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.