www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SAB80C537-16 Initialisierung der seriellen Schnittstelle bei 16MHz-Takt


Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte einen 80C535 (12MHz) austauschen und durch einen SAB80C537-16 
ersetzen (mit 16MHz Takt).
Wie muss ich die serielle initialisieren ( Assembler oder C ) damit sie 
mit 9600Baud arbeitet. Habe im Manual zum Controller nichts gefunden. 
Sie gehen immer nur auf den 12MHz Typ ein.

Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei 16Mhz geht nur Timer2.

Reloadwerte:
mov RCAP2L, #CCh
mov RCAP2H, #FFh

Das ergibt 9615 Baud.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siggi wrote:
> Ich möchte einen 80C535 (12MHz) austauschen und durch einen SAB80C537-16
> ersetzen (mit 16MHz Takt).

Den MC austauschen ändert garnichts, der läuft dann auch mit 12MHz.
Du mußt noch den Quarz tauschen.


> Wie muss ich die serielle initialisieren ( Assembler oder C ) damit sie
> mit 9600Baud arbeitet. Habe im Manual zum Controller nichts gefunden.

Das ist aber komisch, in meinen 8051-Manuals steht immer auch die Formel 
drin für jeden x-beliebigen Quarz.

Man muß dann noch den prozentualen Fehler ausrechnen, wenn man kein 
Baudratenquarz (14,7456MHz) nimmt.


Als Programmierer sollte man seine Angst vor Formeln und Rechnen 
schleunigst ablegen.
In der Regel muß man einfach nur die Formel hinschreiben und überläßt 
dem Compiler (Präprozessor) das Ausrechnen.


Peter

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem Quarz und Timer ist selbsverständlich. Ich dachte nur das es 
auch hier eine Möglichkeit gibt (so wie beim 80535, durch setzen der 
Bits "BD und SMOD") eine PC Kompatible Baudrate zu erzeugen ohne das ich 
einen Timer benutzen muss.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siggi wrote:
> Das mit dem Quarz und Timer ist selbsverständlich. Ich dachte nur das es
> auch hier eine Möglichkeit gibt (so wie beim 80535, durch setzen der
> Bits "BD und SMOD") eine PC Kompatible Baudrate zu erzeugen ohne das ich
> einen Timer benutzen muss.


Nimm die Formel aus dem Datenblatt, berechne den Teilerwert und dann die 
Abweichung zum nächsten ganzzahligen Wert. Die sollte besser 1% sein, 
mindestens aber unter 2%.

Oder nimm besser gleich nen Baudratenquarz, der Unterschied in der 
CPU-Leistung von 16MHz zu 14,7456MHz ist nicht merkbar.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.