Forum: Mikrocontroller und Digitale Elektronik Serielle Schnittstelle initialisieren (8951er)


von Benjamin A. (misterfcn)


Lesenswert?

Hallo,

haben zZ ein Projekt mit dem TFH System One. (AT89C51CC03)

Leider habe ich in unseren Unterlagen nur die Initialisierung der 
seriellen Schnittstelle für eine Baudrate von 9600 gefunden, daher meine 
Frage, wie ich auf die Paramter für eine Baudrate von 2400 komme?

Unser verwendetes Quartz ist 11,059 Mhz!

Habe in unseren Unterlagen eine Formel gefunden, die allerdings nicht 
hinhaut.

Hier einmal die 9600er Initialisierung:

SCON=0x52;
TMOD |=0x20;
TH1= 0xFD;
R1=1;
TI=1;


Ich denke man müsste nur TH1 ändern, aber welcher Wert, dass weiß ich 
leider nicht.

Ich hoffe ihr könnt mir helfen, da wir unter Zeitdruck stehen.

Gruß

Benni

von Peter D. (peda)


Lesenswert?

Benjamin A. wrote:

> Habe in unseren Unterlagen eine Formel gefunden, die allerdings nicht
> hinhaut.


Tja, ohne Formel kann man nicht sehen, was daran falsch ist.
X2-Modus aktiv ?


Ich machs immer so:
1
#define TXTAL 20e6
2
#define BAUD 19200
3
...
4
#ifdef T2_BAUDGEN
5
  T2MOD = 0;
6
  T2CON = RCLK_ + TCLK_ + TR2_;                 // baud rate generator
7
  RCAP2W = (uint) -(0.5 + TXTAL / 32.0 / BAUD);
8
  T2W = -1;
9
#else
10
  TMOD |= T1_M1_;                               // T1: auto reload
11
  TR1 = 1;
12
  TH1 = (uchar) -(0.5 + TXTAL / 192.0 / BAUD);
13
  TL1 = -1;
14
#endif
15
...


Peter

von Joe (Gast)


Lesenswert?

TH1 entsprechend berechnen, oder hier:

http://www.keil.com/c51/baudrate.asp?bhjs=0

von Matthias (Gast)


Lesenswert?

oder hier eine Tabelle für Baudrate und Timer des 8051:
http://www.atmel.com/dyn/resources/prod_documents/UART_timer1_2_ibrg_RevB.xls
(Excel Tabelle)

Grüsse Matthias

von Benjamin A. (misterfcn)


Lesenswert?

Danke, Matthias hat mir mit dieser Tabelle sehr weitergeholfen.

Schönen Wochenanfang noch ;)

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.