Forum: Mikrocontroller und Digitale Elektronik Usart ist zu langsam


von Mike (Gast)


Lesenswert?

Hallo liebe Gemeinde,

ich habe hier ein eigenwilliges Problem, bei dem Ihr mir hoffentlich 
helfen koennt.

Ich versuche einen Atmega328 ueber RS232 (mit Pegelwandler) an einen PC 
zu schliessen und kontinuierlich Messdaten vom uC zum PC senden zu 
lassen.

Nach einigem Werkeln kam auch etwas auf dem Bildschirm an, aber das war 
Datenmuell. Nach laengerem Probieren kam ich auf die Idee, die 
Datentransferraten von uC und PC mal in Vielfachen gegeneinander zu 
verstellen. Nun klappt es, wenn der PC mit 1200 und der uC mit 9600 Baud 
arbeitet.

Die Berechnung des UBRR-Registers habe ich vom Compiler mittlerweile 
entkoppelt und der ermittelte Wert stimmt auch mit dem Datenlblatt fuer 
9600 Baud ueberein. Als Quarz verwende ich einen Quarzoszillator mit 
7372800 Hz. Fuses sind entsprechend gesetzt. Initialisiert ist der UART 
auf 8N1 ohne Paritaet und mit asynchronem Transfer.

Hat einer von euch eine Idee, woher die um Faktor 8 geringere 
Datentransferrate des uC gegenueber dem errechneten Wert herkommen 
koennte?

Vielen Dank fuer eure Antworten schon jetzt.


Gruss Mike

von Peter II (Gast)


Lesenswert?

Mike schrieb:
> Hat einer von euch eine Idee, woher die um Faktor 8 geringere

da fällt mir doch spontan die DIV8 Fuse ein.

von Micha .. (micha68) Benutzerseite


Lesenswert?

Hi!

Evtl. ein prescale im Takt eingestellt?

Gruss,
Micha

von Mike (Gast)


Lesenswert?

Sapperlot und dreiteufelsnamennocheinmal. Nicht, dass ich diese Fuse 
schon x-mal in anderen Projekten deaktiviert haette...


Vielen Dank. Das war genau der Hinweis. Jetzt tut es wie es soll.

Gruss Mike

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.