Also ich habe ein Olimex-HeaderBoard für den MSP430F449.
Darauf ist an XT1 ein 32kHz und an XT2 ein 8MHz Quarz.
Ich habe die Clocks jetzt so gesetzt, das MCLK aus XT1 und SMCLK aus
XT2 läuft. Der UART wird von der SMCLK versorgt.
Wie gesagt bis 57600 läuft es auch sehr gut. Ich denke, das es etwas
damit zu tun hat, das nicht gewartet wird, bis das zeichen wirklich
gesendet ist. Ich habe daher versucht gestern Abend den Transmit
Interrupt zu verwenden und dmait ein Flag zu setzen, ob der Transmit
abgeschlossen ist. Das hat aber leider nicht so auf Anhieb
funktioniert.
Im Datenblatt steht, das der Transmit-Buffer neu beschrieben werden
muss, damit der anstehende Interrupt gelöscht wird. Das macht in meinen
Augen aber keinen Sinn - was soll ich machen, wenn keine Zeichen mehr zu
senden sind ?
Die UART-Initialisierung habe ich gerade nicht hier, aber die Werte
habe ich mit dem MSPGCC-Baudraten-Calculator berechnet. Er kommt da auf
einen Wert von 115107 Baud (oder so ähnlich) - bin nicht zu Hause.
Ich glaube am schönsten wäre es mit einem Transmit-FIFO, wie ich den
auch für den Receive habe. Allerdings muss dafür der Transmit-Interrupt
funktionieren - und ich muss nochmal im Datenblatt schauen, wie der
Interrupt zurückgesetzt wird.
Für Hilfe und Anregungen bin ich aber offen :-)
Grüße
Steffen