• Aucun résultat trouvé

Exercice 1 : axe horizontal

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 1 : axe horizontal"

Copied!
4
0
0

Texte intégral

(1)

UTBM. Département Energie. DUREE 2 HEURES.

Médian IF40. Page 1/4

Documents non autorisés. Calculatrice autorisée.

Les programmes que vous écrirez doivent être commenté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 TMS320C28335 cadencé à 150 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 -30V à 30V en ajustant , le rapport cyclique des signaux ePWM1A et ePWM1B. La fréquence de ces signaux est de 10 kHz. Les transistors requièrent un délai de sécurité (ou temps mort) de 1 s. La sortie ePWM1A est active au niveau bas.

1.1) Écrire en langage C la fonction initPWM réalisant l’initialisation du module ePWM1, des broches PWM utilisées, et l’initialisation des signaux PWM 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 à 20A. Cette sonde est reliée à l’entrée ADCINA0 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,5V. Elle est reliée à l’entrée ADCINA5 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

E

ePWM1A

ePWM1B

ePWM1A ePWM1B

30 Volts

(2)

Final IF40. Page 2/4

continue UT. La tension continue UT qui varie entre 0 et 3V est appliquée à l’entrée ADCINA6 du convertisseur analogique numérique du DSP.

1.2) Écrire en langage C la fonction INITADC réalisant l’initialisation du module ADC en mode start/stop et séquenceur cascadé pour permettre la conversion de la voie 0, puis de la voie 5, puis de la voie 6, respectivement. La conversion sera déclenchée logiciellement.

1.3) Écrire en langage C la fonction MESURES qui réalise la conversion analogique numérique des voies 0,5 et 6 stocke les résultats dans les variables Imcc, Ucom et Ut respectivement (on considèrera ces variables déjà déclarées comme variables globales de type unsigned int).

Le moteur est mis en fonctionnement par la fermeture d’un contact de relais piloté par la broche GPIO0.

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 GPIO1 et le capteur de fin de course gauche est relié à la broche GPIO2. Un bouton départ de cycle est relié à l’entrée GPIO3. On doit configurer GPIO0 en sortie, GPIO1 GPIO2 et GPIO3 en entrée.

 GPIO0 au niveau logique 1  le moteur peut fonctionner.

 GPIO0 au niveau logique 0  le moteur est à l’arrêt.

 Fin de course gauche détectée  GPIO2 = 1 sinon GPIO2= 0

 Fin de course droite détectée  GPIO1 = 1 sinon GPIO1 = 0

  sur GPIO3  départ de cycle.

1.4) Écrire en langage C la fonction INITPORT initialisant les GPIOs sachant que le moteur doit être à l’arrêt à la fin de l’initialisation.

Le cycle de fonctionnement est le suivant :Si GPIO0 =0 si l’axe est à gauche (GPIO2=1), après un front montant sur le bouton départ de cycle ( sur GPIO3) 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 (GPIO1=1), il se déplace vers la gauche (toujours à la même vitesse) et revient en position initiale (fin de course gauche GPIO2=1).

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,9. 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, ce qui correspond à un rapport cyclique  de la tension Umcc variant entre 0,5 et 0,1.

1.5) 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. On tronquera les résultats si besoin.

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,5V, la vitesse demandée est de 3000 tr.min-1. La fonction |𝑣𝑖𝑡𝑒𝑠𝑠𝑒| en fonction de Ucom est une fonction affine proportionnelle: vitesse = f(Ucom).

1.6) Calculer les résultats N0 et N1 de la conversion analogique numérique correspondant respectivement aux valeurs de Ucom de 0V et 2,7V. On tronquera les résultats si besoin.

(3)

Final IF40. Page 3/4

Une variable globale 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.

1.7) Écrire en langage C la fonction VITESSE qui utilise 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.6) permettant de faire varier la vitesse.

1.8) Écrire en langage C la fonction MOUVEMENT qui réalise le déplacement de l’axe de gauche vers la droite puis de droite vers la gauche décrit précédemment. Si l’une des deux conditions initiales n’est pas respectée, on sort directement de la fonction.

1.9) Écrire en langage C le programme principal qui réalise les initialisations et pilote le moteur en fonction de la vitesse. 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 bits et l’organisation en nombre de mots et taille des mots (N mots de M bits).

2.2) Compléter le tableau ci-dessous (DR1) en justifiant vos résultats, les tailles mémoires seront données en mots sur le document DR2.

Document réponse DR1.

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

MEM1 MEM2 MEM3 MEM4 MEM5

Document réponse DR2.

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

(4)

Final IF40. Page 4/4

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

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 A1018 A1119 A1220 A1321 A1422 A1523

D0 31 D1 30 D2 29 D3 28 D4 27 D5 26 D6 25 D7 24

E 34 Q35 BA6 BS5 RW32 7 VCC

1 VSS

CI1 6809 circuit 40 br

1 A 2 B 3 C

6 G1 4 G2A 5 G2B

Y015 Y114 Y213 Y312 Y411 Y510 Y69 Y77 VCC16 GND8

CI2 74LS138

1 A 2 B 3 C

6 G1 4 G2A 5 G2B

Y015 Y114 Y213 Y312 Y411 Y510 Y69 Y77 VCC16 GND8

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

RDY1

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

RDY1

VCC28 GND14

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

D0 9 D1 10 D2 11 D3 13 D4 14 D5 15 D6 16 D7 17

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

S2 S3

Références

Documents relatifs

Quelle est la précision de la mesure, sachant qu’en sélection- nant comme tension de référence la source interne à 2,56 V, la valeur fournie par le convertisseur est directement

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

La conversion est effectuée en une seule étape, mais le résultat disponible à la sortie des comparateurs doit encore être encodé à l’aide d’une logique très rapide

Exercice n°1 : Lorsque cette ampoule fonctionne normalement, la tension appliquée est égale à , l’intensité ainsi mesurée est de.. Calculer la puissance de

Pour mesurer la tension , la borne du voltmètre doit être branchée sur la borne A du dipôle et la borne COM du voltmètre doit être branchée sur la borne B du dipôle..

« un voyage de mille lieues commence toujours pas un premier pas » - Lao Tseu Formulé par Peano Guiseppe (1858 – 1932) : professeur à l’université de Turin.. Le raisonnement

Cours de Frédéric Mandon sous licence Creative Commons BY NC SA, http://creativecommons.org/licenses/by-nc-sa/3.0/fr/1. • La symétrie par rapport à la première bissectrice

[r]