Hi, Ich habe mir jetzt einiges an Beispielcode im Netz angeschaut und bin immer wieder über die gleiche Frage gestolpert. Beim Aktivieren der PLL macht jeder Code folgendes in genau diese Reihenfolge: * PLL einschalten (PDRUNCFG, SYSPLLCTRL) * warten bis stabil (SYSPLLSTAT) * main clock auf PLL umschalten (MAINCLKSEL) * Teiler setzen (SYSAHBCLKDIV) Jetzt wundere ich mich, warum der Teiler im Regsiter SYSAHBCLKDIV gesetzt wird, machdem (!) die PLL als MainClock geschaltet wurde. Eigentlich muss das doch vorher passieren, damit die maximale Frequenz nicht überschritten wird. Ich hab im Datenblatt nichts dazu gefunden, wann die Umschaltung der MainClock aktiv wird und was eigentlich beim Übertakten passiert. Aber nach meinem (naiven) Verständnis läuft der Core doch dann kurzfristig mit einer viel zu hohen Frequenz, z.B. 60 MHz statt 30 MHz, weil der Teiler noch 1 ist. Was passiert hier genau, warum geht das? * Internet-Copy/Paste Fehler? * Gibt es in der Hardware einen Schutz? * Gehen dann einfach Clock-Pulse verloren, so das die genaue Taktung für eine kurze Weile undefiniert ist? Die beste Antwort die ich bisher gefunden habe ist: Das steht exakt so im Datenblatt, dass das so gemacht wird. Also nicht versuchen, da etwas zu verstehen. Axel
:
Bearbeitet durch User
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.