ATmega, automatische Baudratenanpassung

Sep 18, 2009 48 Replies

"Jens Frohberg" schrieb:

Du hast das falsch verstanden: nicht das Bauteil reißt von der Platine ab, sondern der Quarz im Inneren des Gehäuses von seinen Anschlussdrähten. Der Quarzkristall muss einigermaßen frei hängen können, um seiner Funktion nachzukommen, insofern ist diese mechanische Empfindlichkeit prinzipbedingt.

Ja, ein Keramikresonator kann da besser sein, schwingt auch etwas schneller an, aber eben trotzdem viel langsamer als der RC-Oszillator.

cheers, J"org .-.-. --... ...-- -.. . DL8DTL http://www.sax.de/~joerg/ NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)

Tach!

"Joerg Wunsch" wrote

Ok, jetzt ist der Groschen auch bei mir gefallen.

alsdenn, Jens

Wobei es noch die Moeglichkeit einer "elektronischen Peitsche" gibt um den etwas rascher auf Trab zu bekommen. Fetter Puls drauf. Muss man aber alles ausprobieren, SPICE hilft bei so etwas nicht weiter.

Gruesse, Joerg http://www.analogconsultants.com/ "gmail" domain blocked because of excessive spam. Use another domain or send PM.

Das werde ich mir mal ansehen, danke für den Tip

Stefan DF9BI

Joerg :

Sofern man die Ressourcen im Controller dazu frei hat, geht das. Braucht einen Capturetimer zusätzlich zur Uart - es sei denn die Uart kann es selber bzw. der Timer spielt Uart.

M.

Selbst programmiere ich keine uC, aber immer wenn ich eine Architektur damit austueftle fehlt am Ende mindestens ein Timer, oder ein CC Register. Ist wie beim Pralinenkasten, nur zwei Weinbrandbohnen drin :-)

Gruesse, Joerg http://www.analogconsultants.com/ "gmail" domain blocked because of excessive spam. Use another domain or send PM.

Moin!

Und bereits die normale Version ist für Betrieb ab 2,7V spezifiziert, zusätzlich gibts eine Version ab 1,8V. (Achtung, interne AREF ist nur noch 1,1V!) Externe Interrupts nimmt er an jedem Pin entgegen und auch der Watchdog kann nicht nur Reset, sondern auch Interrupt auslösen. Der ADC kann von externen Signalen oder den Timern getriggert eine Wandlung starten und die UART kann als zweiter SPI genutzt werden.

Insgesamt recht sinnvolle Weiterentwicklungen...

Gruß, Michael.

Hallo,

Mittlerweile sollte jeder vernünftige C-Compiler ziemlich nahe an optimalen Assembler-Code herankommen. Besonders in dem Fall, wo eigentlich nur ein Capture-Timer oder ein externer Interrupt + Zählschleife benötigt wird. (wenn ich bei RIDE in den erzeugten Assembler-Code schaue, habe ich oft das Gefühl 'hätte ich auch so gemacht')

Das kann ins Auge gehen. Ich bin in einem Klassenraum mit 26 identischen PCs und 26 identischen Controller-Boards (AT89C51RD2). Es gibt EINE(!) Kombination aus PC und Board, wo der Auto-Baud-Code im Atmel-Bootloader KEINE Verbindung mit 9600 Baud hinbekommt. Da gehen die Toleranzen der seriellen Schnittstelle (PCI-Karte, kein USB-Seriell!) und des 12MHz-Quarzes auf dem Controller-Board zu weit auseinander.

Dann sollte der PC (nachmessen!) die 9600 aber sehr genau erzeugen können. Besser wäre für den Zweck sicher ein zweiter Controller mit einem präzisen Quarzoszillator (evtl. mit Quarzofen oder einfacher Temperaturregelung). Dabei aber einen Baudratenquarz verwenden, damit die 9600 auch mit 0% Fehler erzeugt werden können.

tschuessle Bernhard

Messen ist Vergleichen. Deswegen geht's beim Messen nur selten um eine optimale Laufzeit, aber immer um eine _vorhersehbare_ Laufzeit.

Wie das Produkt eines Compilers aussieht, ist generall als unvorhersehbar zu betrachten. Schon andere Compileroptionen können das Laufzeitverhalten massiv ändern. Vom Verhalten eventueller neuer Versionen desselben Compilers oder gar anderer Compiler mal ganz zu schweigen.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required