www.mikrocontroller.net

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


Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: André Kronfeldt (freakazoid)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Breti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: jmoney (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Autor: hans dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.)

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Breti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hanno D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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...
;-(

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.