Forum: Mikrocontroller und Digitale Elektronik STM32 - PWM Frequenz ändern?!


von Stomper (Gast)


Lesenswert?

Hallo,

ich hab ein ganz komisches Verhalten vom STM32.

Erstmal vorweg:

SysCLK ist 72 MHz.
AHB prescaler ist 1 -> 72 MHz
APB1 prescaler ist 2 -> 36 MHz

Figur 11 Clock Tree sagt:

if APB1 prescaler = 1 then x1
else x2

also da APB1 auf 2 steht wird x2 genommen

Clock für den Timer also wieder 72 MHz, richtig?!

Ausgabe des PWM auf PA1 - Ausgang wurde auf Alternate Push Pull bis 50 
MHz gesetzt.

Hier mein Code wie ich das PWM zum laufen bekomme:
1
// PWM Konfigurieren
2
      TIM5->PSC = 0x03E8;  // Prescaler 1000
3
      TIM5->ARR = 0x00B3; // Reload Register
4
5
      TIM5->CR1 = 0; // Register auf 0 Setzen
6
      TIM5->CR1 |= (1<<8); // Bit 9:8 CKD auf 01 tDTS = 2 x tCK_INT
7
8
      TIM5->DIER = 0; // Register auf 0 Setzen
9
      TIM5->DIER |= (1<<2); // CC2IE Enable Capture Compare 2
10
11
      TIM5->CCMR1 = 0; // Register auf 0 Setzen
12
      TIM5->CCMR1 |= (0b110<<12); // PWM Mode on Output Compare 2
13
14
      TIM5->CCER = 0; // Register auf 0 Setzen
15
      TIM5->CCER |= (1<<4);  // Output CC2 Enabled
16
17
      TIM5->CCR2 = 0; // Register auf 0 Setzen
18
      TIM5->CCR2 = 0x005A ; // 1/2 * Reload = 50% Tastverhältnis
19
20
21
      TIM5->CR1 |= 1; // Enable Timer

So, jetzt kam aber nicht die Frequ. raus die ich errechnet habe, sondern 
die Frequenz x 4 - daher dachte ich: Klar liegt am CR1 Register Bit CKD 
für den Clock Multiplier.... jedoch ändert sich an meiner PWM Frequenz 
GAR NICHTS, egal was ich für CKD einstelle!

Ich habe die Frequ. jetzt mit Absicht nicht gesagt, vielleicht sagt mir 
mal jemand von euch was er für eine Frequ. erwarten würde bei meiner 
Einstellung und dann auch noch wieso bzw. wieso die Einstellung von CKD 
nix ändert :-)

Dank und Gruß
Stomper

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
Noch kein Account? Hier anmelden.