Une modulation de largeur d'impulsion est un moyen de contrôler la rotation ou la position d'un moteur électrique ou servo. En utilisant Verilog HDL , je vais montrer comment il est facile d' utiliser les compteurs afin de créer un PWM. Choses que vous devez FPGA Xilinx ISE servo /moteur Voir Plus Instructions 1 Alors, comment fonctionne un PWM ? < p> avoir un signal rectangulaire périodique , nous changeons le cycle ( moduler ) d'être plus ou moins grande et donc de contrôler notre dispositif. Pourquoi utiliser un PWM ? c'est une simple numérique technique de conversion analogique qui ne nécessite pas un ADC . 2 Ok , laisse penser que les entrées , les sorties, les registres et les compteurs , nous aurons besoin et dont la conception que nous voulons créer . je veux utiliser les huit commutateurs sur la carte FPGA Spartan pour contrôler la façon dont mon moteur /servo se déplace ou comment rapide ou lent je veux que ça bouge Entrées: . horloge , 8 switchesOutputs : pwmRegisters : pwmCounters : 16 bit compteur ( vais vous expliquer pourquoi 16 bits tard ) 3 savoir quelle est la vitesse d'horloge de votre FPGA et quelle période vous souhaitez utiliser . J'ai un Spartan FPGA avec une horloge 50MHz . Je voudrais rafraîchir le signal toutes les 1 milliseconde (t). Nous appliquons le calcul suivant pour trouver la période de forme d'onde (p ) p = t * FPGA horloge Dans mon cas : p =, 001 secondes * 50MHz = 50000 Photos Connaissant mon p est important pour calculer mon retard de l'étape ( sd ) : sd = p /256 = 195 Pourquoi ai-je fait 256? Je vais utiliser 8 interrupteurs pour contrôler mon servo /moteur , donc 2 ^ 8 = 256 . 4 Enfin nous voulons utiliser notre compteur que notre cycle de travail . Pour calculer le nombre de bits composent notre compteur que nous utilisons: log2 ( sd ) = nombre de bits est notre compteur Alors que le compteur est inférieure sd ( retard de l'étape ) multiplié par la valeur des commutateurs ( qui peut varier de 0 à 255) , c'est notre cycle de travail .
|