Principe
| Timer | Fréquence | Remarques |
|---|---|---|
| STM32 TIMx, aligné sur front | f = fclk / ((PSC + 1)(ARR + 1)) | rapport cyclique = CCR / (ARR + 1) |
| STM32 TIMx, aligné au centre | f = fclk / (2 (PSC + 1) ARR) | PWM symétrique pour la commande moteur |
| AVR Timer1, fast PWM (mode 14) | f = F / (N (1 + ICR1)) | N ∈ {1, 8, 64, 256, 1024} |
| Slice RP2040 / RP2350 | f = clk_sys / (DIV × (TOP + 1)) | DIV = INT + FRAC/16, le mode phase-correct divise f par deux |
La recherche privilégie le plus petit prescaler qui atteint exactement la fréquence, ce qui donne la plus grande période et donc la résolution de rapport cyclique la plus fine. Le résultat indique le nombre de pas de rapport cyclique obtenus et leur équivalent en bits.
Quelle horloge ?
Sur STM32, l’horloge du timer est celle de l’APB, doublée quand le prescaler APB est différent de 1. Sur N6 et H7, elle peut aussi venir d’une horloge noyau dédiée. Relevez la valeur exacte dans l’arbre d’horloges de CubeMX ; les préréglages sont des exemples.