Commande de moteur à courant continu et pas à pas par FPGA
Denis Rabasté 3/10
IUFM Aix Marseille
Le signal C_OUT (alimentant C_EN) à 5 MHz est obtenu par la division par 10 de l’horloge à
50 MHz de la carte DE2, par le bloc « div_50 »
.
Grâce au bloc séquenceur « SEQ », ce programme test va permettre de régler 5 vitesses différentes
pour le moteur, en fonction de l’appui sur les boutons poussoir BP1 et BP2 (ce qui générera les
signaux BPLUS et BMOINS) de la carte DE2.
Pour passer à la vitesse supérieure ou inférieure ; ces 5 vitesses correspondent à 5 valeurs de la
consigne « CONS » et donc à 5 valeurs de rapport cyclique aux bornes du moteur.
On établi sans difficulté que le rapport cyclique α est donné par l’expression :
α= CONS/255,
et la tension moyenne aux bornes du moteur par la relation classique d’un pont en H :
Umoy = Vs (2 α-1) Vs étant la tension d’alimentation du pont
Les 5 valeurs de consigne imposées par le séquenceur sont :
- 0, ce qui correspond à une vitesse maximale du moteur en sens négatif (α=0, Umoy=-Vs) ;
- 64, soit la moitié de la vitesse maximale du moteur, en sens négatif (α=0,25, Umoy=-Vs/2) ;
- 128, soit une vitesse nulle (α=0,5, Umoy=0) ;
- 192, soit la moitié de la vitesse maximale en sens positif (α=0,75, Umoy=Vs/2) ;
- 255, soit la vitesse maximale en sens positif (α=1, Umoy=Vs).
Le fonctionnement du séquenceur a été décrit par la machine d’état suivante (voir le sujet sur la
machine d’état pour plus de précisions) :
Le passage d’un état au suivant, se fait à chaque coup d’horloge en testant les boutons poussoir :
- pour augmenter la vitesse (en valeur relative), il faut vérifier la condition
BMOINSBPUS .
(ce qui se traduit par « BPLUS & ~BMOINS » dans la syntaxe de description de machine
d’état au sein de Quartus),
- pour diminuer la vitesse, il faut vérifier la condition
BPLUSBMOINS .
;
- une réinitialisation de la machine d’état, par appui sur le bouton poussoir « RST », place celle-
ci dans l’état E128, qui correspond à l’arrêt du moteur ;
Remarques : l’utilitaire de description de machine d’état de Quartus impose que les conditions de
passage d’un état à l’autre soit exclusives (deux conditions ne peuvent être valides en même temps) ;
on ne peut donc avoir comme conditions BPLUS pour une branche et BMOINS pour l’autre.
L’horloge du système fonctionnant à 50 MHz, les informations BPLUS et BMOINS sont testées 50
millions de fois par secondes ; pour un fonctionnement correct, un appui sur les boutons poussoirs
correspondants, doit donc durer une impulsion d’horloge.