Forum: Mikrocontroller und Digitale Elektronik AT89S52: Baudrate und Quarzfrequenz


von Ralf (Gast)


Lesenswert?

Hallo,

bis jetzt habe ich bei meinen Controller-Schaltungen immer Quarze mit
einer Frequenz von 11.0592 MHz oder 22.1184 MHz eingesetzt.

Mit diesen Frequenzen geht die Formel für die Berechnung des
Reloadwertes der Timer für die Baudrate ja immer genau auf. Es
entstehen also keine Komma-Werte für den Reload-Wert der Timer.

Im Datenblatt zum S52 steht, er kann bis 33MHz betrieben werden.

Was ich jetzt suche, ist die Quarzfrequenz, die knapp unterhalb der
33MHz liegt, aber mit der die Formel ebenfalls genau aufgeht.

Ich weiss aber nicht, wie ich das berechnen soll. Ich finde nirgendwo
Angaben über die üblichen Frequenzen bei Grundton-Quarzen.

Kann mir da einer helfen?

Gruß Ralf

PS: Ich weiss, dass RS232 eine 3%-Toleranz bei der Baudrate zulässt.

von Burkart Lingner (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, Ralf!

Vor einiger Zeit habe ich mir ein Programm geschrieben, um die
UART-Parameter berechnen. Das funktioniert auch in die andere Richtung,
also um aus der gewünschten Baudrate die möglichen Quarzfrequenzen zu
errechnen. Das Programm enthält darüberhinaus eine Liste der damals bei
Reichelt verfügbaren Quarze. Jedoch sind dort meines Wissens alle Quarze
ab 24 MHz solche mit Oberton. Es gab diesbezüglich eine Application Note
von Temic (jetzt Atmel), How to use overtone quartz crystals with the
T89C51 o.ä.

Du hast nicht geschrieben, um welche Baudrate es Dir geht. Mit einem
32-MHz-Quarz gibt es folgende exemplarischen Abweichungen:

9600: +2,1%
14400: -3,6%
19200: -3,6%
57600: -3,6%

Die maximal zulässige Abweichung von 3% könnte hinkommen. Denn die
Abweichungen addieren sich ja im schlimmsten Fall (+3% und -3%) auf,
und spätestens ab 10% gibt es Probleme. Sofern jedoch beide
Kommunikationspartner gleichmäßig danebenliegen, spielt die Abweichung
keine Rolle mehr. Kommt dann halt drauf an, was Du machen willst.
Vielleicht bietet sich ja auch ein Software-UART an oder die
Auslagerung in einen Kommunikationscontroller bzw. RS232-IC.

Bye, Burkart

von peter dannegger (Gast)


Lesenswert?

Mit 32MHz kommst Du bis 38400 Baud (0,16% Abweichung).

Über 24MHz nehme ich fertige Oszillatoren, da man Obertonquarze nicht
anschließen kann.


Peter

von Ralf (Gast)


Lesenswert?

Hi Peter,

Oberton geht schon, ich glaub auf Maxim-ic.com hab ich da mal ne
App-Note gesehen.

Sind fertige Oszillatoren nicht sündhaft teuer?

Gruß Ralf

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
Noch kein Account? Hier anmelden.