Hallo Leute, ich arbeite gerade das Tutorial durch und habe Probleme mit dem UART (Kapitel 6). Der PC empfängt nur Datenmüll. Ich habe schon verschiedene BAUD-Raten probiert - hilft nix. Meine Hardware ist ein ATMEGA8 und das Board und den Programmieradapter hab ich hier aus dem Shop. Als Software verwende ich das AVR-Studio, Pony-Prog und terminal.exe. Ich habe die Fuse-Bits auf den externen Oszilator abgeändert - leider auch ohne Erfolg. Hier im Forum hab ich zwar das Problem (Datenmüll kommt an) gefunden, aber keine passende Lösung. Im Anhang hab ich noch ein paar Screenshots. Das Programm ist uart-mega8.asm (siehe Tutorial). Ich danke schon mal für eure Hilfe.
Einen Fehler hab ich gerade entdeckt - das Board hat einen 8Mhz Quarz und keinen 4er :). Hilft aber auch nix. Der Datenmüll siht nur gleichmäßiger aus. Er sendet jetzt 7 Zeichen (was auch richtig ist), aber die falschen.
Wenn ich im Terminal-Programm an den Settings rumspiele, erhalte ich manchmal die richtige Ausgabe (siehe Anhang)- ich kapier das nicht. Kann mir jemand helfen ?
du musst auf jedenfall mal das handschäik auf none stellen.. oder haste das implementiert? 2tens hab ich nen gleines progrämmchen geschrieben (jaja.. sieht beschissen aus, aber es funktioniert...) http://www.b0nze.de/programme/baudrate/baudrate.zip berechnet den prozentualen fehler bei quarzen/baudrates dave
Das sieht sehr danach aus, daß was mit der Baudrate nicht stimmt. Ok, deine Fuses sind auf externen Clock eingestellt, dieser beträgt 8MHz (sicher?). Für 9600 Baud muß folgendes gelten: UBRRL = 0x33 (hexadazimal) UBRRH = 0 Berechnung gem. Datenblatt Seite 133. Hast du das so eingestellt? Wenn möglich, messe die Baudrate mal mit dem Oszilloskop. Gruß Thorsten
Hi Dave, Danke schon mal für Deine Antwort. Ich glaube ich hab das Problem gelöst. Ich muss immer zuerst das Terminal verbinden und dann den uC starten - kann das sein ? Andersrum klappt es nicht (uC starten und dann erst Terminal verbinden).
hi wie schon gesagt einmal handshake und zum anderen kontrolliere deine fueses nicht, dass da was nicht passt.. bei mir hatte es auf anhip funktioniert war kein problem Gruss Jens
Hi Thorsten, die Register stimmen. Ich glaube es liegt wirklich daran, wie man die Verbindung aufbaut. Versteh ich zwar nicht ganz, aber das mag daran liegen das ich (noch :)) kein Bus-Experte bin.
hallo nen andere frage kann sollte man mit geraden (8MHz) clocken wenn UART bzw. rs232 genutzt werden soll???? juergen
Keine Ahnung, aber es geht jetzt bei mir (mit 8Mhz). Und da das Board mit 8Mhz verkauft wird, denke ich mal, dass das so in Ordnung geht. Gruß
wenn ein hauptbestandteil uart ist, dann wäre es sinnvoll extra uart-passende quarze zu verwenden.. bei hohen baudraten (sieht man in meinem progrämmchen) wird der fehler bei schlechten frequenzen dann schon größer und dann können übertragungsfehler auftreten. wenn man dann noch die toleranzen der quarze miteinbezieht (der sender tickt schneller, empfänger langsamer) und schon hat man nen kräftigen prozentfehler ==> nix gut bei kleinen baudrates isses aber recht egal dave
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.