Forum: Mikrocontroller und Digitale Elektronik Calibration Byte 8MHz


von chris (Gast)


Angehängte Dateien:

Lesenswert?

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

von Matthias (Gast)


Lesenswert?

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

von TravelRec. (Gast)


Lesenswert?

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!

von Peter Dannegger (Gast)


Lesenswert?

7,3728MHz ist so ein Standard Quarz dafür.


Peter

von chris (Gast)


Lesenswert?

hallo,
danke für den Tipp.
Leider is das system schon gebaut.
BobbyCar von www.qfix.de.

@Matthias:
hast du OSCCAL manuell eingestellt ?

von Matthias (Gast)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

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

von Gunter (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.