PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (mal wieder) Probleme mit UART



NEUHAUS
18.11.2004, 14:15
Hallo Leute,

erstmal muss ich loswerden das ich von eurem Forum total begeistert bin.
Man kann ne Menge lernen wenn man einfach mal die Beitraege durchstoebert. Leider habe ich keinen gefunden der zur Loesung meines Problemes beitragen kann.

Hardware:

AT90S8515 auf STK500
4Mhz
USART mit 9600baud (0.2% Fehler)

Problem:

Ich lasse den Mikrokontroller eine unsigned char Variable hochzaehlen, immer von 0 bis 255, wenn ich nicht irre.
Sie wird jedes mal beim Timer1-Interrupt inkrementiert und ans UDR geschickt.
Ich empfange die Daten am Com2 des PC.
Benutzte Terminal Programme: MSHyperTerminal, ein selbstgeschriebens VB6 - Prog, und das im Forum empfohlene Terminal v 1.9b.
Dummerweise scheint es ein Problem mit der Uebertragung zu geben, oder mit den UART-Registern. Die Variable im uC haut hin, die lasse ich mit den LEDs anzeigen.
Wahrscheinlich ist das nur ein kleines Verstaendnisproblem, aber ich hoffe Ihr koennt mir trotzdem weiterhelfen.
Ich habe meinen Programmkode und ein Jpeg des Ergebnisses beigefuegt.

Vielen Dank im Voraus,

Neuhaus

Pascal
18.11.2004, 15:25
bist du dir sicher, dass dein AVR mit 4MHz läuft?
also hast du die Fusebits entsprechend gesetzt, weil ansonsten kannst du einen externen Quartz anschließen und der µC verwendet trotzdem den internen, der standartmäßig mit 1MHz läuft, was dann Probleme beim Berechnen der Baudrate bereitet

NEUHAUS
18.11.2004, 15:57
Vielen Dank fuer die schnelle antwort.
Es funtionier!!!! aber mit 3.6864Mhz.
Mit 1MHz kam nur Mist an.
In Datenblatt des STK500 steht dass es einen programmierbaren Softwaretakgeber hat. Ich benutze ICC AVR und nehme zum Erstellen von neuen Projekten immer erstmal den Wizard.
Ich weiss dass ist bestimmt nicht sehr clever, aber fuer einen Anfaenger wie mich sehr schnell und einfach, zumindest bis die ersten Probleme auftreten.
Mit den 3.6864Mhz habe ich keinen Baudratenfehler mehr, kann es daran gelegen habe? Ich meine der Fehler war nur 0.2%.
Es waere nett wenn mir jemand mit mehr Erfahrung mal eine kurze Erklaerung fuer die Misere geben koennte.

Nochmal vielen Dank,

Neuhaus