ForHosting KIT · Outils pour développeurs

Calculateur de résolution PWM en bits

Ce calculateur de résolution PWM indique combien de comptes de minuteur et de bits entiers sont disponibles à la fréquence PWM demandée.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Saisissez l’horloge du minuteur en hertz, la fréquence PWM voulue et, si nécessaire, un prédiviseur entier. Le résultat comprend la fréquence des ticks, les comptes idéaux et utilisables par période, la valeur maximale du compteur, les résolutions théorique et entière, la fréquence réalisable et son erreur. Vous pouvez ainsi préparer la configuration d’un microcontrôleur avant de choisir les registres ou d’écrire le micrologiciel.

Comment l’horloge et la fréquence PWM fixent la résolution

Un minuteur matériel avance à chaque tick et redémarre à la fin de la période programmée. Pour une PWM alignée sur un front, la division de l’horloge d’entrée par le prédiviseur et la fréquence demandée donne le nombre idéal d’états du compteur pendant une période. Plus il existe d’états, plus le registre de comparaison peut représenter de niveaux de rapport cyclique. La résolution correspond donc au logarithme en base deux du nombre d’états. Ce calculateur arrondit les comptes idéaux vers le bas, car le matériel ne peut pas exécuter une fraction de tick, puis arrondit le logarithme pour annoncer les bits entiers disponibles. Ainsi, 72 MHz et 20 kHz sans prédivision donnent 3,600 comptes, environ 11.81 bits théoriques et 11 bits entiers. La valeur maximale vaut un compte de moins puisque le compteur parcourt généralement zéro à ARR ou TOP inclus. Une fréquence supérieure réduit les ticks par cycle ; une fréquence inférieure affine les pas de commande.

Comment lire les valeurs calculées

Indiquez dans timer_clock_hz l’horloge qui alimente réellement le périphérique avant son prédiviseur. Ne reprenez pas automatiquement la fréquence du processeur : les microcontrôleurs dérivent souvent les minuteurs d’un bus périphérique, et certaines architectures multiplient cette horloge. pwm_frequency_hz est la fréquence de sortie voulue en mode aligné sur un front. prescaler doit être un entier positif et vaut un par défaut. timer_tick_hz est l’horloge après division. ideal_counts_per_period conserve le rapport mathématique tandis que available_counts_per_period contient sa partie entière utilisable. max_counter_value retire un. resolution_bits annonce les bits complets et theoretical_resolution_bits conserve la fraction. actual_pwm_frequency_hz repose sur le compte entier et peut dépasser légèrement la cible ; frequency_error_percent mesure l’écart. L’automatisation par API coûte $0.002 par élément réussi. Le calcul reste déterministe, sans réseau ni base de données de composants.

Comment transposer le résultat à un microcontrôleur réel

Utilisez le résultat comme contrôle de faisabilité, puis consultez le manuel de référence du composant. Un registre de période sur 16 bits ne peut pas dépasser 65,535, même si le rapport des fréquences offre davantage d’états ; augmentez alors le prédiviseur ou appliquez séparément la largeur matérielle. Une résolution de 10 bits n’impose pas non plus une valeur maximale exactement égale à 1,023 : elle signifie qu’au moins 1,024 positions tiennent dans la période. Une PWM centrée compte généralement à la montée puis à la descente, ce qui ajoute un facteur proche de deux ; employez donc l’équation propre au minuteur. Tenez aussi compte du temps mort, de la synchronisation, des compteurs de répétition et des changements d’horloge en basse consommation. Si l’exactitude de la fréquence prime, essayez des couples prédiviseur-période voisins. Pour affiner le rapport cyclique, baissez la fréquence PWM ou augmentez l’horloge. La résolution mathématique ne garantit pas la précision analogique : retards, gigue, étage de puissance et charge influencent le résultat réel.

Dimensionner un minuteur pour LED

Vérifiez qu’une fréquence sans scintillement conserve assez de niveaux pour des variations lumineuses progressives.

Préparer un micrologiciel moteur

Comparez la fréquence de commutation aux bits entiers disponibles sur le minuteur de commande.

Choisir le prédiviseur

Évaluez son effet sur les ticks, la plage du compteur, la fréquence réalisable et la granularité.

Quelle formule le calculateur emploie-t-il ?

En PWM alignée sur un front : comptes = floor(horloge / prédiviseur / fréquence PWM), puis bits = floor(log2(comptes)).

Pourquoi la résolution théorique est-elle fractionnaire ?

Le logarithme peut tomber entre deux puissances de deux ; les bits entiers donnent la plus grande plage binaire complète disponible.

Pourquoi la fréquence réelle diffère-t-elle de la cible ?

La période idéale peut contenir une fraction de tick. Sa conversion en comptes entiers peut augmenter la fréquence réalisable.

Le calcul convient-il à une PWM centrée ?

Le résultat direct suppose un alignement sur un front. Les modes centrés ajoutent généralement un comptage montant et descendant.

La largeur du registre est-elle contrôlée ?

Non. Comparez max_counter_value à la limite physique, par exemple 65,535 pour un registre de période sur 16 bits.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/elec/pwm-resolution

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/elec/pwm-resolution \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"timer_clock_hz":72000000,"pwm_frequency_hz":20000}'
{
  "timer_clock_hz": 72000000,
  "pwm_frequency_hz": 20000
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "elec.pwm_resolution",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →