Hallo, ich habe derzeit einen ATmega88 mit 32,768kHz - Quarz (asynchron) für die RTC, die im Power-Save-Mode bei 5µA Stromverbrauch weiterläuft. Als schneller Haupttakt für den Wachzustand (des Controllers!) ist dann leider nur noch der interne RC-Oszillator möglich. Ich muss aber RS232 mit 115,2kBaud betreiben und brauche eigentlich einen Baudratenquarz, z.B. 7,3728 MHz. Welche Möglichkeiten gibt es, den Haupttakt genauer zu machen? Externer Oszillator? Anderer Controller (selbe Familie, nicht SMD)? Auf externe RTC bin ich selbst schon gekommen, ist aber nicht elegant. Grüße, Peter
Na. Den internen RC auf den externen 32kHz synchronisieren. Sind ein paar duzend ASM Zeilen.
@Peter Der interne Oszillator reicht für den UART, wenn man ihn ab und zu nachregelt. Als Referenz dient dann der 32kHz Quarz. Schau mal bei Atmel, da gibt es einige AppNotes zu dem Thema, und auch fertigen Code.
.. oh doch, leider zu genau. wenn ihr sowas vorhabt nehmt eine RTC mit integriertem Quarz und wenn notig mit int. Bat.
@ so nicht (Gast) meinst du synchronisieren mit Hilfe von Software-UART? Bei Änderung des Kalibrierbytes sind die Sprünge in der Frequenz zu groß. Da kommt nur entweder zu viel oder zu wenig raus. Grüße, Peter
@ Peter Roth >Welche Möglichkeiten gibt es, den Haupttakt genauer zu machen? Externer >Oszillator? Anderer Controller (selbe Familie, nicht SMD)? das ist der falsche Weg! @ Gesäßvioline Du scheinst Dich auszekennen!
@ Peter Roth (gelb) >meinst du synchronisieren mit Hilfe von Software-UART? Nein, er meinte die Kalibrierung des interen RC-Oszillators per OSCCAL. >Bei Änderung des Kalibrierbytes sind die Sprünge in der Frequenz zu >groß. Da kommt nur entweder zu viel oder zu wenig raus. Probiert oder nur eine Vermutung? Wenn einige sogar OHNE Kalibrierung den UART betrieben. Und für RS232 mit dem PC reichen +/-3%. MFG Falk
@ Benedikt K. (benedikt) Danke für den Tip, habe die Applikation zur Syncronisation gefunden. Abgleich auf +/- 2% ist möglich. Bei niedrigeren Frequenzen ist die OSCCAL-Kurve zumindest beim ATmega88 flacher als bei höheren Frequenzen, so dass ich meine heißgeliebten 7,37.. MHz vielleicht genauer als 2% hinbekomme. Grüße, Peter
Es geht sehr gut und genau mit OSCCAL. <Reim> Der Butterfly wird genau so betrieben, dort ist es auch sehr schön beschrieben. </Reim> lies mal dort nach.
@ Falk Brunner (falk) >>Bei Änderung des Kalibrierbytes sind die Sprünge in der Frequenz zu >>groß. Da kommt nur entweder zu viel oder zu wenig raus. > Probiert oder nur eine Vermutung? Wenn einige sogar OHNE Kalibrierung > den UART betrieben. Und für RS232 mit dem PC reichen +/-3%. Im Datenblatt werden 0,5% empfohlen, ab dann steigt das Fehlerrisiko. Aber nur bei kritischen Anwendungen (large serial frames etc.) Daher meine Weisheit. Aber wenn 3% genügen, klappt das ja mit OSCCAL - Synchronisierung. Grüße, Peter
Die Appnote von Atmel bezueglich Synchronisation des RC auf einen 32kHz Quartz ist Schrott, die verpuffen viel zuviel Code fuer so eine Trivialitaet. Ich hab's mit 60 Zeilen ASM geschafft. http://www.ibrtses.com/embedded/avrosccal.html
Hallo Peter, denn internen Oszillator kann man wundebar verbiegen und abgleichen. Bei einem Mega8 habe ich den 4MHz Oszillator auf 4,9152MHz verbogen durch einen Abgleich mit 32,768Khz beim Start. Danach wird alle 8 Sekunden (Überlauf vom 32,..) kontrolliert durch denn Wert eines schnellen Zählers (LED-Multiplex mit ca. 400 Hz) und fein nach- geregelt (OSSCAL+-1). Top Ergebnis auch bei aufheizen (Heisluft) bis 80° und Betrieb bei 3,3Volt. Für RS232 locker ausreichend! gruß Hans
Danke an alle, die geantwortet haben. Das Problem sollte nun gelöst sein. Grüße, Peter
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.