Es wird wohl Zeit für einen Taktgeber mit Quarz.
UART mit R/C Oszillator ist ohnehin keine gute Idee - auch nicht bei
geringen Bitraten.
Die Ungenauigkeit des 8Mhz R/C Oszillators ändert sich nicht, wenn du
die Bitrate änderst. Also ist die Aussage, dass niedrige Bitraten
weniger Problematisch seien, als hohe Bitraten, einfach falsch.
Im Datenblatt des AVR findest du Tabellen, wie weit die tatsächliche
Biterate vom Soll abweicht, wenn der µC mit 8 oder 1Mhz getaktet wird.
Dazu addierst du noch die Ungenauigkeit des R/C Oszillators.
Bei mehr als 1% Abweichtung (also immer) ist mit Fehlfunktionen zu
rechnen. Bei mehr als 5% Abweichung ist damit zu rechnen, das die
Fehlerrate unerträglich wird. Ab 10% ist graantiert, dass die
Schnittstelle versagt.
Du wirst sehen, dass es durchaus auch hohe Bitraten gibt, die nicht
schlechter dastehen, als niedrige Bitraten.
Übrigens kann man den R/C Oszillator auf 7,3728 Mhz umkalibrieren, dann
sind alle gängigen Baudraten mit 0% Abweichung möglich. Natürlich
zuzüglich der Abweichungen durch Temperaturdrift.
Also wenn schon R/C Oszillator, dann stell ihn auf 7,3728v Mhz um. Die
Mühe lohnt sich.
So macht man das: http://www.atmel.com/images/doc2555.pdf