mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programm wird bei geänderter Frequenz nicht mehr ausgeführ


Autor: Paul P. (cesupa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

derzeitig versuche ich einen externen Quarz(16MHz) an meinen Atmega8 
anzuschließen, das funktioniert soweit ganz gut, zumindest antwortet der 
Atmega nach dem Setzen der Fuse Bits(0xee) noch :). Wenn ich dann aber 
versuche ein einfaches Programm, das eine LED zum leuchten bringen soll 
zu übertragen funktioniert dies zwar auch wunderbar, aber die LED will 
nicht leuchten. Am Pin sind auch nur ungefähr 0,2V statt 4-5V. Wenn ich 
das ganze mit dem internen Quarz(8MHz) mache, dann funktionierts. Lasse 
ich das Programm drauf und schalte wieder auf den externen Quarz um 
leuchtet die LED komischerweise immer noch, nur wenn ich das Prog lösche 
und erneut überspiele leuchtet sie wieder nicht :-( Kann mir einer von 
euch sagen, was ich dagegen unternehmen könnte?

Gruß
cesupa

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gib mal die GENAUE Typenbezeichung des AVRs... Könnte sein, dass du ein 
L-Typ hast, der kann nur 8MHz...

Autor: AVR Geist (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt keinen internen Quarz.
Sondern nur einen int. RC Oszillator.

Autor: Paul P. (cesupa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, auf dem Atmega8 steht drauf:

ATMEL 0547I
ATMEGA8-16PU

Gruß
cesupa

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CKOPT -Fuse (in dem anderen Fuse-byte) programmieren
Externer Quarz heißt im Datasheet (und nur da ;) ) "Crystal Oscillator", 
das Kapitel erklärt auch die Fuses ganz gut.
btw. Quarzoszillator (wie in den meisten shops) heißt im Datasheet 
"external clock", das sollte man nicht verwechseln...

hth. Jörg

Autor: Paul P. (cesupa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ähm, sorry, ich versteh noch nicht viel von Mikrokontrollern. Die Fuse 
Bits hab ich auf 0xee gestellt, so stehts meiner Meinung nach auch im 
Datasheet drin, funktioniert ja auch. Aber was ist dieses CKOPT ??? Im 
Datasheet steht ja auch ich muss CKOPT programmiert verwenden, wenn ich 
einen 16MHz Quarz benutze, wie genau mache ich das?

Gruß
cesupa

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Atmega8 hat zwei Fuse bytes:
 Im "Fuse Low Byte" stehen die Einstellungen für den Brown-out-detektor, 
die Start-up-time und die Bits um die Taktquelle auszuwählen (Kapitel: 
"Memory programming"->"Fuse bits")
 Im "Fuse High Byte" steh u.A. CKOPT.
Was du wie einstellen musst hängt vor allem von dem Programm ab, dass du 
zum programmieren benutzt. Deshalb schau mal hier: 
http://www.mikrocontroller.net/articles/AVR_Fuses#...

hth. Jörg

Autor: Paul P. (cesupa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich mache das ganze unter Linux mit UISP. Die Fuse-Bits setze ich 
für den externen Quarz so hier:

uisp -dprog=dapa --wr_fuse_l=0xee

Was muss ich hierbei ändern um CKOPT korrekt einzustellen?

Gruß
cesupa

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LIES erst das Fuse High Byte AUS - wenn ich raten müsste ( ich nutze 
weder Linux noch uisp) mit "uisp -dprog=dapa --re_fuse_h" - aber da 
gibt's bestimmt 'ne doku ;).
Der Defaultwert für das Fuse-Highbyte sollte 0xD9 sein (0b11011001)
CKOPT (datasheet, bei mir "Table 87.") soll programmiert werden, also 
muss in dem High byte das Bit 4 auf Null gesetzt werden-> 0b110_0_1001 = 
0xc9.
Schreib AUF GAR KEINEN FALL in das Fuse high byte beim mega8 einen Wert 
der kleiner ist als 0x80 ! (RSTDISBL Fuse).

hth. Jörg

ps.: lies das Datasheet (nochmal)
pps.: und nochmal ;)

Autor: Paul P. (cesupa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, hab jetzt das Fuse High Byte neu gesetzt, nach 0xc9. Funktioniert 
leider immer noch nicht. Werde mir dann mal das Datasheet reinziehen. 
Wäre euch aber dennoch sehr dankbar wenn euch noch einige Ideen bzw. 
Lösungsvorschläge einfallen, die ihr hier dann posted.

Schöne Grüße
cesupa

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.