hallo, benutze stk 200, Linux und ATMega32(L). Möchte den Controller auf 8MHz takten (mit internem RC - Oscillator). Die Fuse bits habe ich richtig gesetzt, mein Problem ist OSCCAL, bei einer Datenübertragung per UART mit 4800 baud funktioniert die Datenübertragung. stelle ich auf 115200 baud um geht nichts mehr. Das OSCCAL Register habe ich dabei noch nicht verändert, weil ich den Calibration Value für 8MHz nicoht weis. KAnn man mit dem Programmer auslesen, hab ich schon gehört, dabei tue ich mir schwer. Habe jetzt per uisp -dprog=stk200 --download of=down alles gedownloadet, jetzt müsste ich doch da mein Wert für 8 MHz finden, oder nicht ? (Datei als Anhang , hoffe es funktioniert) Wer kann mir weiterhelfen und mit nen Tipp geben wo das steht ? vielen, vielen Danke Chris
Hallo, den Effekt, daß eine langsame Datenübertragung funktioniert und eine schnelle nicht, hatte ich auch schon. Der interne RC-Oszillator scheint dafür zu ungenau zu sein. Nimm am einfachsten einen externen Quarz, kostet nur ein paar Rappen und alles funktioniert. Gruß, Matthias
Vergiß die hohen Datenübertragungsraten mit dem internen RC-Oszillator, der ist auch nach Kalibrierung zu ungenau - Stichwort: Temperaturdrift. Nimm einen entsprechenden externen Keramikresonator oder einen Quarz!
hallo, danke für den Tipp. Leider is das system schon gebaut. BobbyCar von www.qfix.de. @Matthias: hast du OSCCAL manuell eingestellt ?
Nein, habe ich nicht. Mit dem Quarz ist man auf jeden Fall auf der sicheren Seite, auch bei relativ grossen Temperaturschwankungen. Und einen genauen Zähler kann man damit auch gleich machen. Gruß, Matthias
Versuche vielleicht den Oszillator so stabil zu bekommen, daß Du 9600 Baud sicher schaffst. Das müsste doch für die meisten Anwendungen reichen (und ist auch eine übliche Geschwindigkeit). Gruß, Matthias
Hi, die Cal.Bytes unterscheiden sich nur unwesentlich voneinander. Ich habe hier z.B. einen M32 mit 0xB2, 0xB1, 0xAE, 0xAF für 1,2,4,8 MHz. Weiterhin darf man an der Stelle auch nicht zu viel abweichen (max. +10%) sonst klappt der EEPROM und FLASH Zugriff nicht mehr. Du kannst also einfach den OSCCAL Wert auslesen, diesen um +/- 1,2,3, ... ändern und zurückschreiben. Dann misst Du die daraus resultierende Frequenz. Ich habe das so gemacht, daß ich in einer Schleife immer 0x55 mit 2 StopBits am UART ausgegeben habe. Gibt ein gut triggerbares Oszi-Bild, das man dann ausmessen kann. Wenn ich mir die Tempertur Diagramme anschaue, sollte dann zw. 0° und 40° < 3% erreichbar sein. Allerdings muß dann auch Vcc stabil sein! hth Gunter
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.