Hi, ich betreibe meinen Xmega 128A3U mit dem internen 32 MHz Oszillator. Er läuft stabil mit 48 MHz (PLL auf 6). Ich möchte nun während er läuft in bestimmten Programmteilen den PLL-Faktor umschalten, aber leider funktioniert das nicht. Ich habe diverse Varianten (mit CCP vorher vor jeder Änderung) probiert: PLL ausschalten, PLL Faktor ändern, warten bis PLLReady, PLL einschalten. Kann mir da einer helfen??? Danke
:
Verschoben durch User
@ Christian Forstreuter (vossi) >ich betreibe meinen Xmega 128A3U mit dem internen 32 MHz Oszillator. >Er läuft stabil mit 48 MHz (PLL auf 6). Gut. >Ich möchte nun während er läuft in bestimmten Programmteilen den >PLL-Faktor umschalten, aber leider funktioniert das nicht. Logisch. Dazu musst du erstmal auf eine andere Taktquelle umschalten, Z.B. den internen 32 MHz RCO. Dann kannst du am PLL-Faktor was ändern und wieder zurück schalten. Aber generell scheint mir der Ansatz so oder so zweifelhaft bis unsinnig, in 99,9% aller Fälle läßt man den Takt einmal eingestellt wie er ist und macht den Rest mittels Sleep Mode. Auch ja, der Beitrag ist hier falsch, Admins, bitte mal verschieben.
Hallo, danke für den Tip - es funktioniert jetzt. Ich hatte schon probiert PLL zu deaktivieren vor dem umschalten, aber das reichte nicht. Man muss auf 32 MHz ohne PLL gehen, dann PLL disablen PLL-Faktor ändern und dann wieder zurück auf PLL. Es geht mir nicht um's sparen, sondern genau das Gegenteil: Ich möchte den Xmega mit max. Geschwindigkeit nutzen. Ich lese mit 48 MHz aus einem 15ns-SRAM in meinem C64-Eigenbau und schreibe dann mit 60 MHz in das TFT Display. 60 MHz funktionieren (selbst bei aktuell 30 Grad Umgebungstemperatur) übrigens problemlos mit der USB-Variante (A3U).
Christian Forstreuter schrieb: > Hallo, danke für den Tip - es funktioniert jetzt. > Ich hatte schon probiert PLL zu deaktivieren vor dem umschalten, aber > das reichte nicht. > > Man muss auf 32 MHz ohne PLL gehen, dann PLL disablen PLL-Faktor ändern > und dann wieder zurück auf PLL. Und mit welchem Takt soll der Prozessor nach dem Deaktivieren der PLL dann laufen? > Ich möchte den Xmega mit max. Geschwindigkeit nutzen. > Ich lese mit 48 MHz aus einem 15ns-SRAM in meinem C64-Eigenbau und > schreibe dann mit 60 MHz in das TFT Display. > 60 MHz funktionieren (selbst bei aktuell 30 Grad Umgebungstemperatur) > übrigens problemlos mit der USB-Variante (A3U). Oh weia...
Es funktioniert problemlos. Die Xmegas mit USB sind für 48 MHz gebaut (auch wenn Atmel sie nur mit 32 MHz angibt). 20% Übertakten ist überhaupt kein Problem. Die Xmegas ohne USB laufen nur bis 40 MHz, was ja bestätigt, das in den A3U, A4U andere Hardware steckt! Nach dem alleinigen deaktivieren der PLL lief der Xmega mit 32 Mhz weiter. - hab ich im Analyzer kontrolliert. - warum auch immer?
Christian Forstreuter schrieb: > Es funktioniert problemlos. > Die Xmegas mit USB sind für 48 MHz gebaut (auch wenn Atmel sie nur mit > 32 MHz angibt). Das wäre mir neu. Nur der USB Teil in dem AVR ist bis 48 MHz spezifiziert. > 20% Übertakten ist überhaupt kein Problem. Die Aussage ist so pauschal natürlich Unsinn. Bestimmte Peripherie kann beispielsweise schon bei Knapp über 32MHz aussteigen. Oder andere Umgebungsbedingungen wie hohe Temperatur und niedrige Versorgungsspannung kann Instabilitäten erzeugen. > Die Xmegas ohne USB laufen nur bis 40 MHz, was ja bestätigt, das in den > A3U, A4U andere Hardware steckt! Das kann auch andere Gründe haben. Exemplarstreuungen oder Umstieg auf einen anderen Herstellungsprozess beispielsweise. > Nach dem alleinigen deaktivieren der PLL lief der Xmega mit 32 Mhz > weiter. - hab ich im Analyzer kontrolliert. - warum auch immer? Weil die PLL wahrscheinlich nicht deaktiviert wurde, weil es eine Logik gibt, die das verhindert.
:
Bearbeitet durch User
Das nur der USB-Teil bis 48 MHz spezifiziert ist - ist schon klar. Aber die werden wohl kaum nur den USB-Teil für 48 MHz extra in einem anderen Prozess fertigen - das rechnet sich sicher nicht! Das die USB Xmegas sich besser übertakten lassen haben schon andere untersucht (findet man in Web) und ich konnte es nachvollziehen. 60 MHz geht bei mir bei 30 Grad Umgebungstemperatur wie gesagt ohne Fehler. Ich habs mit zwei unterschiedlich eingekauften Xmegas getestet. Fehler auf dem Display kommen erst ab 66 MHz - Einzelne Pixelfehler sieht man sofort - könnte allerdings auch das Display sein, was da Probleme macht, wenn der write impuls nur noch 15ns ist! Natürlich gibt es keine Garantie dafür - Atmel kann morgen die Fertigung umstellen und es geht nur noch 32 MHz. Schade das man den PLL-Faktor nicht umschalten kann während PLL aktiv ist.
> Ich habs mit zwei unterschiedlich eingekauften Xmegas getestet. Du kannst jetzt noch das Ding weiter aufheizen und die Betriebsspannung senken, um die Grenzen rauszufinden ;) Solange das Einzelstücke bleiben, warum nicht... > Schade das man den PLL-Faktor nicht umschalten kann während > PLL aktiv ist. Weil da vermutlich nichts eingebaut wurde, was sicherstellt, dass das Hochdrehen ohne Glitches oder Verletzungen des 50:50-Verhältnisses passiert.
Christian Forstreuter schrieb: > Das nur der USB-Teil bis 48 MHz spezifiziert ist - ist schon klar. > Aber die werden wohl kaum nur den USB-Teil für 48 MHz extra in einem > anderen Prozess fertigen - das rechnet sich sicher nicht! Die maximale Taktfrequenz hängt doch nicht (nur) vom Prozess ab! Sondern viel mehr von der Implementierung. So wird der schaltungsteil für USB wesentlich schneller, dafür aber stromhungriger sein und mehr chipfläche belegen. Nur weil der Teil für 48mhz spezifiziert ist, muss der Rest das nicht auch sein! > Das die USB Xmegas sich besser übertakten lassen haben schon andere > untersucht (findet man in Web) und ich konnte es nachvollziehen. > 60 MHz geht bei mir bei 30 Grad Umgebungstemperatur wie gesagt ohne > Fehler. > Ich habs mit zwei unterschiedlich eingekauften Xmegas getestet. Ja, so kann man das ausdrucken. Bei DIR geht es. Allgemeingültig kann man das aber nicht sagen. > Natürlich gibt es keine Garantie dafür - Atmel kann morgen die Fertigung > umstellen und es geht nur noch 32 MHz. Oder die Temperatur ansteigen oder oder oder.. > Schade das man den PLL-Faktor nicht umschalten kann während PLL aktiv > ist. Das ist halt nur schwierig zu realisieren! So darf es bei dem umschalten nicht zu glitches kommen, sonst stürzt der Prozessor ab. Und das ist nur eines der Probleme. Soweit ich weiß gibt es diese Funktionalität bei keinem der modernen Prozessoren.
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.