Forum: Mikrocontroller und Digitale Elektronik STM32F107VC Erklärung aus dem manual Timer 1


von Ma B. (drumstick)


Lesenswert?

Hallo!

Ich arbeite mit dem STM32F107VC, uVision von Keil.

Ich generiere mit dem Timer 1 ein PWM Signal (Aus einem Beispiel).

Interne Clockfrequenz = 8MHz
Prescale              = 50 dezimal
Autoreload            = 4095 dez.
Compareregister       = 168 dez.

Gerechnete Zeit zwischen den positiven Flanken: 25ms
Gemesse Zeit zwischen den positiven Flanke:     49ms

Die Einstellungen aus dem Manual verstehe ich nicht:

Die Bits 0 bis und mit 7 sind alle gesetzt (1)!


Bits 7:0 DTG[7:0]: Dead-time generator setup
This bit-field defines the duration of the dead-time inserted between 
the complementary
outputs. DT correspond to this duration.

DTG[7:5]=0xx => DT=DTG[7:0]x tdtg with tdtg=tDTS.
DTG[7:5]=10x => DT=(64+DTG[5:0])xtdtg with Tdtg=2xtDTS.
DTG[7:5]=110 => DT=(32+DTG[4:0])xtdtg with Tdtg=8xtDTS.
DTG[7:5]=111 => DT=(32+DTG[4:0])xtdtg with Tdtg=16xtDTS.

Example if TDTS=125ns (8MHz), dead-time possible values are:

0 to 15875 ns by 125 ns steps,
16 us to 31750 ns by 250 ns steps,
32 us to 63us by 1 us steps,
64 us to 126 us by 2 us steps

Note: This bit-field can not be modified as long as LOCK level 1, 2 or 3 
has been programmed
(LOCK bits in TIMx_BDTR register).


Hat dies Einfluss auf die Clocktime, oder was könnte noch falsch 
laufen??

Vielen Dank und Gruss

M.B.

von Sven Wagner (Gast)


Lesenswert?

M. B. schrieb:
> Interne Clockfrequenz = 8MHz
> Prescale              = 50 dezimal
> Autoreload            = 4095 dez.
> Compareregister       = 168 dez.


> Gerechnete Zeit zwischen den positiven Flanken: 25ms
> Gemesse Zeit zwischen den positiven Flanke:     49ms
Faktor zwei Abweichung, immerhin schon mal die selbe Größenordnung.


> Die Bits 0 bis und mit 7 sind alle gesetzt (1)!
Ok, damit gilt folgende Formel:
> DTG[7:5]=111 => DT=(32+DTG[4:0])xtdtg with Tdtg=16xtDTS.
Mit
DT = ( 32 + 31 ) * Tdtg mit Tdtg = 16 * tDTS
Wenn die 8 MHz stimmen (oder muß man da noch der prescaler mit rein?),
dann ist DT = 63  16  tDTS = 1008 * 125 ns = 126 µs.

> Hat dies Einfluss auf die Clocktime, oder was könnte noch falsch
> laufen??
Die Deadtime sollte bei Deinen 50 ms nicht ins Gewicht fallen.

Hast Du die evtl. die PCLK oder HCLK geteilt?
Was ist, wenn Du den Prescaler auf 25 stellst?

Grüße
Sven

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.