www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR reagiert nach Fusebit setzten nicht mehr


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hab schon wieder ein Problem und zwar hab ich die Fusebits so gesetzt,
wie im Tutorial beschrieben und jetzt reagiert der ATMega8 nicht mehr.
Ich hab irgendwo im Forum gelesen, dass es einen Unterschied macht, ob
man einen Quarz mit 2 oder 4 Beinen angeschlossen hat. Wenn ja, wie
geht es richtig?
Gruß
Martin

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal was, im Tutorial steht, dass man die Fuses so einstellen soll:
http://www.mikrocontroller.net/images/atmega8-nachher.png
Aber wo wird da die Frequenz des externen Quarzoszillators angegeben?
Laut Datenblatt wird das über die 4 oberen Fusebits eingestellt.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und im datenblatt steht auch unter "system clock and clock options"
recht genau wann man was einstellen sollte. und ja, zwischen solchen
mit 2 und 4 beinen ist ein unterschied. das eine sind quarze (2 beine),
das andere quarzoszillatoren. und jetzt erstmal ab ans datenblatt lesen

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ja einen externen Oszillator mit der Frequenz 4Mhz, warum sind
dann CKSEL1..3 nicht gesetzt? Im Tutorial wird ja auch ein externer
Quarzoszillator verwendet.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lies doch einfach mal im datenblatt nach! das kann doch nicht so schwer
sein!! da steht:
External Clock:  CKSEL3..0:   0000

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich HAB im Datenblatt nachgelesen, und ich hab es auch wie im Tutorial
beschrieben gemacht, aber Fakt ist, dass sich der AVR nicht mehr
ansprechen lässt. Weisst du vielleicht sonst noch etwas, was ich falsch
gemacht haben könnte? Hast du dir schonmal das Bild weiter oben
angeschaut? So hab ich es gemacht, ist das falsch?
Gruß
Martin

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, klappt jetzt. Thx 4 help

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
np :)
was wars denn?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte den Quarzoszillator and XTAL1? anstatt XTAL2 angeschlossen.

Autor: Luhmer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo !

Ich lese mich gerade in das Buch "AVR" von Roland Walter ein.
Dort steht auf Seite 37 folgende Bemerkung:

..Noch gemeiner ist das Fus-Bit RSTDISBL (ResetDisable). Damit wird der
Reset-Eingang abgeschaltet und als normaler I/O-Pin PC6 frei. Weil eine
SPI-Programmierung aber stehts mit einem Reset-Impuls eingeleitet wird,
müßten Sie nach einer Änderung des RSTBISBL-Bits Ihren AVR (Anmerkung:
mega8)erst einmal beiseite legen. Das Zurücksetzen dieses Bits ist nur
im Parallel-Brennmodus möglich. Das STK 500 beherrscht diesen
Brennmodus...

Ich hoffe, Sie kommen damit weiter.

Autor: Gunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Luhmer,

>Das STK 500 beherrscht diesen Brennmodus...
trotzdem kann man sich in so einem Fall leicht und fast umsonst
auch selberchelfen. WENN man nicht nur gerade einen EINZIGEN Mega8
besitzt:

http://www.e-lab.de/phpBB2/load.php?id=9

Damit habe ich schon einige Mega8 durch den High Voltage Parallel
Programming Mode wieder aktivieren können.

Schöne Grüße
Gunter

Autor: Demerzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Ich hatte den Quarzoszillator and XTAL1? anstatt XTAL2
angeschlossen."
laut tutorial soll der taktgeber doch an XTAL1 - oder seh ich falsch?
ciao peter

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@luhmer:
die angaben wie man den reset-pin wieder umdefiniert stehen sehr genau
schritt für schritt im datenblatt des jeweiligen uC. alles was man
braucht ist ein anderer controller und ein bisschen zeit - braucht man
allerdings nur falls sich nicht jmd vorher schon die arbeit gemacht hat
aber kann ja mal sein, dass man nichts findet

@demerzel:
nein, siehst du nicht

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@tobi Darf ich dich noch was fragen, will deshalb keinen neuen Thread
aufmachen:

.include "4433def.inc"       ;Definitionsdatei einbinden, ggf. durch
                             ;2333def.inc ersetzen

         ldi r16, 0xFF       ;0xFF ins Arbeitsregister r16 laden
         out DDRB, r16       ;Inhalt von r16 ins IO-Register DDRB
ausgeben
ende:
         ldi r16, 0b11111000 ;0b11111100 in r16 laden
         out PORTB, r16      ;r16 ins IO-Register PORTB ausgeben

         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop
         nop


         ldi r16, 0b00000000
         out POrTB, r16

        rjmp ende           ;Sprung zur Marke "ende" ->
Endlosschleife

Eigentlich müssten die angeschlossenen LEDs blinken oder? Weil nop
verzögert doch das Programm?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab noch ein paar nops eingefügt, geht jetzt.

Autor: cool (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Cooles Programmm

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mach einfach 2 verschachtelte schleifen. eine bis 255 und eine bis ca.
10. dass ist übersichtlicher und besser anpassbar. spätestens wenn du
mal was mit schnellerem takt machst wird das mit nop's unhandlich.
lieber gleich richtig angewöhnen :)

ach ja, ausserdem schaltest du sofort nach dem ausschalten wieder an.
besser sichtbar wird das blinken noch wenn du auch nach dem zweiten out
eine pause einfügst

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SO weit bin ich leider noch nicht :(

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so z.b. einfach anstatt der nop's einfügen. ein bisschen mit dem wert
in r17 rumprobieren um zu gucken was du brauchst

      push r16
      push r17
  ldi r17, 0x05
loop1:
  ldi r16, 0xff
loop2:
  dec r16
  brne loop2
  dec r17
  brne loop1
      pop r17
      pop r16

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.