hallo zusammen,
ich habe das avr tutorial gelesen, und um das ganze mal nachzubauen auch
die notwendigen komponenten bestellt. leider habe ich nicht dem atmega8
mit 16 mhz gekauft sondern den mit 8 mhz. gibt es nun im weiteren
verlauf der anleitung etwas zu beachten? (z.B. einen anderen quarz,
statt den mit 4 mhz?) oder kann ich diesen ebenfalls verwenden.
falls nicht würde ich, bevor ich den controller einlöte, einen neuen
bestellen um nicht direkt an dieser hürde zu scheitern.
dank euch
thomas
benütze einfach die voreingestellten 1MHz. Intern kannste den noch auf
8MHz hochsetzen. Aber ich denke am Anfang benötigst du das noch nicht.
Extern müsste alles zwischen 0-16MHz funktionieren....
Wenn Du sowieso nur einen 4 MHz Quarz verwenden willst ist es egal ob Du
den Mega8 oder Mega8L hast. Bei der "L"-Variante solltest du halt nur
nicht über 8 MHz gehen.
... danke für die schnelle antwort.
heisst das ich benötige gar keinen quarz? ich wollte den controller so
einrichten wie unter "Mikrocontroller" beschrieben:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment
... würde das ganze denn laufen wenn ich einen 4 mhz quarz anschließe?
oder einfach nichts an pin9 anschließen?
dank euch, und verzeiht die nub fragen
thomas
Der Mega8 wird vom Werk aus mit 1 MHz internen Takt ausgeliefert... Man
kann diesen über eine Fuse auf 8 MHz intern erhöhen ohne eine externe
Beschaltung für den Takt zu haben.
Wenn Du allerdings Beispielprogramme übernimmst solltest Du natürlich
dann bedenken, dass dein Programm entweder mit einem viertel oder der
doppelten Geschwindigkeit von 4 MHz läuft (z.B. bei Blinkgeschwindigkeit
oder RS232).
"heisst das ich benötige gar keinen quarz?"
Ja
"... würde das ganze denn laufen wenn ich einen 4 mhz quarz anschließe?
oder einfach nichts an pin9 anschließen?"
2x ja
im AVR Tutorial ist auch ein Link auf das Datenblatt, da steht viel drin
...
Wenn Du den internen Oszillator nutzt, dann brauchst Du an xtal1 und
xtal2 nichts anschließen...
Hierzu kann aber auch der berühmte Blick in das Datenblatt nicht schaden
;-)
Mit einem Quarz musst Du übrigens nicht nur Pin9 sonder auch Pin10
beschalten. Pin9 alleine ist die Variante mit dem Oszillator.
Wenn Du den internen Takt nutzt kannst Du diese beiden Pinne auch als
PortB6 und PortB7 in Deinen Programmen verwenden.
....das hat nun fast alle meine fragen mehr als perfekt gelöst, offen
bleibt nur noch:
... die mhz-angabe nur das mögliche potential, d.h. wenn ich nichts
anschließe läuft er auf 1 mhz... und teoretisch könnte ich den
controller bis 8 mhz "belasten".
.... ist dann der mit 16 mhz doppelt so schnell, oder benötigt dieser
mehr takte zur verarbeitung einer instruktion?
thomas
ps: war noch nie in einem forum in dem ich um diese uhrzeit noch so
schnell eine antwort bekommen habe. Vielen Dank!
Mit dem internen Takt gehen beide nur bis 8 MHz... die 16er Variante
kann nur mit einem externe Taktgeber (Quarz oder Oszillator) die volle
Geschwindigkeit erreichen.
Was die Verarbeitungszeit angeht gibt es zwischen den Typen keinen
Unterschied.
Du hast nur die Wahl zwischen 1 MHz und 8 MHz intern (beim Mega8).
Öhm...also, vielleicht weisst Du es ja schon - sofern dem so ist,
überlese den kommentar.
Wenn Du die entsprechenden PINs nicht an ein Quarz anschließt so heißt
das nicht, dass der Controller mit Intern 1MHz läuft!!!
Wenn Du den Controller zuvor auf Externen Quarz "gefused" hast, dann
musst Du extern ein Quarz anschließen.
Wenn Du den Controller zuvor auf Intern "gefused" hast, dann kannst Du
extern alles anschließen (fast alles, 230V solltest Du nicht anlegen).
Bitte schaue mal ins Datenblatt, Thema Oszillator, Fuses, System
Clock...
Auslieferungszustand ist mit internem 1 MHz Takt.
Sofern nicht umgestellt sollte der immer noch vorhanden sein. Sollte er
auf extern umgefused worden sein kann man dies natürlich rückgängig
machen wenn man will...
Um noch einmal zusammen zu fassen.
Es gibt 2 Möglichkeiten:
* interner Takt
* externer Takt
* interner Takt
Dies ist der Auslieferungszustand bei einem Mega8.
Dabei wird der Takt von einem internen Schwingkreis
geliefert.
Vorteil: keine externe Beschaltung notwendig. Die Pins
an denen ansonsten ein Quarz oder ein Quarzoszillator
angeschlossen wird sind daher als normale Portpins
verwendbar.
Nachteil: Der Schwingkreis ist nicht sehr genau. Bei
Temperaturänderungen verändert er seine Frequenz.
Nur 2 Frequenzen (1Mhz und 8Mhz) sind realisierbar. Es
gibt zwar die Möglichkeit die interne Frequenz in Grenzen
noch zu verändern, dies ist aber aufwändig und erfordert
mindestens einen Frequenzzähler, wenn man eine bestimmte
Frequenz erreichen will.
* externer Takt
Auch hier gibt es wieder 2 Möglichkeiten
o Quarz
o Quarzoszillator
Vorteil: Die Taktfrequenz ist so stabil, wie es der Quarz
bzw. der Oszillator vorgibt. Und das ist wesentlich genauer
als der interne Oszillator.
Kein Abgleich notwendig, wenn eine bestimmte Frequenz
erreicht werden soll, solange as einen Quarz bzw. Oszillator
in dieser Frequenz gibt.
Nachteil: Die Pins an denen der Quarz bzw. der Oszillator
angeschlossen wird, sind nicht mehr als I/O Pins nutzbar.
@ Jörg B.:
>Auslieferungszustand ist mit internem 1 MHz Takt.
Der mega8 hat keine ckdiv-Fuse, den kann man nicht /8 Teilen. Nur
zwischen 1, 2, 4 und 8 MHz interner RC-Oszillator auswählen.
Den mega8L (8 MHz) sollte man nicht übertakten. Der interne Aufbau ist
für kleinere Versorgungsspannungen ausgelegt und kann >8MHz seltsame
Phänomene zeigen. Drum Steht auf jedem AVR die maximal als sicher
garantierte Taktfrequenz drauf.
>Sollte er auf extern umgefused worden sein kann man dies natürlich rückgängig
machen wenn man will...
Ja, sofern ein Quarz angeschlossen ist oder an XTAL1 eine Frequenz min.
4x der ISP-Frequenz anliegt.
Stimmt, mit dem 2 und 4 MHz war mir gar nicht mehr bewusst, da ich immer
direkt auf 8 hochgestellt hatte... Aber stimmt natürlich - mia culpa :)
Das mit dem ckdiv-Fuse versteh ich jetzt nicht so ganz, aber
"The device is shipped with CKSEL = “0001” and SUT = “10” (1 MHz
Internal RC Oscillator, slowly rising power)."
steht zumindest so in der Doku.
psycho_gon schrieb:
" ... bevor ich den controller einlöte, ... "
Mein Rat: Keinesfalls einlöten, lieber sockeln. Wenn man sich das Ding
zerfused oder aus einem anderen Grund stirbt, wird das sonst eine eklige
Auslötaktion. ( Es sei denn, es ist ein Controller im TQFP-Gehäuse, da
ist natürlich nichts mit Sockel).
Gruss
Jadeclaw.
>mia culpa
Welche Schuld trägt Mia da?
Das Ding nennt sich "mea culpa". Nutze Fremdwörter, wenn du weisst was
sie bedeuten, und du sie richtig schreiben kannst.
@ psycho_gon
Vielleicht solltest du dich mal an korrekte Bezeichnungen gewöhnen.
Es gibt sowohl mHz (Millihertz) wenn auch selten, und natürlich MHz
(Megahertz). mhz gibt es dagegen nicht!