énergies d entrée consignes Laboratoire de Sciences Industrielles pour l Ingénieur S4 - Comportement des systèmes S43 - Modélisation des systèmes multi-physiques S4312 Comportement des systèmes logiques TRAVAUX PRATIQUES LOGIQUE COMBINATOIRE : GESTION D'UN AFFICHEUR MISE EN SITUATION BARRIERE MOTORISEE SYMPACT Ecran de contrôle du convertisseur Lisse Moteur de la lisse + système de transmission Convertisseur de puissance d alimentation du moteur de la lisse (variateur de vitesse) Chaîne d information ordres AFFICHER CONSIGNE grandeurs physiques à acquérir ALIMENTER DISTRIBUER CONVERTIR TRANSMETTRE ACTION Chaîne d énergie CPGE TSI_1 1
Aujourd'hui tous les variateurs de vitesse industriels sont à commande numérique. Cette numérisation de l'information permet d'envisager très simplement une interface logique avec un terminal d'affichage. Ces variateurs intègrent tous un terminal constitué d'afficheurs sept segments et de boutons de commande permettant de choisir la variable numérique affichée. Par défaut, l'affichage est alloué à la fréquence des tensions d'alimentation de la machine asynchrone raccordée au variateur. La mise en place d'une logique combinatoire est nécessaire pour convertir une donnée numérique exprimée sur n bits en un code lisible sur un ou des afficheurs sept segments. Pour le TP nous limiterons nos ambitions à la gestion d'un seul afficheur. TRAVAIL PREPARATOIRE Nous vous proposons d utiliser une carte didactique équipée d un circuit numérique programmable de la famille des FPGA pour Full Programmable Gate Array, soit un réseau de portes logiques entièrement programmable. La programmation du circuit se fait à l aide du logiciel ISE 14.1 de la société XILINX, permettant le développement d une application sur une cible XILINX SPARTAN 3 E (FPGA XILINX qui intègre 100 000 portes logiques). Le document ressource 1 montre les entrées / sorties disponibles pour développer une application pratique. Nous disposons de : 8 commutateurs SW0 à SW7 4 boutons poussoirs BTN0 à BTN3 8 leds LD0 à LD7 4 afficheurs 7 segments AF0 à AF3 L exercice consiste à proposer un code binaire sur 4 bits en utilisant les commutateurs SW3 à SW0, soit 16 combinaisons binaires différentes et de traduire ces 16 combinaisons en un caractère alphanumérique sur l afficheur 7 segments (afficheur AF0) situé à droite sur la carte tel que l affichage produit donne: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, pour chaque combinaison des variables d entrée SW3 à SW0. 1/ compléter la table de vérité du problème en vous aidant du document ressource 1. SW3 SW2 SW1 SW0 symbole a b c d e f g 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 2 1 0 0 1 1 3 1 0 1 0 0 4 0 0 1 0 1 5 1 0 1 1 0 6 1 0 1 1 1 7 1 1 0 0 0 8 1 1 0 0 1 9 1 1 0 1 0 A 1 1 0 1 1 B 0 1 1 0 0 C 1 1 1 0 1 D 0 1 1 1 0 E 1 1 1 1 1 F 1 CPGE TSI_1 2
Le schéma de la carte FPGA sur le document ressource 1 donne les repères des pattes du composant reliées aux différentes entrées / sorties. Par exemple, le switch SW0 est relié à la patte repérée P11. Toutes les led de chaque afficheur sont reliées entre elles par leur anode. On parle dans ce cas, d'afficheur à anode commune. Pour que l'afficheur fonctionne, il est nécessaire d'amener ces anodes communes au potentiel "plus" de la source 3.3V et pour allumer une led (un segment) en particulier, il est nécessaire d'amener la cathode de la led au potentiel "zéro". Remarquons que ces anodes communes sont alimentées au +3.3V par l'intermédiaire d'un transistor commandé par une sortie du FPGA. En pratique, si tous les segments doivent être allumés, le courant à fournir à l'afficheur serait de 7 fois le courant d'un segment.valeur trop intense pour une sortie du FPGA. Cette difficulté est résolue grâce à l'utilisation de 4 transistors. Une sortie FPGA forcée au 0L commande un transistor à la fermeture, lequel alimente l'afficheur auquel il est relié. Exemple: on souhaite allumer le segment "d" des afficheurs "AN_0" et "AN_2". Il faut: Forcer les sorties F12 (afficheur AN_0) et M13 (afficheur AN_2) au 0L Forcer la sortie N11 (segment d) au 0L 2/ partant de ces explications, proposer les niveaux logiques des sorties concernées par l'allumage du segment f de l'afficheur AN_3. Réponse: 3/ compléter le tableau récapitulant l'association entrées/soties et repères des pattes du FPGA. Nous utiliserons les switch SW7 à SW4 pour sélectionner indépendamment chaque afficheur AN_3 à AN_0. ENTREE PATTE PATTE SORTIE SW7 N3 L14 SEGMENT A SW6 SEGMENT B SW5 SEGMENT C SW4 SEGMENT D SW3 SW2 SW1 SW0 SEGMENT E SEGMENT F SEGMENT G Méthodologie APPRENTISSAGE A LA PROGRAMMATION SCHEMATIQUE : allumage du segment a d'un afficheur 1/ créer un nouveau projet Lancer le logiciel de programmation XILINX Clic onglet File/New Project 2/ renseigner Name : nom du projet Family : Spartan 3 E Device : XC3S100E Package : CP132 CPGE TSI_1 3
3/ créer une nouvelle fenêtre d'édition d'un fichier source Clic droit dans la fenêtre Empty View et clic New Source Schematic File Name : nom du fichier 4/ créer le schéma en utilisant la bibliothèque de composants (Onglet librairie en bas à gauche de l'écran). Choisir la fonction LUT (Look Up Table) qui synthétise une table de vérité à 4 entrées. 5/ ajouter des lignes de câblage sur les entrées. Clic onglet Wire. CPGE TSI_1 4
6/ ajouter des markers d'entrée / sortie. Clic Add I/O Marker. 7/ les renommer de façon mnémotechnique par double clic sur le marker Choisir le nom du Net (la liaison en français) Ecrire par exemple "SW3" pour l'entrée I3 du LUT 8/ ajouter une commande de sélection de l'afficheur AN_0 (afficheur de droite) par le swithc SW4. On insère des portes inverseuses pour raisonner sur une commande de sélection active au 1L (fermeture du switch). 9/ configurer la table de vérité LUT4 en double cliquant dessus. En vous aidant du document ressource 2, vérifier que la sortie de la table vaut (D7ED) en hexadécimal ou encore (1101 0111 1110 1101) en binaire si l'on lit les valeurs de la sortie "segment a" de bas en haut de la table. Compléter la valeur d'initialisation de la sortie telle que proposé. 10/ en bas à gauche de l'écran, Clic onglet "Design" Onglet Design Utilities Clic check design rules, pour vérifier la conformité du schéma CPGE TSI_1 5
11/ demander une première compilation du projet Clic sur le triangle vert 12/ créer les liens avec les entrées sorties physiques du composant Double Clic sur I/O Pin Planning 13/ affecter les entrées/sorties physiques aux markers du schéma Repérer sur la carte le code (lettre+numéro) de la patte du composant reliée chaque switch, le segment a, la sélection de l'afficheur de droite. Choisir dans la liste colonne Site et affecter chaque marker à une patte du FPGA. 14/ clic sur "Save Design" génère le fichier texte.ucf. Il s'agit d'un fichier texte accessible depuis l'arborescence du projet. CPGE TSI_1 6
15/ relancer la compilation générale (clic sur triangle vert) 16/ générer le fichier binaire Double clic sur "generate programming file" Génère le fichier binaire.bit 17/ lancer le logiciel Adept de Digilent. Permet le transfert du fichier.bit dans le FPGA Connect carte Basys2 Si choix PROM le programme sera chargé dans la PROM permanente du FPGA. Dans ce cas, le programme sera exécuté dès que la carte est sous tension à condition de placer le jumper JP3 en mode ROM et non PC. Si choix FPGA le programme sera chargé dans la RAM volatile du FPGA. Nous ferons ce choix. Clic "Browse" pour appeler le fichier binaire Clic "Program" pour transférer APPLICATION PRATIQUE : gestion d'un afficheur complet 1/ compléter le schéma en ajoutant la sélection des afficheurs AN_1, AN_2, AN_3 par les switch SW6, SW7, SW8. 2/ ajouter les six tables de vérité manquantes pour gérer les sept segments. Les configurer (case INIT) en utilisant les résultats de la question 1 du travail préparatoire. 3/ affecter les entrées / sorties selon le tableau de la question 3 du travail préparatoire. 4/ compiler le programme pour générer le fichier binaire. 5/ transférer dans la carte. 6/ tester le fonctionnement. CPGE TSI_1 7
DOCUMENT RESSOURCE 1 Afficheur de gauche Afficheur de droite Cathode segment A ENTREES / SORTIES DE LA CARTE XILINX BASYS2 REPERAGE DES SEPT SEGMENTS CPGE TSI_1 8
CPGE TSI_1 9 DOCUMENT RESSOURCE 2
CPGE TSI_1 10 DOCUMENT REPONSE