mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega16 -- Quarze, Quarzoszillatoren, Fuses


Autor: LukeNukem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

ich hoffe, ich bin hier richtig; wenn nicht, bitte Bescheid sagen und / 
oder ins richtige Forum verschieben. Herzlichen Dank.

Nun, ich bin ein Anfänger in der Elektronik und schätze dieses Forum als 
-- für mich jedenfalls -- nahezu unerschöpfliche Wissensquelle. Leider 
muß ich nochmal alle Fehler wiederholen, die die geschätzten Anwesenden 
wohl bereits hinter sich oder nie gemacht haben. ;-) Deswegen habe ich 
heute meinen ATMega16 zeitweilig ins Nirvana geschickt.

Wie auch immer, ich möchte derlei unangenehme Erfahrungen in Zukunft 
gern vermeiden. Ich habe hier einen 8-MHz-Quarz (das Teil mit zwei 
Beinchen) und zwei 22pF-Kerkos als Lastkapazitäten und bin ein wenig 
verwirrt, wie ich meine Fuses dafür setzen muß. Das Datenblatt des uC 
verwirrt mich eher, als das es hülfe, und der "AVR Fuse Calculator" von 
Engbedded kennt die "External Clock" sowie den "External 
Chrystal/Resonator" mit "Low-", "Medium-" und "High-Frequency".

Sehe ich das richtig, daß mit "External Clock" ein externer Taktgeber 
gemeint ist, also etwa ein NE555 oder ein Pin von einem ATTiny mit PWM? 
Und: ist mein 8-MHz-Quarz nun ein "Medium-" oder ein "High-Frequency" 
"External Chrystal/Resonator"?

Auch bezüglich der CKOPT-Fuse habe ich noch Fragen. Da an meinem uC ein 
PWM-geregelter Gleichstrommotor über einen L293D und eine Halogen-Lampe 
über einen IRL540N hängen werden, rechne ich mit Ripples und Störungen, 
also wohl mit dem, was das ATMega16-Datenblatt ein "noisy environment" 
nennt -- in dem ich CKOPT laut Datenblatt setzen sollte. Habe ich das 
tatsächlich richtig verstanden?

Beste Grüße und lieben Dank,
Luke


PS: Heute habe ich mir meinen ATMega16 "verfust", wie man hier wohl 
sagt: lfuse=0xE8 und hfuse=0x99 sind nicht für, wie gewünscht, einen 
externen 8-MHz-Quarz, sondern einen externen RC-Oszillator. Im 
Nachhinein habe ich mich jedenfalls ziemlich über meine eigene Doofheit 
geärgert. Wer Lesen kann, ist eben doch klar im Vorteil. (Nicht lachen, 
bitte.)

Ich bin übrigens ein bisschen stolz darauf, das ich das nicht nur selbst 
herausgefunden habe, sondern es obendrein geschafft habe, einen zur 
Fuse-Einstellung passenden RC-Oszillator zusammenzubasteln und meinen 
ISP-Programmer "mySmartUSB light" so anzustecken, daß ich die Fuses auf 
die Werkseinstellung zurücksetzen konnte. Ganz alleine! (Jetzt dürft Ihr 
mich gerne auslachen.)

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LukeNukem schrieb:
> Ganz alleine!

Na, dann weiter so!

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich find das gut, was du dir bisher erarbeitet hast. Das schaffen 
bei weitem nicht alle Anfänger :) . Das Datenblatt hast du (glaube ich) 
richtig verstanden. Wobei: dieses CKOPT-Fuse hab ich bisher noch nie 
sinnvoll einsetzen können. Wenn deine Schaltung halbwegs ordentlich 
aufgebaut ist, dann ist der Krieg gegen die Störungen schonmal halb 
gewonnen.

Zu deinen Fragen mit dem "Medium-" oder "High-Frequency"
"External Chrystal/Resonator": das kann man sich mit Seite 26 des 
Datenblattes zusammenreihmen. Da stehen ja drei "Frequenzbereiche". Die 
werden dann ja low, med, und high sein :) . Und ja, dein NE555 ist ein 
"external clock" . Eigentlich sagen einem die Bilder ja fast alles...

Ich schreib zwar auch immer gern und viel, aber versuch doch mal, deine 
Fragen so zu stellen, daß man sie in deinem Text leichter findet. Das 
macht das beantworten leichter ;) ...

Gruß

Autor: LukeNukem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielen Dank, morgen mittag probier ich's aus.

Liebe Grüße,
Luke

Autor: LukeNukem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

so, genug probiert, aber irgendwas klappt dort immer noch nicht und 
jetzt bin ich mit meinem bisschen Latein am Ende. Auf der seriellen 
Schnettstille bekomme ich nur reproduzierbaren Zeichensalat, bei egal 
welcher Baudrate (probiert: 2400, 4800, 9600, 34200 Bd, mit 
util/setserial.h und auf die im AVR-GCC-Tutorial angegebenen 
Präprozessormakros). Meine Fuses stehen derzeit auf lfuse=0xFF und 
hfuse=0xC9; CKOPT, JTAGEN, SUT[0:1] und CKSEL0 machen dabei nur einen 
Unterschied beim Zeichensalat. Deswegen nehme ich an, daß da trotzdem 
irgend etwas mit dem Takt nicht stimmt.

Geprüft und befunden habe ich folgendes: Der Quarz schwingt mit 8 MHz, 
sagt mein DMM, ein Oszilloskop habe ich leider nicht. Mit einer 
programmierten CKOPT-Fuse (0) liegen an XTAL1 und XTAL2 je ca. 580mV, 
mit unprogrammierter (1) etwa 2,5V an. Eine kleine Hauptschleife

while(TRUE) { PORTC |= (1<<PC1); PORTC &= ~(1<<PC1); }

gibt an dem betreffenden Pin eine Frequenz von 1,33 MHz aus. Wenn ich 
das richtig verstanden habe und ein Schleifendurchlauf hier sechs 
CPU-Takte braucht, würde das doch passen. Für die serielle Verbindung 
verwende ich einen Wandler von USB auf RS-232, den Linux als pl2303 
erkennt und als USB-TTY einbindet. Darauf greife ich per gtkterm zu.

Hat jemand eine Idee, wo der Hund denn stecken könnte?

Liebe Grüße und vielen Dank,
Luke

Autor: LukeNukem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Problem gelöst: es lag an der Invertierung des Signals. ;-)

Liebe Grüße,
Luke

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.