UTBM. Département Énergie. DUREE 2 HEURES.
UTBM IF40. Examen final. Page 1
Calculatrices non autorisées. Fascicule DSP Contrôleur TMS320LF2407 non autorisé.
Traducteurs électroniques non autorisés. Cours et TD et tous documents non autorisés.
Exercice 1 : axe horizontal
Dans une salle de TP, on met en place un axe de déplacement horizontal pour le modéliser. Le système est piloté par un DSP contrôleur TMS320LF24LF07 cadencé à 40 MHz.
L’axe est motorisé par un moteur à courant continu alimenté par un hacheur à partir d’une source continue (E). On donne ci-dessous le schéma de puissance :
Les transistors permettent de piloter la tension Umcc de -15V à 15V en ajustant , le rapport cyclique des signaux PWM1 et 2. La fréquence de ces signaux est de 20 kHz. Les transistors requièrent un délai de sécurité (ou temps mort) de 4 s. La sortie PWM1 est active au niveau haut.
1.1) Écrire en langage C la fonction INITEVA réalisant l’initialisation du module EVA et des broches PWM utilisées, et l’initialisation des signaux PWM possédant une fréquence 20 kHz en mode asymétrique avec les délais de sécurité requis. Après l’initialisation, la valeur moyenne de Umcc doit être nulle.
Un capteur à effet Hall mesure l’intensité du courant Imcc. Cette sonde de courant délivre une tension proportionnelle à Imcc et variant de 0 à 3V pour un courant allant de 0 à 30A. Cette sonde est reliée à l’entrée ADCIN1 du convertisseur analogique numérique du DSP.
Un montage potentiométrique délivre une tension Ucom qui permet de piloter la vitesse du moteur à courant continu. Ucom donne la consigne de vitesse du moteur. Cette tension varie entre 0 et 2,7V. Elle est reliée à l’entrée ADCIN9 du convertisseur analogique numérique du DSP.
Pour mettre en place la régulation de vitesse, celle-ci doit être mesurée. On installe sur l’arbre moteur une dynamo tachymétrique associée à un montage à amplificateur opérationnel qui délivre une tension continue UT. La tension continue UT qui varie entre 0 et 3,3V est appliquée à l’entrée ADCIN10 du convertisseur analogique numérique du DSP.
E
UTBM IF40. Examen final. Page 2
1.2) Écrire en langage C la fonction INITADC réalisant l’initialisation du module ADC en mode start/stop et double séquenceur pour permettre la conversion de la voie 1 ou de la voie 9 et de la voie 10. La conversion sera déclenchée logiciellement. La calibration et le test du module ADC ne sont pas effectués.
1.3) Écrire en langage C la fonction MESURE_COURANT qui réalise la conversion analogique numérique de la voie 1 et renvoie le résultat de la conversion au programme principal.
1.4) Écrire en langage C la fonction MOUVEMENT qui réalise la conversion analogique numérique des voies 9 et 10 et renvoie ces deux valeurs au programme principal. Vous devrez utiliser des pointeurs car une fonction ne peut pas renvoyer deux valeurs. Les variables globales sont interdites.
Le moteur est mis en fonctionnement par la fermeture d’un contact de relais piloté par la broche IOPA1.
Deux capteurs de fin de course sont positionnés de chaque côté de l’axe. Le capteur de fin de course droit est relié à la broche IOPA2 et le capteur de fin de course gauche est relié à la broche IOPA3. Un bouton départ de cycle est relié à l’entrée IOPA4. On doit configurer IOPA1 en sortie, IOPA2 IOPA3 et IOPA4 en entrée.
IOPA1 au niveau logique 1 le moteur fonctionne.
IOPA1 au niveau logique 0 le moteur est à l’arrêt.
Fin de course gauche détectée IOPA3 = 1 sinon IOPA3 = 0
Fin de course droite détectée IOPA2 = 1 sinon IOPA2 = 0
(front montant) sur IOPA4 départ de cycle.
1.5) Écrire en langage C la fonction INITPA initialisant le port A sachant que le moteur doit être à l’arrêt à la fin de l’initialisation.
Le cycle de fonctionnement est le suivant : après un front montant sur le bouton départ de cycle ( sur IOPA4) et si l’axe est à gauche (IOPA3=1), il se déplace vers la droite à une vitesse réglée par le potentiomètre.
Lorsque l’axe arrive en fin de course à droite (IOPA2=1), il se déplace vers la gauche (toujours à la même vitesse) et revient en position initiale (fin de course gauche IOPA3=1). IOPA1 doit être égale à 1 pendant le déplacement. IOPA1 repasse à 0 lorsque l’axe est de retour à gauche
Pour le déplacement vers la droite, la vitesse du moteur peut varier entre 0 et 3000 tr.min-1 ce qui correspond à un rapport cyclique de la tension Umcc variant entre 0,5 et 0,8. La valeur moyenne de Umcc est positive.
Pour le déplacement vers la gauche, la valeur moyenne de Umcc doit être négative. La vitesse du moteur peut varier entre -3000 tr.min-1 et 0 tr.min-1. La loi Umcc=f() est une fonction affine.
1.6) Donner le nom du registre permettant de faire varier le rapport cyclique . Calculer ses valeurs correspondant aux vitesses de -3000 tr.min-1, 0 tr.min-1 et +3000 tr.min-1.
La tension Ucom donne la consigne de vitesse en valeur absolue. Pour Ucom =0V, la valeur absolue de la vitesse demandée est de 300 tr.min-1 (vitesse minimale) et pour Ucom = 2,7V, la vitesse demandée est de 3000 tr.min-1. La fonction |𝑣𝑖𝑡𝑒𝑠𝑠𝑒| en fonction de Ucom est une fonction affine.
1.7) Calculer les résultats N0 et N1 de la conversion analogique numérique correspondant respectivement aux valeurs de Ucom (broche ADCIN9) de 0V et 2,7V.
Une variable sens (type int) est utilisée pour calculer la valeur du rapport cyclique. Si sens=0, l’axe se déplace vers la gauche, sinon la valeur de sens=1 et l’axe se déplace vers la droite.
UTBM IF40. Examen final. Page 3
1.8) Écrire en langage C la fonction VITESSE qui reçoit en paramètre le résultat de la conversion analogique numérique correspondant à Ucom et la variable sens et qui renvoie la valeur à entrer dans le registre (question 1.5) permettant de faire varier la vitesse.
1.9) Écrire en langage C le programme principal. Ne pas oublier la déclaration des variables.
Exercice 2 : Interfaçage et décodage d’adresses
On donne page suivante le schéma partiel d’une carte 6809. Seuls sont représentés les mémoires et le microprocesseur ainsi que le bus d’adresse.
2.1) Pour les mémoires MEM1, MEM2, MEM3, MEM4 et MEM5, indiquer la capacité mémoire en octets, et l’organisation en nombre de mots et taille des mots (N mots de M bits).
Présenter le résultat sous forme de tableau.
2.2) Compléter le tableau ci-dessous en justifiant vos résultats sur votre copie.
Zone occupée Zone utile (si zone
occupée) Zone de recouvrement Adresse
mini
Adresse maxi
Adresse mini
Adresse maxi
Adresse mini
Adresse maxi
Taille occupée
Taille utilisée
(si) MEM1
MEM2 MEM3 MEM4 MEM5
Rappel : Table de vérité du 74LS138.
Entrées
Sorties
Valid Select
G1 G2A G2B C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 X X X X X 1 1 1 1 1 1 1 1
X 1 X X X X 1 1 1 1 1 1 1 1
X X 1 X X X 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 1 1 1 1 1 1 1
1 0 0 0 0 1 1 0 1 1 1 1 1 1
1 0 0 0 1 0 1 1 0 1 1 1 1 1
1 0 0 0 1 1 1 1 1 0 1 1 1 1
1 0 0 1 0 0 1 1 1 1 0 1 1 1
1 0 0 1 0 1 1 1 1 1 1 0 1 1
1 0 0 1 1 0 1 1 1 1 1 1 0 1
1 0 0 1 1 1 1 1 1 1 1 1 1 0
UTBM IF40. Examen final. Page 4
39 X1
38 EX2
RESET 37 2 NMI
40 HALT 3 IRQ
4 FIRQ 36 MRDY 33 DMAB
A0 8 A1 9 A2 10 A3 11 A4 12 A5 13 A6 14 A7 15 A8 16 A9 17 A10 18 A11 19 A12 20 A13 21 A14 22 A15 23
D0 31 D1 30 D2 29 D3 28 D4 27 D5 26 D6 25 D7 24
E 34 Q 35 BA6 BS 5 RW 32 7 VCC
1 VSS
CI1 6809 circuit 40 br
1 A 2 B 3 C
6 G1 4 G2A 5 G2B
Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 VCC 16 GND 8
CI2 74LS138
1 A 2 B 3 C
6 G1 4 G2A 5 G2B
Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 VCC 16 GND 8
CI3 74LS138
10 A0 9 A1 8 A2 7 A3 6 A4 5 A5 4 A6 3 A7 24 A8 25 A9 21 A10 23 A11 2 A12
20 CE 22 OE 27 WE
D0 11 D1 12 D2 13 D3 15 D4 16 D5 17 D6 18 D7 19
RDY 1
VCC 28 GND 14
MEM2
10 A0 11 A1 12 A2 13 A3 14 A4
15 CE
O1 1 O2 2 O3 3 O4 4 O5 5 O6 6 O7 7 O8 9 VCC 16 GND 8
MEM4
10 A0 9 A1 8 A2 7 A3 6 A4 5 A5 4 A6 3 A7 24 A8 25 A9 21 A10 23 A11 2 A12
20 CE 22 OE 27 WE
D0 11 D1 12 D2 13 D3 15 D4 16 D5 17 D6 18 D7 19
RDY 1
VCC 28 GND 14
MEM3
8 A0 7 A1 6 A2 5 A3 4 A4 3 A5 2 A6 1 A7 23 A8 22 A9 19 A10
18 CE 20 OE 21 WE
D09 D110 D211 D313 D414 D515 D616 D717
VCC 24
GND 12
MEM1
5 A0 6 A1 7 A2 4 A3 3 A4 2 A5 1 A6 17 A7 16 A8 15 A9
8 CS 10 WE
D0 14 D1 13 D2 12 D3 11
VCC 18
GND 9
MEM5
GND Vcc
Vcc
GND A15
A14 A13
A12 A11 A10
A0 A1 A2 A3 A4 A5 A6 A7 A9 A8 A10
A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A1
A0 A0
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12
A0 A1 A2 A3 A4
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 S2
S3
S5 S1
S4
S4
S5 S3
S2 S1
Bus d’adresse