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?
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?
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 )
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.