TP Circuits logiques programmables

12
TP Circuits logiques programmables NOMS : Date : Objectif final : Programmation simulée et réelles de circuits logiques programmables. La dernière mise en œuvre permettant de pour reconstituer une télécommande IR RC5. Compétences abordées : Concevoir C3.9 : valider une fonction à partir d’une maquette réelle Réaliser C4.3 : Adapter et/ou configurer une structure logicielle. Savoirs abordés : Savoir Description S4.1. Principes de base Représentation et codage des informations : bases de calcul (2,10,16), réels. S9.2 Prototypage rapide avec des outils adaptés Composants programmables numériques (CPLD) Moyens : Ordinateur disposant du logiciel IspLEVER Classic et du logiciel Proteus Une carte d’affichage 2 digits pilotée par CPLD Maquette électronique : télécommande infrarouge avec CPLD ispLSI1016 Câble de programmation : JTAG ↔ port USB ou JTAG ↔ port parallèle PC. Bloc secteur (9V ou 12V) ou alimentation régulée ajustable. Oscilloscope ou analyseur logique. Téléviseur. Conditions : Travail en binôme. Les documents nécessaires à la mise en œuvre de ce TP se trouvent sur le site de la section BTS SN. Durée : 3H45 Compte rendu à la fin de la séance. Prérequis : Notions sur les les opérateurs logiques et tableaux logiques et circuits logiques programmables de type CPLD. Exercice sur les circuits logiques programmables de type PLD et CPLD. TP sur la télécommande universelle. LES MAQUETTES SONT FRAGILES, L'ETUDIANT PRENDRA TOUTES LES PRECAUTIONS NÉCESSAIRES POUR NE PAS LES ENDOMMAGER. HORTOLLAND C. 1/12 TP_Circuits_logiques_programmable_2017_2018.odt

Transcript of TP Circuits logiques programmables

Page 1: TP Circuits logiques programmables

TP Circuits logiques programmables

NOMS : Date :

Objectif final : – Programmation simulée et réelles de circuits logiques programmables. La dernière mise en œuvre

permettant de pour reconstituer une télécommande IR RC5.

Compétences abordées :Concevoir C3.9 : valider une fonction à partir d’une maquette réelle

Réaliser C4.3 : Adapter et/ou configurer une structure logicielle.

Savoirs abordés :Savoir Description

S4.1. Principes de base Représentation et codage des informations : bases de calcul (2,10,16), réels.

S9.2 Prototypage rapide avec des outilsadaptés

Composants programmables numériques (CPLD)

Moyens : – Ordinateur disposant du logiciel IspLEVER Classic et du logiciel Proteus– Une carte d’affichage 2 digits pilotée par CPLD – Maquette électronique : télécommande infrarouge avec CPLD ispLSI1016– Câble de programmation : JTAG ↔ port USB ou JTAG ↔ port parallèle PC.– Bloc secteur (9V ou 12V) ou alimentation régulée ajustable.– Oscilloscope ou analyseur logique.– Téléviseur.

Conditions : – Travail en binôme.– Les documents nécessaires à la mise en œuvre de ce TP se trouvent sur le site de la section BTS SN.– Durée : 3H45– Compte rendu à la fin de la séance.

Prérequis : – Notions sur les les opérateurs logiques et tableaux logiques et circuits logiques programmables de type

CPLD.– Exercice sur les circuits logiques programmables de type PLD et CPLD.– TP sur la télécommande universelle.

LES MAQUETTES SONT FRAGILES, L'ETUDIANT PRENDRA TOUTES LES PRECAUTIONSNÉCESSAIRES POUR NE PAS LES ENDOMMAGER.

HORTOLLAND C. 1/12 TP_Circuits_logiques_programmable_2017_2018.odt

Page 2: TP Circuits logiques programmables

TP Circuits logiques programmables

I. Présentation

Ce TP permet de revoir le principe de fonctionnement des circuits logiques programmables, puis de créerdes fichiers jedec et de vérifier leur bon fonctionnement, soit par simulation, soit par programmation d'une maquette.

Les documents nécessaires pour réaliser ce TP (schéma Proteus, projet IspLever) sont à télécharger sur lesite. Vous les stockerez dans un sous-répertoire à votre nom. Le PC doit être en mode administrateur.

II. Simulation du fonctionnement d'un décodeur binaire/7segments

Le fichier "Decodeur_16V8_Cathode_commune.DSN" contient le schéma ci-dessous :DSW1 Afficheur

0 0 0 0 0

0 0 0 1 1

0 0 1 0 2

0 0 1 1 3

0 1 0 0 4

0 1 0 1 5

0 1 1 0 6

0 1 1 1 7

1 0 0 0 8

1 0 0 1 9

1 0 1 0 A

1 0 1 1 B

1 1 0 0 C

1 1 0 1 D

1 1 1 0 E

1 1 1 1 F

On souhaite que pour chaque valeur entrée sur le dip switch DSW1 soit affiché l’équivalent hexadécimal de cette valeur.

1. Sur le site du TP une vidéo illustre le fonctionnement souhaité. Visionner cette vidéo.2. L'afficheur est à cathode commune, quel niveau logique au point a, b, c, … permet d'allumer le

segment correspondant ? →

3. Télécharger le projet "Decodeur_bin_7seg" pour l'ouvrir avec IspLEVER. 4. Quelle est la référence du circuit logique programmable sélectionné dans le projet ? →

5. Vous disposez sur le Document ANNEXE 1 du contenu du fichier "dec_Cathode_commune.vhd". Compléter d'abord ce document puis le fichier correspondant sur votre ordinateur. A noter : le langage utilisé dans ce fichier est le VHDL.

6. Créer le fichier JEDEC.7. Sous PROTEUS ISIS ouvrir le schéma du décodeur, et dans les propriétés de U1, sélectionner le

fichier "decodeur_bin_7seg.jed" qui vient d'être créé avec ispLEVER.8. Lancer la simulation, et agir sur les interrupteurs du dipswitch pour les 16 combinaisons.

Faire constater le bon fonctionnement

HORTOLLAND C. 2/12 TP_Circuits_logiques_programmable_2017_2018.odt

CLK/I01

I12

I23

I34

I45

I56

I67

I78

I89

OE/I911

IO019

IO1 18

IO217

IO316

IO4 15

IO514

IO613

IO7 12

U1

AM16V8

R1 220R

R2 220R

R3 220R

R4 220R

R5 220R

R6 220R

R7 220R

R910k

R1010k

R1110k

VDD

OF

FO

N1 2 3 4

8 7 6 5

DSW1DIPSW_4

R1210k

a

g

b

d

e

f

c

Page 3: TP Circuits logiques programmables

TP Circuits logiques programmables

III. Programmation et mise en œuvre d'un décodeur avec un circuit ispLSI2032

On souhaite mettre en œuvre le décodage précédent sur une carte disposant :

• d’un CPLD ispLSI2032

• d’afficheurs à anode commune

• d’un dipswitches à 8 interrupteurs

Le schéma structurel de la carte figure sur le Document ANNEXE 2, le schéma d’implantation descomposants est reproduit ci-dessous.

• Les entrées et sorties seront disposées comme ci-dessous sur la carte :

• La valeur sera entrée par les dipswitches XA, XB, XC et XD

• L’affichage se fera sur le digit de droite (AFF2).

9. Sur le schéma structurel les afficheurs sont-ils à anode ou cathode commune ? →

10. Rappeler la référence du CPLD utilisé dans le projet ? →

11. Identifier sur le schéma, et la carte, la référence exacte du CPLD utilisé : →

12. Modifier en conséquence le référence du circuit dans votre projet.

13. Sauvegarder le fichier « dec_Cathode_commune.vhd » sous le nom« dec_Anode_commune_1016.vhd », fichier que vous importerez dans votre projet à la place duprécédent.

14. Compléter le Document ANNEXE 3, puis le fichier correspondant sur votre ordinateur.

15. Créer le fichier JEDEC.

16. Ouvrir le logiciel LSC IspVM et le paramétrer pour programmer le circuit.

Faire constater le bon fonctionnement.

HORTOLLAND C. 3/12 TP_Circuits_logiques_programmable_2017_2018.odt

Page 4: TP Circuits logiques programmables

TP Circuits logiques programmables

IV. Programmation d'un CPLD pour réaliser une télécommande infrarouge RC5.

On souhaite programmer un CPLD qui, associé à un clavier matricé de 16 touches, permette de réaliser une télécommande RC5 capable de commander une télévision Philips. Les schémas structurel et d'implantation de la carte figurent sur le Document ANNEXE 4.

17. Quelle est la référence du CPLD utilisé ? →

18. Compléter sur le Document ANNEXE 5 le numéro des 8 broches du CPLD qui correspondent aux liaisons avec le clavier.

19. Télécharger le projet "Telecommande_IR_TV.syn" et l'ouvrir avec IspLever. Double cliquer sur le fichier du schéma pour l'ouvrir, puis compléter les numéros de broches en utilisant l'icône :pour modifier le numéro des 8 broches concernées. Sauvegarder le schéma.

20. Le clavier utilisé est constitué d'une matrice de 4 lignes et de 4 colonnes. Des signaux logiques sont envoyés sur les colonnes du clavier depuis le CPLD, et les niveaux logiques des lignes sont lus par leCPLD. Quel est le rôle des résistances R3 à R6 figurant sur le schéma structurel et câblées sur les lignes du clavier →

21. Pour chacune des combinaisons logiques ci-dessous présentées sur les colonnes, compléter les niveaux logiques lus sur les lignes lors de l'appui sur la touche 9.

COL1 COL2 COL3 COL4 ROW1 ROW2 ROW3 ROW4

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

22. Ouvrir le fichier "Encod_tou_RC5.abl" (voir copie sur Document ANNEXE 6) celui-ci contient le tableau de codage des 6 bits correspondant au codage d'une touche dans le codage RC5 (6 bits instruction). Utiliser pour compléter le tableau : • le commentaire en fin de chaque ligne pour connaître la touche enfoncée,• les documents sur le codage RC5 pour connaître les 6 bits qui correspondent,

HORTOLLAND C. 4/12 TP_Circuits_logiques_programmable_2017_2018.odt

Page 5: TP Circuits logiques programmables

TP Circuits logiques programmables

Sauvegarder le fichier.

23. Lancer la création du fichier JEDEC.

24. Alimenter la maquette avec un bloc secteur (9 ou 12V) ou avec une alimentation ajustable, puis programmer le circuit en utilisant l'interface JTAG IspLever (voir photos sur le site). Procédure à suivre pour la programmation indiquée dans le sous-menu « Logiciel ispLever Classic ».

25. Vérifier que la télécommande fonctionne bien sur la télévision.

Faites constater le bon fonctionnement

26. Dans votre projet remplacer la référence du circuit pour un ispLSI2032 et lancer la création du fichier jedec. Que constatez-vous ? → Justifiez en utilisant la documentation des circuits ispLSI consultables sur le site. →

27. Le montage nécessite une horloge basée sur un oscillateur à quartz, • quelle est la fréquence de celui-ci ? → • Entourer ce composant sur le schéma schéma structurel et sur le schéma d'implantation.• Sur quelle broche du CPLD est introduite cette horloge ? →

28. Analyser le fichier « compteur_div_28_abel.abl », en déduire la fréquence du signal logique en sortie du bloc du même nom.

29. Analyser le fichier « compteur_14_etages_abel.abl », puis :•calculer la fréquence du signal logique sur la sortie Q1 → •indiquer le rôle de Q1 dans la génération du code RC5 → •calculer la demie période du signal logique sur la sortie Q8 → •indiquer le rôle de Q8 dans la génération du code RC5 →

30. Afin de vérifier expérimentalement les durées calculées précédemment, rajouter sur le schéma des sorties sur les points test J11, J12 et J16 en vous inspirant de la vidéo accessible sur le site dans le sous-menu « Logiciel ispLever Classic ». Créer le nouveau fichier JEDEC et programmer le circuit. Les signaux pourront être relevés avec un oscilloscope ou un analyseur logique.

Faites constater le bon fonctionnement

31. Parmi les 16 entrées du bloc « MUX_16_vers_1 » entourer ci-dessous d'une part celles qui sont utilisées pour indiquer que la télécommande est utilisée sur un téléviseur, et d'autre part celles qui configurent la touche enfoncée.

X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15

HORTOLLAND C. 5/12 TP_Circuits_logiques_programmable_2017_2018.odt

Page 6: TP Circuits logiques programmables

TP Circuits logiques programmables

32. Donner l'équation de I84 = f(Q7,S). Quel est l'intérêt d'associer la sortie Q7 du compteur 14 étages etla sortie du multiplexeur ?

→ →

33. Compléter les chronogrammes ci-dessous :

34. Sans faire de calcul indiquer l'intérêt d'effectuer un décodage logique avec les sorties Q9 à Q13.

35. Quel est l'intérêt d'effectuer un décodage logique avec le signal B6 ?

36. La télécommande gère-t-elle 2 appuis consécutifs sur la même touche comme c'est le cas sur un vraie télécommande ?

HORTOLLAND C. 6/12 TP_Circuits_logiques_programmable_2017_2018.odt

Q7

Q8

Q7

S

I84

X0

Page 7: TP Circuits logiques programmables

TP Circuits logiques programmables

Document Annexe 1

Fichier VHDL à compléter

HORTOLLAND C. 7/12 TP_Circuits_logiques_programmable_2017_2018.odt

Fichier : dec_Cathode_commune.vhd 

ibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;

-- décodeur combinatoire Binaire 4 bits --> Afficheur 7 seg Cathode Communeentity decodeur is

port( Din : in std_logic_vector(3 downto 0);Qut: out std_logic_vector(6 downto 0) );

attribute loc : string;attribute loc of Din : signal is "p2 p3 p4 p5";attribute loc of Qut : signal is end;

architecture decoder of decodeur isbegin process (Din)

begin case Din is

when "0000" => Qut <= "0111111";when "0001" =>when "0010" =>when "0011" =>when "0100" =>when "0101" =>when "0110" =>when "0111" =>when "1000" =>when "1001" =>when "1010" =>when "1011" =>when "1100" =>when "1101" =>when "1110" =>when "1111" =>when others =>

end case;end process;

end decoder;

Page 8: TP Circuits logiques programmables

TP Circuits logiques programmables

Document Annexe 2Schéma structurel de la carte afficheurs avec CPLD

HORTOLLAND C. 8/12 TP_Circuits_logiques_programmable_2017_2018.odt

Page 9: TP Circuits logiques programmables

TP Circuits logiques programmables

Document Annexe 3

Fichier VHDL à compléter

HORTOLLAND C. 9/12 TP_Circuits_logiques_programmable_2017_2018.odt

Fichier : dec_Anode_commune_2032.vhd

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;

-- décodeur combinatoire Binaire 4 bits --> Afficheur 7 seg Anode Communeentity decodeur is

port( Din : in std_logic_vector(3 downto 0);Qut: out std_logic_vector(6 downto 0) );

attribute loc : string;attribute loc of Din : signal is attribute loc of Qut : signal is end;

architecture decoder of decodeur isbegin process (Din)

begin case Din is

when "0000" =>when "0001" =>when "0010" =>when "0011" =>when "0100" =>when "0101" =>when "0110" =>when "0111" =>when "1000" =>when "1001" =>when "1010" =>when "1011" =>when "1100" =>when "1101" =>when "1110" =>when "1111" =>when others =>

end case;end process;

end decoder;

Page 10: TP Circuits logiques programmables

TP Circuits logiques programmables

Document Annexe 4Schémas structurel et d'implantation de la maquette télécommande infrarouge à CPLD

HORTOLLAND C. 10/12 TP_Circuits_logiques_programmable_2017_2018.odt

Page 11: TP Circuits logiques programmables

TP Circuits logiques programmables

Document Annexe 5

Schéma de programmation IspLEVER à compléter

HORTOLLAND C. 11/12 TP_Circuits_logiques_programmable_2017_2018.odt

Page 12: TP Circuits logiques programmables

TP Circuits logiques programmables

Document Annexe 6

Fichier ABEL à compléter

MODULE Encod_tou_RC5

TITLE 'Encodage touches clavier matriciel pour RC5'

"InputsC4..C1 pin ; L4..L1 pin ;

"OutputsB6..B0 pin istype 'com';BIN=[B6..B0];

Equations

@dcset "Autorise les simplifications logiques pour les états non utilisés

EquationsWHEN (C1==1) & (L1==1) THEN BIN =[1, , , , , , ] ;"Touche 1ELSE WHEN (C1==1) & (L2==1) THEN BIN =[1, , , , , , ] ;"Touche 4ELSE WHEN (C1==1) & (L3==1) THEN BIN =[1, , , , , , ] ;"Touche 7ELSE WHEN (C1==1) & (L4==1) THEN BIN =[1, , , , , , ] ;"Touche * = Vol + ELSE WHEN (C2==1) & (L1==1) THEN BIN =[1, , , , , , ] ;"Touche 2ELSE WHEN (C2==1) & (L2==1) THEN BIN =[1, , , , , , ] ;"Touche 5ELSE WHEN (C2==1) & (L3==1) THEN BIN =[1, , , , , , ] ;"Touche 8ELSE WHEN (C2==1) & (L4==1) THEN BIN =[1, , , , , , ] ;"Touche 0ELSE WHEN (C3==1) & (L1==1) THEN BIN =[1, , , , , , ] ;"Touche 3ELSE WHEN (C3==1) & (L2==1) THEN BIN =[1, , , , , , ] ;"Touche 6ELSE WHEN (C3==1) & (L3==1) THEN BIN =[1, , , , , , ] ;"Touche 9ELSE WHEN (C3==1) & (L4==1) THEN BIN =[1, , , , , , ] ;"Touche # = Vol -ELSE WHEN (C4==1) & (L1==1) THEN BIN =[1, , , , , , ] ;"Touche A = External 1ELSE WHEN (C4==1) & (L2==1) THEN BIN =[1, , , , , , ] ;"Touche B = External 2ELSE WHEN (C4==1) & (L3==1) THEN BIN =[1, , , , , , ] ;"Touche C = mute/de-muteELSE WHEN (C4==1) & (L4==1) THEN BIN =[1, , , , , , ] ;"Touche D = StandbyELSE BIN = [0,0,0,0,0,0,0] ;"Par défaut pas d'émission

END

HORTOLLAND C. 12/12 TP_Circuits_logiques_programmable_2017_2018.odt