Forum: Mikrocontroller und Digitale Elektronik ARM LPC23xx Frage zu CCLKCFG


von Peter (Gast)


Lesenswert?

Im Manual der LPC23xx Serie steht ausdrücklich geschrieben das CCLKCFG 
nur einen ungraden Wert annehmen darf und gerade Werte zu einer 
Fehlfunktion führen können.

Da ich dis volle Geschwindigkeit nicht brauche habe ich das PLL auf die 
maximale Frequenz von 288 gesetzt und CCLKCFG auf 5, also CPU läuft mit 
48 MHz.

Jetzt bin ich gerade dabei CAN zu programmieren, als Vorlage nehme ich 
den Code von NXP / Keil. Dabei ist mir aufgefallen das da CCLKCFG auf 4 
gesetzt wird, was eine CPU Frequenz von 57,6 MHz ergibt.

Meine Frage nun, ist das ein Fehler von denen, das die ihr eigenes 
Manual nicht lesen oder have ich etwas überlesen, das man CCLKCFG doch 
auf gerade Werte setzen kann?

von Peter (Gast)


Lesenswert?

Nachtrag:
Es gibt ja auch von NXP dieses Excel Sheet um die Frequenzen zu 
kalkulieren. Auch da werden gerade CCLKCFG Werte generiert.
Das verwirrt mich ein wenig, was ist denn nun richtig? Das Manual oder 
dir Tools von NXP?

von Stefan ++ (Gast)


Lesenswert?

Hallo,

ich kenne den Beispiele-Code von NXP / Keil nicht,

aber zum Calculator (Excel), da muss man unterscheiden zwischen Divisor 
und das was ins CCLKSEL register geschrieben wird.

bei Divisor = 6 dann ins CCLKSEL = 5 (== Divisor - 1 )

von Peter (Gast)


Lesenswert?

Das Manual sagt: Only 0 and odd values are supported and can be used 
when programming the CCLKSEL bits.
Warning(fettgedruckt): Using an even value when setting the CCLKSEL bits 
may result in incorrect operation of the device. (Seite 61 Dok. UM10211)

Daraus folgere ich, das man da nur ungerade Zahlen reinschreiben darf. 
Im NXP Excel Sheet werden gerade und auch ungerade Zahlen erzeugt. Diese 
Zahl -1 ist dann CCLKSEL.

Da ich gerade am LPC2388 dran bin, gilt Dokument UM10211 plus Errata 
LPC2388. Bezüglich PLL gibts ja die Restriktion auf 290MHz.

Theoretisch dürfte das Excel Kalkulationstoo keine ungraden Werte 
erzeugen, weil der erzeugte Wert - 1 als CCKLSEL genommen werden muss.

Es gibt auch einige Threads dazu im Internet, aber immer nur Frage und 
keine Antwort.

von Michael G. (let)


Lesenswert?

Das Verhalten bei nicht gesetztem Bit 0 ist nicht definiert. Wenn das 
Excel Sheet gerade Werte ausgibt heisst das noch nicht dass der Wert 
auch gültig ist. Es ist nur ein Hilfsmittel das einem das Mitdenken 
nicht erspart auch wenn Keil das vielleicht anders sieht. Die meinen 
auch das man EMV Probleme dadurch löst indem man genügend Kondensatoren 
auf der Platine verteilt. Hat beim MCB2300 z. B. aber nicht geholfen. 
Das ist die reinste Dreckschleuder.
IAR hat auch schon Beispiele veröffentlicht die eher zufällig 
funktionieren.

Die Beschränkung der PLL auf 290MHz gilt nur für die Revisionen '-' und 
'A' die sich nur auf einigen Evalboards befinden dürften. Aktuell ist 
glaube ich Revision 'D'. Die Einführung der LPC23er Reihe war auch ein 
ziemliches Gehampel.

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.