Hallo Alle,
möglicherweise habe ich eine Abhilfe gegen einige Baudratenfehler.
Ein immer wiederkehrendes Thema im Forum (hier nur EIN Beispiel) sind Probleme bei der Datenübertragung vom Controller über die RS232. Grund ist, dass das enge Zeitraster der seriellen Übertragung von manchen Quarzen nicht einzuhalten ist.
... nicht einzuhalten ist? Sogar ATMEL mit seinen Formeln für die korrekte Einstellung der Oszillatorfrequenz und ein so kompetenter Ratgeber wie MikrocontrollerNet sind ähnlicher Meinung.
Frage: wozu haben wir einen Präprozessor - und eine einstellbare Oszillatorfrequenz für den USART?
Ich habe bei meinem Mega168 mit 20 MHz mit der "korrekten" Einstellung der Schnittstelle auf 115k2 Baud keine Chance, Daten über die RS232 an meinen PC bzw. an das Terminal von Br@y zu senden. Der Fehler ist einfach zu groß - wohl etwa bei -1,4 %. Was also tun? (Bitte fragt nicht, warum ich so aufs Tempo drücke - ich tendiere manchmal ein bisschen zu der Bleifußfraktion - sorry).
Klar - es dämmert schon jedem: einfach die "falsche" Bitrate einstellen. Ein kurzer Test am Controller ergibt folgendes:
//#define UART_BAUD_RATE 113600 // läuft ok
//#define UART_BAUD_RATE 115200 // läuft nicht
//#define UART_BAUD_RATE 116800 // läuft nicht
Frage: Ist diese simple Korrektur wirklich ein kleiner Fortschritt in unserem Bemühen um korrekte Einstellung der Baudrate bei "ungeeigneten" Quarzen?
Lesezeichen