Mainclock mit falschem Ergebnis AT91SAM7

OP #849497
Lesenswert?
• ▲
▼
Ich habe hier einen Denkfehler dem ich nicht auf die Spur komme und 
hoffe, das sich von Euch schon mal jemand damit beschäftigt hat.

Die Funktion
AT91F_PMC_GetMasterClock(pPMC,pCKGR,SLOWCLK) aus der Atmel Lib liefert 
mir bei einem externen 18,432MHz Quartz 54,712MHz zurück. MAINF steht 
auf 10275 und damit ist der Wert eigentlich auch richtig. Wie kann ich 
aber nun MCK oder MAINCK ermitteln?

Eigentlich wollte ich über MAINF und SlowCLK die externe Frequenz 
errechnen und mir dann über (MUL+1)/DIV PLLCK ermitteln. Danach den PRES 
noch genommen und dann hat man MCK. Durch die Abweichung geht das aber 
alles nicht und wenn ich die Werte dann noch für die Baudrate einer 
seriellen Schnittstelle heranziehe sind die Abweichungen viel zu groß.

Was übersehe ich hier???

Danke für eure Hilfe!
Gast #851320
Lesenswert?
• ▲
▼
Also, wenn du den standard 18,432 MHZ Qzarz verwendest + den dazu 
üblichen asm startup code, dann ist die MCK auf 48MHZ eingestellt (wegen 
USB). Andere Quarze brauchste übrigens auch andere Kondensatoren um den 
Quarz.
Gast #852054
Lesenswert?
• ▲
▼
Wieso willst du eine Konstante zur Laufzeit berechnen? Was spricht gegen 
ein Define?

//--------------
// Master Clock
//--------------
#define EXT_OC    18432000

// External ocilator MAINCK
#define MCK             48054857   // MCK (PLLRC div by 2)
#define MCKKHz    (MCK/1000)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren