STM32 TIM PWM Frequenz irritation

OP #6021221
Lesenswert?

Ich hab hier ein STM32 Nucleo WB55.

Ich möchte mit einem Timer einer Frequenz durchstepen im Bereich von 
130kHz.

Dabei wollte ich mal Prüfen was die Grundtakt des Timer ist.
Bisher bin ich von der SYSCLK als Grundtakt des Timers ausgegangen, 
leider messe ich am PWM Timer aber was anderes. Was mache ich falsch?

Die SYSCLK hab ich auf 64 MHz eingestellt ursprünglich von der HSE 
versorgt mittlerweile über die HSI um die HSE als Fehlerquelle 
auszuschließen.

So wie das Verstehe müssten 64Mhz beim Timer ankommen.

Den Timer hab ich anschließen so eingestellt das er PWM ausgibt.
Dabei Prescaler auf 1 Autoreload auf 2 und Pulse auf 1.
Ich bin davon ausgegangen das jetzt ein Signal erzeugt wird das um die 
Hälfte kleiner ist als der Timertakt. Erwartet hätte ich 32MHz, ich 
bekomme aber nur 10,7 MHz.
Gast #6021243
Lesenswert?

Julian M. schrieb:
> Den Timer hab ich anschließen so eingestellt das er PWM ausgibt.
> Dabei Prescaler auf 1 Autoreload auf 2 und Pulse auf 1.
> Ich bin davon ausgegangen das jetzt ein Signal erzeugt wird das um die
> Hälfte kleiner ist als der Timertakt. Erwartet hätte ich 32MHz, ich
> bekomme aber nur 10,7 MHz.

Wenn 2 im Register stehen zählt er bis 3 (0 - 1 - 2 sind 3 Werte). Der 
Rest ist ein Faktor 2, das wird sich vermutlich im ClockTree finden 
lassen.
OP #6021261
Lesenswert?

Danke das Hilft doch gleich.
Hab jetzt mal Prescaler auf 0 und Autoreload 1 und Pulse 1.
Mit den Werten komme ich auf 32Mhz, meinen erwarteten Wert.


Wenn ich jetzt Prescaler auf 0.
Dabei Autoreload und Pulse langsam steiger habe ich das Problem das sich 
eine Schrittgröße von ca. 500 Hz einstellt.
z.B.
ARR=450 Pulse=225 => PWM=142,4kHz
ARR=452 Pulse=226=> PWM=141,8kHz
=> delta PWM =600Hz

wünschen würde ich mir aber eher ein Schrittgröße von 100Hz.
Kann ich mit PWM eine solche Schrittgröße gar nicht erreichen?
Oder kennt jemand eine Alternative Konfigurationsmöglichkeit des Timers 
mit dem ich das umsetzen könnte?
Der STM32WB hat leider keinen DAC.
Gast #6021308
Lesenswert?

Julian M. schrieb:
> wünschen würde ich mir aber eher ein Schrittgröße von 100Hz.
> Kann ich mit PWM eine solche Schrittgröße gar nicht erreichen?

Ein Zähler der mit 64MHz zählt macht Perioden die ein Vielfaches von 
1/64MHz = 15,625ns sind, und das ergibt bei 142kHz halt eine Differenz 
von ca. 315Hz.

Für höhere Auflösungen gäbs schnellere STMs die teilweise dann Timer mit 
doppeltem Takt oder überhaupt high-resolution Timer haben, wo man die 
Periode mit 100ps-Schritten verlängern kann.

Was der DAC damit zu tun hat ist mir unklar.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren