UART mit 12MHz

OP #546274
Lesenswert?

Hallo zusammen,

ich habe ein kleines Problem.
Ich benutze von Atmel das UART Programm.
Auf meine Platine sitzt ein 12MHz Quarz aber das Programm ist für einen 
11MHz Quarz ausgelegt .
Jetzt wollte ich wissen was ich am Programm ändern muss.
Könnt ihr mir da helfen?

Gruß Björn


SCON = 0x50;               /* uart in mode 3 (9 bit), REN=1 */
SADDR=0x01;                  /* local address */
SADEN=0xFF;                  /* address mask */
TMOD = TMOD | 0x20 ;         /* Timer 1 in mode 2 */
TH1  = 0xFD;                 /* 9600 Bds at 11.059MHz */
TL1  = 0xFD;          /* 9600 Bds at 11.059MHz */
ES = 1;          /* Enable serial interrupt */
EA = 1;           /* Enable global interrupt */
TR1 = 1;                     /* Timer 1 run */
Gast #546290
Lesenswert?

Das hängt stark vom verwendeten Controller ab. Das Datenblatt gibt 
allerdings mit Sicherheit Auskunft darüber, wie man aus Taktfrequenz und 
gewünschter Baudrate die Werte für den Timer ermittelt.
#546651
Lesenswert?

Dieter Werner wrote:
> Dirk meint sicher das richtige, nämlich einen theoretisch notwendigen
> nicht ganzzahligen Teilerfaktor und hat nur den falschen Begriff
> erwischt.

OK, war vielleicht ein bischen seltsam ausgedrückt.
So wie Dieter es schreibt.
Durch den ungenauen Teilungsfaktor ergeben sich bei den 
Standardbaudraten
Abweichungen.
Diese summieren sich dann je nach Baudrate mit jedem übertragenem
Bit.
Bei zu großer Abweichung kommt das Bitsampling am Empfänger außer Tritt.

Man sollte schon deshalb eine möglichst präzise Baudrate anvisieren,
da die Gegenstelle aufgrund dieser Vorraussetzungen genauso abweichen
kann.
Sollte ein Teilnehmer in + der andere - - Richtung differieren
so summiert es sich noch zusätzlich.
#546716
Lesenswert?

Besonders kritisch ist es, wenn der schnellere mehrere Bytes 
hintereinander sendet.
Das Stopbit wird im 7.,8. und 9.Takt einer Bitzeit (16 Takte) gesampelt 
und erst danach kann eine neue Startflanke erkannt werden, ansonsten 
sind alle folgenden Bytes nur Bytesalat.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren