hallo liebe kollegen! möchte gerne eine einfache ansteuerung auf einen mega8 zusammenbringen. verwende pcseitig das programm TERMINAL.. ich bin mir über folgende werte nicht ganz sicher: .def temp = r16 .equ CLOCK = 4000000 .equ BAUD = 9600 .equ UBRRVAL = CLOCK/(BAUD*16)-1 stimmen diese werte für den mega 8 wenn ich über den internen quarz fahren will? denn wenn ich in TERMINAL folgende werte einstelle bringt er mir immer irgendwelche meldungen und durch zufall dann einmal die vom uC gesendete nachricht 'A' (welche ich tatsächlich empfangen möchte). TERMINAL werte: Baudrate 2400 (bei dieser baudrate kam durch zufall mal der korrekte string vom uC) handshaking: none parity: none stopbits: 1 databits: 8 bitte um antwort... lg, bert
Woher kommt eigentlich die offenbar unausrottbare Idee, die Dinger hätten einen internen Quarz?
also meine kristallkugel sagt mir: nein... a) die fuses sind auf 4 mhz gesetzt (standard is 1 mhz) ? wenn nicht, clock anpassen b) in deinem prog steht was von baud=9600 dann nimm auch im terminal 9600 oder guck mal bei der-hammer.info, der hat ein ganz nettes terminal-programm... und sonst poste bitte noch dein programm-listing.
die fuses sind standard... und dass is laut meiner erfahrung beim mega8 1 mhz oder? habe das ganze vorhin auch mit: .def temp = r16 .equ CLOCK = 1000000 .equ BAUD = 9600 .equ UBRRVAL = CLOCK/(BAUD*16)-1 getestet falls du das meintest?? leider hat er mir bei einer baudrate von 9600 in TERMINAL nur müll asciis gebracht :( was kann das sein? warum kommt durch zufall manchmal das richtige zeichen? lg und danke für die antwort
> Woher kommt eigentlich die offenbar unausrottbare Idee, die Dinger > hätten einen internen Quarz? Die Idee kommt daher, dass Anfänger i. d. R. als erstes mit einem Quarz oder einem Quarzoszillator als frequenzbestimmendes Element in Berührung kommen und somit davon ausgegangen wird, dass der interne Oszillator des µCs auch durch einen Quarz definiert wird. Durchaus nachvollziehbar, wie ich finde. Nur jemand mit fundierten Kenntnissen kann einen integrierten Quarz von vorne herein ausschließen.
Hallo, ohne die Diskussion um Quarz oder nicht Quarz vertiefen zu wollen, der AVR hat nur einen internen RC-Oscillator und der ist auch noch ziemlich ungenau... Ohne die Diskussion "UART geht nur mit Quarz" heraufzubeschwören: .def temp = r16 .equ CLOCK = 1000000 .equ BAUD = 9600 .equ UBRRVAL = CLOCK/(BAUD*16)-1 versuche diese Einstellung und Terminal auf 9600 mal mit etwas abweichenden Werten für CLOCK, also 950000 oder 1000050 oder so. Mit einem Wert wirst Du erstmal nahe genug an der tatsächlichen Frequnz Deines AVR sein, damit das Terminalprogramm was sinnvolles empfängt. Im Zimmer bleibt der Kram da auch erstmal stabil genug, um weiter zu experimetieren. Wenn Du es allerdings immer zuverlässig einsetzen willst, kommst Du um einen Quarz wohl nicht drumrum. Gruß aus Berlin Michael
ja, 1 mhz ist standard (seite 30 in der dokumantation) falls nicht nur rein das "A" im terminal angekommen ist, dann war es zufall meiner ansicht nach. hattest du denn eine reihe A's im terminal?
danke für die antworten!! leider kann ich im moment nicht mehr testen da mein prog kabel eingegangen ist :(((( ich habe auch eine reihe A's bekommen ja, nur wenn ich dann nochmals connecte leider wieder nicht.. ich werde sobald als möglich die variante von michael testen. danke
Hallo, Ich habe das selbe problem und möchte nun einen externen quarz betreiben! Nur da gibt es ein kleines Problem ich kann die Fusebits leider nicht setzen! Ich habe ein Programm (PonyProg2000) von meinem Kollegen bekommen doch die Fuses lassen sich nicht setzen! Ich verwende das OLIMEX MSP430 Development Board. Ich habe andauernd Probeme mit der Verbindung zwischen dem PC und dem Mega! Ich kann immer nur einmal die Verbindung herstellen und beim zweiten mal geht es einfach nicht mehr! Nach einigen zahlreichen Versuchen hat es dann wieder funktioniert aber eben nur ganz kurz! Was kann da sein, gibt es eventuell eine andere Möglichkeit. Anbei befindet sich ein Programm mit dem ich es auch schon versucht habe, jedoch ohne Erfolg! Hoffe es kann mir jemand helfen! Danke
Im angehängten Source ist was in int prog_fusebits(int n); auskommentiert. Mal nachgeschaut? Ansonsten würde ich avrdude zum flashen empfehlen. Falls du unter Windows arbeitest: WinAVR, da ist avrdude auch schon mit drin.
Danke für deine schnelle Antwort dins! Ja das mit den auskommentierten dingen ist absicht(das heißt ich hoffe das es stimmt) da ich nur die lowfusebits setzen möchte! Danke für deinen Vorschlag, ich werde demnächst WinAVR testen ich hoffe das es funktioniert!! Danke nochmal, mfG
@lolly mit einem OLIMEX MSP430 Development Board geht es nicht. Du must einen programmer nehmen der mit den AVR zusammen arbeitet.
Und bitte immer schön gerade (glatte) quarzfrequenzen nehmen und nicht dem irrtum verfallen, dass baudratenquarze besser geeignet wären.
Das ist ja nun nicht so wild. Bei glatten 2MHz ist man mit 9600 schon dabei, nur eben nicht bei 1MHz. Die recht gängigen 8MHz taugen also bis rauf zu 38400 und was will man mehr.
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.