Da ich meinen Originalpost gelöscht habe versuche ich es noch mal zusammen zu bekommen. Meine Frage war: Wann benutzt man externe Taktgeber: - Wenn man einen sehr genauen Takt benötigt - Wenn man einen hohen Takt beötigt. Frage1: Was ist sehr genau, bzw. wann reicht intern nicht mehr. und genügt der interne takt für 100Hz Multiplexing. Fragezwei: wann Baudratenquarz und wann "gerade Zahlen". Ich hatte es so verstanden, dass Baudratenquarze eben bei UART nötig sind, aber mir war nicht klar wann man "gerade" verwdenden sollte. In der Bucht habe ich allerdings AVRs mit einem 32,768kHz Uhrenquarz gesehen. Der wird ja wohl kaum zur Taktversorgung gut sein, oder? Der Sinn dürfte vermutlich eher im Bereich von "Timern" liegen. Aber was genau fange ich damit an.
:
Bearbeitet durch User
Zum Multiplexen reicht der interne Takt. Alles davor ist so richtig. Die Baudratenquarze erleichtern die Erzeugung "krummer" Baudraten wie z.B. 115200 Bd. Man kann Baudraten-Quarzen für normale Anwendungen ohne UART benutzen. Ich denke, dass die meisten Entwickler runde Frequenzen bevorzugen, damit sie Timings leichter berechnen können. Die 32kHz-Quarze sindd nur mit einem Timer verbunden, und sind in der Tat zur Uhrzeit-Erzeugung da. Der CPU-Clock wird dann aus einem zweiten, schnelleren Quarz (oder intern) erzeugt.
Benedikt R. schrieb: > Frage Nr. 1 was ist "sehr genau". Die Genauigkeit des Internen Oszillators (KEIN Quarz!!) kannst du im Datenblatt nachlesen. Die Genauigkeit von externen Quarzen liegt im Bereich von wenigen Duzend ppm, > Multiplexen einer LED-Matrix > mit z.B. 100MHz. Hier wird wohl der interne Takt reichen, oder? 100MHz wird mit einem AVR nicht möglich sein, egal welche Taktquelle. Bei der Multiplexfrequenz sind auch Abweichungen von 5% kein Problem. > Allerdings einen > 32,768kHz Uhrenquarz. Der wird ja wohl kaum zur Taktversorgung gut sein, > oder? Der Sinn dürfte vermutlich eher im Bereich von "Timern" liegen. Ja, wenn 32kHz schnell genug ist und Stromverbrauch entscheidend ist, verwendet man den Uhrenquarz zur Taktung des gesamten µC. Bei CMOS ist die Stromaufnahme nämlich proportional zur Frequenz.
Benedikt R. schrieb: > Allerdings einen > 32,768kHz Uhrenquarz. Der wird ja wohl kaum zur Taktversorgung gut sein, > oder? Der Sinn dürfte vermutlich eher im Bereich von "Timern" liegen. > Aber was genau fange ich damit an. Mach mal eine Primfaktorzerlegung von 32768. Uhren laufen gerne mit einem 1Hz Takt.
Die 32 kHz Quarze erzeugen Takt für einen Timer der dann als RTC arbeitet. Ausserdem kann man danach den internen Oszillator kalibrieren....
Pink Shell schrieb: > Die 32kHz-Quarze sindd nur mit einem Timer verbunden, und sind in der > Tat zur Uhrzeit-Erzeugung da. Der CPU-Clock wird dann aus einem zweiten, > schnelleren Quarz (oder intern) erzeugt. Muss nicht sein... Es gibt auch Anwendungen, bei denen der gesamte µC mit dem 2^15Hz versorgt wird.
Pink Shell schrieb: > Man kann Baudraten-Quarzen für normale Anwendungen ohne UART benutzen. > Ich denke, dass die meisten Entwickler runde Frequenzen bevorzugen, > damit sie Timings leichter berechnen können. Ok, also technisch egal. Wenn ich nicht vor krummen Zahlen zurückschrecke wäre ein Baudratenquarz also nicht falsch. Max H. schrieb: > Die Genauigkeit des Internen Oszillators (KEIN Quarz!!) kannst du im > Datenblatt nachlesen. > Die Genauigkeit von externen Quarzen liegt im Bereich von wenigen Duzend > ppm, Die Frage bezog sich eher darauf bei welchen Anwendungen man eine Genauigkeit benötigt die die des internen Taktes übersteigt. Aber das hast du ja im Prinzip gesagt: dann wenn die benötigte Genauigkeit über der des internen Taktes liegt. Max H. schrieb: > 100MHz wird mit einem AVR nicht möglich sein, egal welche Taktquelle. > Bei der Multiplexfrequenz sind auch Abweichungen von 5% kein Problem. Ich meinte 100Hz, sorry. Max D. schrieb: > Die 32 kHz Quarze erzeugen Takt für einen Timer der dann als RTC > arbeitet. > Ausserdem kann man danach den internen Oszillator kalibrieren.... Das heißt damit könnte man die Genauigkeit des internen Taktgebers verbessern? Also wenn mir die Geschwindigkeit reicht, aber die Genauigkeit nicht, wäre das eine Möglichkeit. Vielen Dank, ihr habt mir wirklich sehr geholfen. Für meine Anfängerprojekte kann ich also zuerst mal auf externe Taktgeber verzichten und mir einfach mal ein paar Controller ordern :) Danke für die wirklich schnelle, kompetente Hilfe! EDIT: Ich habe wohl irgendwie nicht geantwortet, sondern meinen Originalpost gelöscht.
Benedikt R. schrieb: > Für meine > Anfängerprojekte kann ich also zuerst mal auf externe Taktgeber > verzichten und mir einfach mal ein paar Controller ordern :) Auch bei Anfängerprojekten wirst du schnell auf die serielle Schnittstelle stoßen, die mit der Frequenzstabilität des internen Oszillators nur bei halbwegs stabilen Umgebungsbedingungen die Toleranzen einhält.
Mike schrieb: > Auch bei Anfängerprojekten wirst du schnell auf die serielle > Schnittstelle stoßen, die mit der Frequenzstabilität des internen > Oszillators nur bei halbwegs stabilen Umgebungsbedingungen die > Toleranzen einhält. Außer, man verwendet die neueren Xmegas (und da die fehlerbereinigten U-Typen). Dann gehen auch UART-Anwendungen mit quarzlosem Takt (starten mit 2Mhz).
Benedikt R. schrieb: > Pink Shell schrieb: >> Man kann Baudraten-Quarzen für normale Anwendungen ohne UART benutzen. >> Ich denke, dass die meisten Entwickler runde Frequenzen bevorzugen, >> damit sie Timings leichter berechnen können. > > Ok, also technisch egal. Wenn ich nicht vor krummen Zahlen > zurückschrecke wäre ein Baudratenquarz also nicht falsch. Die sind nicht krumm. 20MHz ist krumm. 16MHz ist nicht ganz so krumm. Versuch mal mit einem 8-Bit-Timer 10ms zu erzeugen. Ohne Softwarezähler! Entweder du bist sehr tolerant oder du nimmst einen Baudratenquarz.
1 | Prescaler = 1024 |
2 | 16MHz / 1024 / 156,25 = 100Hz >>> 10ms |
3 | 20MHz / 1024 / 195,3125 = 100Hz >>> 10ms |
4 | 18,432MHz / 1024 / 180 = 100Hz >>> 10ms |
Welchen Teiler bekommst du glatt in dein Timerregister und wer ist jetzt der krumme? mfg.
:
Bearbeitet durch User
Man verwendet einen externen Clock, wenn ein gesammtes System synchron laufen soll, und man es daher nicht einem kleinen Controllerquarz ueberlassen will. zB ein FPGA plus ein Controller,
Die neuen Tinys (T841) scheinen auch per internem RC-Oszi genau genug für UART zu laufen. +-2% bei 0-85°C und 2.7V-4V. Das reicht locker für nen UART. Da muss man den Reflex "UART=ext. Quarz jetzt langsam mal ablegen.
Da gibt es keine bessere Wahl, es kommt immer darauf an, was du vor hast. Möchtest du in deiner Anwendung den UART verwenden? Dann wohl eher ein Baudratenquarz. Möchtest du mit "nicht krummen" Baudraten arbeiten (z.B. CAN-BUS) , dann lieber ein glatter 8 oder 16 MHz Quarz.
Hui! Ich bin beeindruckt! Hier kommt ja wirklich einiges an Feedback! Mike schrieb: > Auch bei Anfängerprojekten wirst du schnell auf die serielle > Schnittstelle stoßen, die mit der Frequenzstabilität des internen > Oszillators nur bei halbwegs stabilen Umgebungsbedingungen die > Toleranzen einhält. Benötigt man solche Schnittstellen nicht nur zur Kommunikation mit PCs oder anderen ICs... Zuerst mal werde ich eher auf niedrigem Level Elektronikbasteleien wie meinen LED Cube, oder Temperatursensorauslesung testen. Aber ich verstehe, was du meinst. Thomas Eckmann schrieb: > Die sind nicht krumm. 20MHz ist krumm. 16MHz ist nicht ganz so krumm. Ich glaube du hast mich falsch verstanden. "Krumm" war für mich einfach jetzt synonym für die, für den Anfänger, "komplizierten" Werte. Aber danke für das Rechenbeispiel. Aber generell stimmt meine Aussage, dass es eigentlich immer sinnvoller ist sich Baudratenquarze zu besorgen? Und wenn ich mir jetzt als "startset" welche kaufe, wieviel MHz nehme ich dann am besten? Gibt es die Möglichkeit bei schnelleren Quarzen einen "Teiler" oder so etwas ein zu stellen um trotzdem auf niedrigerer Frequenz zu bleiben? Dann wären diese ja vielseitiger. Aber wie gesagt, ich bin wirklich ein Amateur, finde die Tutorials und so hier aber ganz hilfreich. kif schrieb: > Möchtest du mit "nicht krummen" Baudraten arbeiten (z.B. CAN-BUS) , dann > lieber ein glatter 8 oder 16 MHz Quarz. Das habe ich gerade erst nach dem Absenden gesehen. Also gibt es doch Anwendungen wo ich "gerade" Werte brauche. Dann weiß ich jetzt immer noch nicht was ich kaufe. Am besten erst mal nichts, bis ich eine konkrete Anwendung habe :)
:
Bearbeitet durch User
Thomas Eckmann schrieb: > Prescaler = 1024 > 16MHz // 1024 // 156,25 = 100Hz >>> 10ms > 20MHz // 1024 // 195,3125 = 100Hz >>> 10ms > 18,432MHz // 1024 // 180 = 100Hz >>> 10ms Wenn man den Taschenrechner richtig bedient, kann aber auch so rechnen: 16MHz // 1024 // 156 = 100Hz >>> 10ms 20MHz // 1024 // 195 = 100Hz >>> 10ms 18,432MHz // 1024 // 180 = 100Hz >>> 10ms Benedikt R. schrieb: > Aber generell stimmt meine Aussage, dass es eigentlich immer sinnvoller > ist sich Baudratenquarze zu besorgen? Nein. Man muß seine Anforderungen kennen und die zulässigen Toleranzen. Persönlich lande ich dann immer bei 20MHz :-)
Benedikt R. schrieb: > Das habe ich gerade erst nach dem Absenden gesehen. Also gibt es doch > Anwendungen wo ich "gerade" Werte brauche. Dann weiß ich jetzt immer > noch nicht was ich kaufe. Am besten erst mal nichts, bis ich eine > konkrete Anwendung habe :) Am besten kaufst du dir verschiedene Quarze, die kosten ja nicht so viel
> Zuerst mal werde ich eher auf niedrigem Level Gerade dann ist das sinnvollste was du tun kannst, dir möglichst schnell eine Möglichkeit zur Ausgabe zu schaffen. Das kann ein LCD sein, das kann aber auch eine UART sein. Womit wir wieder bei den Quarzen wären. Das übersehen gerade Anfänger gerne. Du WIRST eine Ausgabemöglichkeit brauchen. Geh nicht davon aus, dass du deine Programme, so einfach sie auch sein mögen (und ein LED Cube ist NICHT einfach), aus dem Stand heraus fehlerfrei programmieren kannst. Und genau dann kommt die Ausgabemöglichkeit ins Spiel, mit der du das allseits beliebte Spielchen "Stochern im Nebel" problemlos gewinnen kannst.
um hier die Begrifflichkeiten zu klären (bitte korrigieren wenn falsch): - Ein Quarz ist keine externe Taktquelle - Ein Quarzoszillator ist eine externe Taktquelle
Lutz schrieb: > um hier die Begrifflichkeiten zu klären (bitte korrigieren wenn falsch): > > - Ein Quarz ist keine externe Taktquelle > - Ein Quarzoszillator ist eine externe Taktquelle Eine Frage der Definition. Der Quarz ist zumindest ein externes Bauteil welcher zusammen mit einer internen Elektronik einen Takt erzeugt. Strengenommen also ein Hybrid. In der typischen Diskussion mit Anfängern, würde ich ihn schon als "Externe Taktquelle" definieren. Darunter fällt eigentlich alles außer den rein internen Taktquellen des Controllers. Die Tatsache dass ein Quarzoszillator komplett autark läuft und ein Quarz alleine nicht, entscheidet IMO nicht über die Zuordnung zur Kategorie "Intern" oder "Extern". Sondern ob man dazu externe Bauteile braucht oder nicht. gruß cyblord
:
Bearbeitet durch User
cyblord ---- schrieb: > In der typischen Diskussion mit Anfängern, würde ich ihn schon als > "Externe Taktquelle" definieren. Darunter fällt eigentlich alles außer So wie ein Aquarium mit Umwälzpumpe eine eigene Wasserquelle hat.
Ich hatte mich ahlt nach dem AVR- Tutorial gerichtet: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment Das der Quarz "alleine" nicht genügt hatte ich gesehen, mir ging es aber wirklich eher um "alles was nicht der interne Takt ist".
omg schrieb: > cyblord ---- schrieb: >> In der typischen Diskussion mit Anfängern, würde ich ihn schon als >> "Externe Taktquelle" definieren. Darunter fällt eigentlich alles außer > > So wie ein Aquarium mit Umwälzpumpe eine eigene Wasserquelle hat. Naja der Vergleich hat ja gar keine Beine mehr....
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.