PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATXMega Hi-res Fragen



Che Guevara
27.07.2014, 17:41
Hi,

ich hab mal eine Frage zum Hires Modul des ATXMega. Ich hab das Modul korrekt eingestellt, der Timer läuft im Single-Slope PWM Modus, CLKSYS ist 32MHz, CLKPER4 ist auf 128MHz eingestellt (per PLL).
Nun heißt es im DB:


The hi-res extension will not output any pulse shorter than one peripheral clock cycle; i.e., a compare value lower than
four will have no visible output.

Ich verstehe nicht, wo jetzt der Vorteil liegt?
Angenommen, ohne HI-RES ist der Timer so eingestellt:


TCD0.CTRLA = TC_CLKSEL_DIV1_gc;
TCD0.CTRLB = TC_WGMODE_SS_gc | TC0_CCAEN_bm;
TCD0.PER = 1000;

dann hat die PWM eine Frequenz von ca. 32kHz und eine Auflösung von 1000 Steps.
Wenn ich jetzt das HI-RES Modul hinzunehme und das PER-Register auf 8000 stelle, komme ich auch auf ca. 32kHz, die Auflösung ist aber immer noch nur bei 1000 Steps, da ja die unteren 3LSB nicht berücksichtigt werden (laut der obigen Aussage aus dem DB). Da steht zwar "lower than four", aber ich hab noch das HRPLUS-Bit gesetzt, so wird aus den 2Bit 3Bit.

Hab ich was übersehen / falsch verstanden oder ist das HI-RES Modul für mich nutzlos (in dem Fall)?

Gruß
Chris

Peter(TOO)
28.07.2014, 09:39
Hallo Chris,

Ich kenne den ATXMega zu wenig, aber das Problem ist folgendes uns gilt für praktisch alle Controller:

Die I/O-Pins sind Flip-Flop, welche mit einer bestimmten Frequenz getaktet werden (peripherial clock).
Liegt dieser Takt z.B. bei 1MHz, dann kann das Flip-Flop nur jede 1µs seinen Zustand ändern. Die maximal erzeugbare Ausgangsfrequenz liegt also bei 500kHz.
Auch irgendwelche anderen, langsameren, Signale werden in diesen 1µ-Raster gepresst. Es ist also egal, mit welcher Präzision du dein internes Signal erzeugst, genauer als 1µ wird das Signal am Ausgang nicht.

Wenn du jetzt, immer noch im obigen Beispiel, eine interne Frequenz mit über 500kHz erzeugst wird's lustig. Jetzt kommts drauf an, welchen Pegel das interne Signal gerade hat, wenn der Ausgang das Signal abtastet. Der Ausgang wird dann irgendetwas mit einer deutlich niedrigeren Frequenz machen....

MfG Peter(TOO)

Klebwax
28.07.2014, 11:09
da ja die unteren 3LSB nicht berücksichtigt werden (laut der obigen Aussage aus dem DB). Da steht zwar "lower than four" ..

Ich kenn den Chip zwar nicht, aber "Lower than four" heißt für mich "kleiner als 4" nicht "modulo 4". Also Scope und nachschauen

MfG Klebwax