1.3. generation du signal mli par le timer de l`AT9S8535

Page 1 sur 8
Pilotage d'un moteur à courant continu par MLI
1. ELEMENTS DE COURS
Objectif : Expliquer comment s'effectue la commande d'un moteur à courant continu afin de
contrôler son sens de rotation et sa vitesse.
1.1. PRINCIPE DE FONCTIONNEMENT DUN MOTEUR A COURANT
CONTINU A AIMANTS PERMANENTS
Un moteur à courant continu permet de convertir une énergie électrique en une énergie
mécanique utile. Il est constitué d'une partie fixe, stator ou inducteur composé d'aimants
permanents (pôles) chargés de générer un flux magnétique ; et d'une partie mobile, rotor ou
induit, composé d'un bobinage alimenté à ses extrémités (collecteur) par une tension continue
U.
La variation de vitesse d'un moteur à courant continu :
1.1.1. Mise en situation
La variation de vitesse d'un moteur à courant continu est obtenue en faisant varier la valeur
moyenne de la tension d'alimentation de l'induit U. Cette dernière est obtenue en appliquant
une tension rectangulaire d'amplitude Û constante et de rapport cyclique α= tH/T variable.
Dans ce cas, la valeur moyenne <U> = Û x α.
Cette commande s'appelle la Modulation de Largeur d'Impulsion (MLI ou PWM pour Pulse
Width Modulation).
1.1.2. Modulation « numérique »
La MLI est obtenue à la sortie d'un comparateur numérique, qui compare un mot binaire issu
d’un compteur générant un cycle continu de comptage avec un mot binaire réglable.
1.2. LA VARIATION DU SENS DE ROTATION D'UN MOTEUR A COURANT
CONTINU :
Pour modifier le sens de rotation d’un moteur à courant continu, il suffit d’inverser
l’alimentation à ses bornes (induit). La structure permettant de réaliser cette inversion est
appelée « pont en H ».
Compteur
binaire sur n
bits
Comparateur
nu
U
Clk
Mot binaire de valeur image du
rapport cyclique de sortie
Signal MLI
n
00 01 02 … 00 01
Page 2 sur 8
1.2.1. Principe de fonctionnement du pont en H
Le pont en H peut être symbolisé par une structure à quatre interrupteurs ouverts au repos
(voir fig1). Dans ce cas, la tension aux bornes du moteur est nulle.
Pour mettre en rotation le moteur il suffit de fermer un couple d’interrupteurs (voir fig2) et de
laisser les deux autres au repos. Le moteur est donc alimenté avec la tension UM=VCC.
Pour modifier le sens de rotation, il suffit de permuter le couple d’interrupteurs fermés et
ouverts (voir fig3). On aura donc UM= - VCC.
1.2.2. Structure autour de transistors
Les transistors vont assurer la fonction des interrupteurs et fonctionneront en saturé/bloqué.
Ainsi en bloquant un couple de transistor et en saturant l’autre, on établit une tension UM aux
bornes du moteur, dont on change le signe en modifiant les couples saturés/bloqués (voir fig4
et 5).
Les diodes placées entre émetteurs et collecteurs des transistors jouent le rôle de diodes de
roue libre (DRL). Elles permettent de protéger les transistors en devenant passantes lorsque
ces derniers sont tous bloqués et qu’il faut évacuer le courant IM de l’inductance du moteur.
1.3. GENERATION DU SIGNAL MLI PAR LE TIMER DE L'AT9S8535
1.3.1. PREPARATION
On désire piloter le moteur à l’aide du générateur de signal MLI (PWM) intégré au timer1 de
l’AT90S8535. Seule la MLI (PWM) associée au timer 1 sera étudiée ici.
Le signal MLI sera fourni par la broche OC1B La MLI sera configurée en mode 10 bits.
L’horloge système CK possède une fréquence valant 4MHz et les bits de commande non
utilisés dans cette application seront positionnés à « 0 ».
Page 3 sur 8
Travail à faire :
1. Sur le document réponse 1, compléter l’Initialisation des ports A, C et D.
2. Combien de « timer » possède le microcontrôleur AT90S8535 ou ATmega8535.
(préciser les caractéristiques principales).
3 timers 2 de 8 bits et 1 de 16 bits
3. Un timer est composé d’un compteur. Préciser le fonctionnement d’un compteur
binaire.
Un compteur est composé de bascules et s’incrémente à chaque impulsion active.
4. Un timer est composé de registre. Préciser le fonctionnement d’un registre.
Un registre est une mémoire interne au µC de 8 bits
5. Quel est le rôle d’un comparateur binaire.
Comparer 2 nombres binaires (N1<N2, N1>N2 ou N1=N2)
6. Comment sont nommés les registres de contrôle du timer1.
TCCR1A et TCCR1B
7. Comment est nommé le registre de comparaison du timer1.
OCR1A
8. On désire utiliser la fonction PWM du timer (10 bits). Préciser l’état des bits1 et 0 du
registre de commande TCCR1A. (compléter le document réponse 2).
TCCR1A :1er registre de contrôle du timer 1.
PWM11 = 1 PWM10 = 1 PWM 10 bit
9. Quel est la valeur maximale et minimale du compteur TCNT1.
TCNT1max=1023, TCNT1min=0
10. En déduire la valeur de la fréquence du signal PWM. (fréquence de l’horloge du
système STK200 à 4 MHz). Compléter le document réponse 4 (valeur de CLK).
Fréquence de l’horloge du signal MLI = (4 000 000)/2046 = 1955Hz
11. On utilise la sortie OC1B du microcontrôleur (µC). Sur quel port et quel bit se trouve
cette sortie (voir schéma du STK200).
La sortie de OC1B est sur PD4
Adresse
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
$2F ($4F)
COM1A1
COM1A0
COM1B1
COM1B0
-------
--------
PWM11
1
PWM10
1
PWM11
PWM10
Mode de fonctionnement du timer1
0
0
Mode normal (Non PWM)
0
1
PWM 8 bits
1
0
PWM 9 bits
1
1
PWM 10 bits
Résolution PWM
Valeur maxi compteur
Fréquence
8 bits
$00FF (255)
FTCK1/510
9 bits
$01FF (511)
FTCK1/1022
10 bits
$03FF (1023)
FTCK1/2046
Page 4 sur 8
12. La sortie OC1B du µC est en mode PWM normale. On n’utilise pas OC1A du µC.
Indiquer l’état des bits 4 à 7 du registre TCCR1A (compléter le document réponse 2).
COM1X1
COM1X0
Type de PWM
0
0
PWM non active
0
1
PWM non active
1
0
PWM normale
1
1
PWM complémentée
On travaille sur OC1A
COM1A1 = 0 COM1A0 = 1 PWM désactivée
COM1B1 = 1 COM1B0 = 0 PWM normale sur OC1B
13. En déduire la valeur hexadécimale du registre TCCR1A (compléter le document
réponse 1).
Bit2 e 3 à 0 TCCR1A = 63h
14. On ne met pas en fonction le réducteur de bruit. On n’utilise pas l’entrée ICP. Le
timer1 est en comptage continue jusqu’à la capacité maximale. On utilise l’horloge du
système pour compter. Compléter le document réponse 3.
- ICNC1 : Ce bit lorsqu’il est positionné à 1, met en fonction le réducteur de bruit qui
permet d’éviter la prise en compte de parasites comme fronts actifs.
- ICES1 : Sélection du type de front actif. Si à 1 : front montant, Si à 0 : front descendant.
Lorsqu’un front actif se produit sur l’entrée ICP, le contenu du compteur TCNT1
est transféré dans le registre de capture ICR1.
Le bit CTC1 définit le mode de fonctionnement du compteur TCNT1 :
0 : Comptage en continu jusqu'à la capacité maximale ($0000 - $FFFF), puis le cycle recommence
CS12
CS11
CS10
Source d’horloge du compteur
0
0
0
Aucune : Le compteur est stop
0
0
1
Horloge système (CK)
0
1
0
Horloge système (CK) / 8
0
1
1
Horloge système (CK) / 64
1
0
0
Horloge système (CK) / 256
1
0
1
Horloge système (CK) / 1024
1
1
0
Broche T1, active sur front descendant
1
1
1
Broche T1, active sur front montant
TCCR1B :2eme registre de contrôle du timer 1.
Adresse
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
$2E ($4E)
ICNC1
0
ICES1
0
-------
0
-------
0
CTC1
0
CS12
0
CS11
0
CS10
1
15. En déduire la valeur hexadécimale du registre TCCR1B. (compléter le document
réponse 1).
TCCR1B = 01h
Adresse
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
$2F ($4F)
COM1A1
0
COM1A0
1
COM1B1
1
COM1B0
0
-------
--------
PWM11
1
PWM10
1
Page 5 sur 8
Si l’on considère à l’instant t=0 le compteur à « 0 » (donc N1=0) et OCR1A à 30010 (12C16).
A chaque impulsion de CLK le compteur s’incrémente.
16. Calculer le temps (t1) ou N2>N1. En déduire l’état de la sortie OC1B.
Si OCR1A > TCNT1 OC1B = 1
Si OCR1A < TCNT1 OC1B = 0
Si N2 > N1 OC1B = 1
Si N2 < N1 OC1B = 0
t1 = 300/(4 000 000)=75µs (OC1B = 1)
17. Lorsque t1 est atteint le compteur continue à s’incrémenter jusqu’à la valeur maximale
(1023) puis se décrémente jusqu’à la valeur minimale et ainsi de suite. Calculer le
temps ou N2<N1.
(1023-300)*2/(4 000 000)= 361.5 µs
18. Compléter le chronogramme du document réponse 4. En déduire T1 et T.
T1 = 2*t1 = 150µs T = 150 + 361.5 = 511.5µs fMLI = 1/511.5µs = 1955Hz
19. Calculer le rapport cyclique α.
α = 150/511.5 = 0.29
20. Saisir et compiler le programme du document réponse 1.
21. Flasher le µC du STK200 et visualiser sur l’oscilloscope le signal MLI.
22. En appuyant sur le bouton PD1 vérifier T1, T et le rapport cyclique α déterminé
précédemment.
23. Mesurer le rapport cyclique du signal lorsque l’on appuie sur PD0, PD2 et PD3.
αPD0 = 50/511.5 = 0.09
αPD2 = 256/511.5 = 0.5
αPD3 = 511.5/511.5 = 1
24. Préciser le rôle du code « ~PIND & 0b00001111 ».
0b00001111 est un masque pour isoler PD0, PD1, PD2 et PD3.
Mode PWM Normale
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !