Travaux Dirigés Microprocesseur et Microcontrôleur



Documents pareils
MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

La programmation des PIC en C. Les fonctions, les interruptions.

Flowcode - Mode d'emploi

PIC : COURS ASSEMBLEUR

Informatique Industrielle

PIC EVAL Dev Board PIC18F97J60

PIC 16F84. Philippe Hoppenot

ASR1 TD7 : Un microprocesseur RISC 16 bits

GPA770 Microélectronique appliquée Exercices série A

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

1. PRESENTATION DU PROJET

TD Architecture des ordinateurs. Jean-Luc Dekeyser

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Architecture des ordinateurs

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

REALISATION d'un. ORDONNANCEUR à ECHEANCES

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Ordinateurs, Structure et Applications

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

TER Licence 3 Electronique des Télécoms Transmission GSM

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

CONFIGURATION DE L AUTOMATE SIEMENS

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

ELP 304 : Électronique Numérique. Cours 1 Introduction

VIII- Circuits séquentiels. Mémoires

Le multiplexage. Sommaire

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Partie Agir : Défis du XXI ème siècle CHAP 20-ACT EXP Convertisseur Analogique Numérique (CAN)

Fiche technique CPU 315SN/PN (315-4PN33)

Traitement de données

Carte ARDUINO UNO Microcontrôleur ATMega328

Cours Informatique 1. Monsieur SADOUNI Salheddine

Présentation et installation PCE-LOG V4 1-5

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Fiche technique CPU 314SC/DPM (314-6CG13)

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

Programmation C. Apprendre à développer des programmes simples dans le langage C

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

PROGRAMMATION D'UN MICROCONTRÔLEUR

LOGICIEL DC4D MONITOR

CH.3 SYSTÈMES D'EXPLOITATION

Modules d automatismes simples

CONVERTISSEURS NA ET AN

ARCEAU DE PARKING MOTORISÉ VIGIPARK

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

IV- Comment fonctionne un ordinateur?

Millenium3 Atelier de programmation

Informatique Générale

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

V- Manipulations de nombres en binaire

Partie 7 : Gestion de la mémoire

ANALYSE TRAMEs LIAISON SERIE

Algorithme. Table des matières

CAA/SE N O T I C E D E M O N T A G E E T D U T I L I S A T I O N KIT DE MONTAGE. Clavier lumineux codes DIGICODE

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

NOTICE D INSTALLATION CENTRALE 260

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Microprocesseur + Logiciel

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

hager Logiciel PC pour configurateur Radio Tebis TX 100 Manuel d utilisation 6T7266

Débuter avec PsoC ou PsoC niveau 0

UE Programmation Impérative Licence 2ème Année

ENREGISTREUR DE TEMPERATURE

Manipulations du laboratoire

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

THEMIS-ACCES GESTION DES TEMPS ET DES ACCES

Temps Réel. Jérôme Pouiller Septembre 2011

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

République Tunisienne Ministère de l'education. Sciences Techniques. Manuel d activités. Les auteurs. Ali ZITOUNI Inspecteur des lycées et collèges

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

ProCod. Manuel d utilisation. Software de programmation pour codeurs absolus TWK modèles CRF et DAF CRF DF 08 / 10

Organigramme / Algorigramme Dossier élève 1 SI

Cours 1 : Qu est-ce que la programmation?

2013 Nos nouveaux outils basés sur Arduino

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

QUESTION 1 {2 points}

Manuel de référence du langage Exemples Les aventures de Docteur R.

Compilation (INF 564)

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

ET 24 : Modèle de comportement d un système Introduction à Labview et initiation à la réalisation d un Instrument Virtuel (VI).

IUT BREST UN LOGICIEL SCADA : PC VUE 2010 DEP.GMP

Descriptif de Kelio Protect

Documentation Technique du programme HYDRONDE_LN

TP Modulation Démodulation BPSK

TP - Alarme de voiture / Approche fonctionnelle

Tests de performance du matériel

La mémoire. Un ordinateur. L'octet. Le bit

Chapitre 4 : Les mémoires

UP 588/13 5WG AB13

Acquisition et conditionnement de l information Les capteurs

Equipement. électronique

Cours 1 : La compilation

Centrale de surveillance ALS 04

Architecture de la Gestion du Technique du Bâtiment.

Transcription:

Université de Savoie Travaux Dirigés Microprocesseur et Microcontrôleur Sylvain MONTAGNY sylvain.montagny@univ-savoie.fr Bâtiment chablais, bureau 13 04 79 75 86 86 TD1 : Rappels et jeu d instruction TD2 : Timer, Port E/S d un microcontrôleur TD3 : Les interruptions TD4 : Gestion d afficheur 7 segments TD5 : Conversion Analogique/Numérique Retrouver tous les documents de Cours/TD/TP sur le site www.master-electronique.com

Université de Savoie Module ETRS-604 Microprocesseurs & Microcontrôleurs TD 1 Rappels et jeu d instruction I. Système à microprocesseur Un processeur 64 bits stocke les données binaires qu il traite dans des circuits intégrés de mémoire RAM. La capacité de chaque circuit mémoire est de 4 Mo, les données binaires étant organisées en mots de 64 bits. La capacité totale de l ensemble des mémoires vives est de 32 Mo. Q1. De combien de circuits différents est constitué l ensemble de la mémoire vive associée à ce processeur? Q2. Donner le nombre de cases mémoires disponibles dans chaque circuit RAM ainsi que le nombre total de cases mémoires pour l ensemble des circuits. Q3. Quelle doit être la taille minimum du bus d adresse de ce processeur? Quelle est l adresse la plus haute et l adresse la plus basse (en hexadécimal) accessible par le processeur? La taille du bus d adresse sera désormais la taille minimum que vous venez de trouvez. Q4. Parmi l ensemble des bits constituant le bus adresse, donner le nombre de bits réservés à la sélection d un circuit mémoire (boitier) et le nombre de bits réservés à la sélection d un emplacement dans cette mémoire. Q5. Donner les adresses de début et de fin des quatre premiers circuits en complétant le tableau ci-dessous.

Circuits A 21 A 20 A 19 A 16 A 15 A 12 A 11 A 8 A 7 A 4 A 3 A 0 Adresses Hexadécimal Fin RAM 3 Début Fin RAM 2 Début RAM 1 Fin Début Fin RAM 0 Début Tableau 1 : Adressage des circuits RAM Q6. Représentez sur un schéma l ensemble des circuits, du processeur et des bus (on ne représentera que deux RAMs). On devra faire apparaitre clairement le nombre de fils sur chaque partie des bus. Q7. Donnez un exemple d architecture réalisant le décodage d adresse. II. Instructions dans un PIC 16F877 Vous trouverez toutes les informations nécessaires dans la documentation du microcontrôleur PIC16877A. 1. Taille des mémoires Q8. Quelle est la quantité mémoire disponible pour stocker le programme dans votre microcontrôleur? Pouvez vous retrouver la cohérence entre la taille de la mémoire programme et la taille du registre PC (Program Counter). Q9. Quelle est la quantité mémoire disponible pour stocker des données dans votre microcontrôleur? 2. Jeu d instruction Q10. Combien de cycle instruction prend chacune des instructions? Q11. Combien de cycle horloge prend chacune des instructions? Le programme suivant est écrit en assembleur. Il fait varier la valeur de sortie du bit 0 du PORTB. L utilisateur voudrait réaliser un signal carré en sortie. MOVLW FEh ; MOVWF TRISB ; // Configuration du bit PORTB.0 en sortie BOUCLE BCF TRISB,0; BSF TRISB,0; GOTO BOUCLE;

Q12. Donner le code C correspondant. Q13. En prenant en compte les temps de chacune des instructions, tracer le chronogramme du PORTB. Quelle remarque peut-on faire sur le rapport cyclique du signal par rapport au souhait initial du programmeur? Application du TP : Q14. Quelle mesure pouvez-vous effectuer pour mesurer le temps de cycle instruction de ce microcontrôleur?

Université de Savoie Module ETRS-604 : Microprocesseurs & Microcontrôleurs TD 2 Timer, Port E/S d un microcontrôleur I.Les Timers du PIC 16F87XA 1. Présentation des Timer 1.1. Choix du mode compteur / temporisateur. Q1. Quel est la différence entre un compteur et un temporisateur? Donner deux exemples extrêmement simples d utilisation de ces deux modes. Q2. Quels sont les bits qui permettent de sélectionner le mode compteur ou temporisateur pour les Timers 0 et Timer 1? Quelle est la particularité du Timer 2 vis-à-vis de ces deux modes de fonctionnement? Q3. Lors du fonctionnement en mode compteur pour le Timer 0, comment peut-on décider du front déclenchant une incrémentation du compteur? 1.2. Caractéristiques des Timers Q4. Quelle est la plage de valeur que peut prendre le Timer 0, Timer 1 et Timer 2? On considère maintenant un cadencement du PIC à 4Mhz, et une utilisation en mode temporisateur du Timer 0. Q5. Expliquer l utilité et le fonctionnement du module PRESCALER. Q6. Dans le cas ou le timer n utilise pas de prescaler (PSA=1) quelle sera la période de positionnement du bit de fin de comptage (overflow) TMR0IF. Q7. Quelle valeur doit-on placée dans le TMR0 si nous souhaitons mesurer un temps de 156µs. La période maximal du timer est très faible au regard de beaucoup d applications. Ainsi, un «Prescaler» peut être implémenté dans le fonctionnement des Timers. Q8. Remplir le tableau suivant relatif au temps de débordement du Timer 0 en fonction du prescaler utilisé.

PSA PS2 PS1 PS0 Timer 0 prescaler 0 0 0 0 2 0 0 0 1 4 0 0 1 0 8 0 0 1 1 16 0 1 0 0 32 0 1 0 1 64 0 1 1 0 128 0 1 1 1 256 Temps de débordement du Timer 0 (en µs) Q9. Donner la configuration que vous choisiriez pour un débordement du Timer au bout de 1,3ms. 2. Programmation du timer Une méthode classique pour attendre un certain temps dans un programme est de réaliser une boucle de temporisation souvent appelée par l étiquette : TEMPO. Cette méthode est basée sur la programmation d une boucle en langage assembleur. En effet, en connaissant le nombre d instructions utilisées ainsi que le nombre de cycles pour exécuter ces instructions, on peut aisément effectuer un temps d attente. Cette méthode est cependant assez lourde puisque qu il faut prendre en compte toutes les instructions de notre boucle. Une méthode plus rigoureuse est donc d utiliser le timer disponible dans le microcontrôleur. Q10. Proposez un organigramme qui permettra de compter un temps de 256µs (temps le plus élevé sans prescaler) qui servira de période pour exécuter un petit programme quelconque. La fin du comptage sera surveillée par le flag d overflow qui correspond à la fin de comptage du timer. 256µs Programme quelconque 256 µs Programme quelconque 256 µs etc à l infini. Note : Un organigramme est une succession de rectangles (actions à mener) et de losanges (tests) qui représentent l algorithme du programme à réaliser. Q11. Proposez un code langage C pour cet organigramme. II.Port d entrée sortie du PIC 16F87XA 1. Structure logique des entrées / sorties L architecture des bits 0:3 du port A est présentée dans la datasheet. Q1. Quel doit être le fonctionnement des transistors P et N pour obtenir un «1» logique en sortie? Pour obtenir un «0»? Q2. Quelle doit être le fonctionnement des transistors P et N pour une configuration du port A en entrée? Quelle est le nom de cette structure de sortie logique.

Que le port soit configuré en entrée ou en sortie, il est toujours possible d effectuer une lecture du port. Q3. Expliquez le fonctionnement d une lecture du port A vers le bus de donnée interne (Data Bus). L architecture du bit 4 du port A est présentée dans la datasheet. Q4. Quel est le nom de cette structure logique de sortie. Q5. Quelle particularité possède la structure logique d entrée de RA4 (bit 4 du port A)? 2. Programmation des entrées / sorties Le schéma ci-dessous représente une application simple d allumage d une led par appuis d un bouton poussoir. Figure 1 : Allumage d'une led par bouton poussoir Q6. Donner l organigramme du programme qui allume la led lors de l appui du bouton poussoir, et qui éteint la led lors du relâchement. Note : Prenez soin de vérifier comment fonctionne le PORTA en sortie et le PORTB en entrée. Q7. Ecrire le programme C correspondant.

Université de Savoie Module ETRS-604 Microprocesseurs & microcontrôleurs TD 3 Les interruptions Nous allons étudier deux microcontrôleurs dont la gestion des interruptions est sensiblement différente. I. Interruption dans un ADuC812 Le fabriquant de microcontrôleur Analog Device est très réputé pour l utilisation d électronique embarqué dans le domaine de la mesure. Dans le microcontrôleur ADuC812, il intègre un cœur 8051 très connu et extrêmement utilisé. 1. Configuration des interruptions La documentation technique du microcontrôleur ADUC812 d Analog Device est donnée en annexe. Q1. Combien de sources différentes peuvent interrompre le µc? Q2. Qu appelle t-on le masquage d interruption? Quel registre est concerné? Q3. Donnez la procédure pour autoriser l ensemble des interruptions suivantes : le timer0, la liaison série et le convertisseur A/D. Q4. L événement lié au module timer qui crée une interruption, est son débordement. Retrouver les évènements liés aux autres modules qui créent interruptions. Vous remplirez la 2 ème et la 3 ième colonne du Tableau 1. 2. Hiérarchisation : niveau de priorité Q5. Combien de niveaux de priorités peut-on choisir pour les interruptions? Comment le niveau est- il sélectionné? Q6. D après le paragraphe «interrupt priority» et le tableau XXV, expliquez ce qu il se passe si une interruption d une priorité supérieure intervient pendant une routine d interruption de priorité inférieure? Q7. Si deux interruptions de niveau de priorité différent arrivent en même temps, c est l interruption qui a la plus forte priorité qui s exécutera en premier. Comment fait-on pour départager deux priorités de même niveau qui arrivent en même temps?

3. Vectorisation Q8. Qu est ce qu un vecteur d interruption? Qu est ce qu une table des vecteurs d interruption? Q9. Remplir la 4 ème colonne du Tableau 1. Source Module matériel Explication de l évènement Adress Vector IE0 TF0 IE1 TF1 RI+TI ADCI PSMI Tableau 1 : Source d'interruption, vecteur et évènements Q10. Lors d une interruption du Timer 0, à quelle adresse le microcontrôleur trouvera le sous-programme d interruption correspondant? Q11. Combien de place mémoire possède t on pour coder l ensemble de ce sous programme d interruption? Que convient-il de faire si nous devons utiliser plus de place pour coder ce sous programme? 4. Traitement de l interruption On a vu que les évènements créant des interruptions sont gérés par le positionnement de flag dans des registres.

Q12. Nous nous plaçons dans le cas ou nous avons pris en compte une interruption qui était survenue. Quelle action faut-il alors éventuellement réaliser pendant le sous programme d interruption concernant ces flags liés à l interruption. Q13. Quelles sont les autres actions à réaliser au début du sous programme, et à la fin du sous programme d interruption? II. Interruption dans un PIC 16F87XA On se propose de reprendre l application vu dans le TD précédent en modifiant le cahier des charges. La led doit s allumer par un appui du bouton poussoir. L extinction se fait par un second appui du bouton poussoir. Les interruptions devront être mises en œuvre pour le développement de cette application. 1. Mise en œuvre d une seule interruption Figure 1 : Allumage d'une led par bouton poussoir Q1. Quel est l avantage de gérer ce système par interruption? Q2. Définir le mot de configuration du registre INTCON. Q3. D après le paragraphe «14.12- Context Saving During Interrupt» de la documentation, quel est la sauvegarde qui est faite automatiquement par le microcontrôleur? Q4. A quelle adresse du microcontrôleur devons nous implémenter le code de notre sous programme d interruption. Q5. Réaliser l organigramme complet pour le programme de cette application.

2. Mise en œuvre de deux interruptions 2.1. Fonctionnement des interruptions dans le PIC Dans le microcontrôleur ADuC812, chaque interruption possédait un vecteur d interruption particulier. Ici, nous n en possédons qu un. Vous pourrez vous référer au paragraphe «14.11- Interrupts» pour répondre aux questions suivantes. Q6. Une fois que notre programme principal a bifurqué vers l adresse 0x0004, comment fait t on pour savoir qu elle interruption est réellement survenue? Dans le microcontrôleur ADuC812, chaque interruption pouvait être définie par deux niveaux de priorité, ici il n y a pas de niveau affecté. Si une interruption arrive alors qu une autre est déjà en cours, elle sera traitée lorsque la première routine se terminera. Q7. Dans le cas ou deux interruptions arrivent en même temps, comment le microcontrôleur fait pour choisir la routine d interruption qu il exécutera? 2.2. Application En réalité, le fonctionnement de notre application comme nous l avons vu jusqu ici ne fonctionne pas. Ceci est du aux problèmes des rebonds du bouton poussoir. Q8. Expliquez ce phénomène et proposer une solution pour le résoudre. Q9. Proposez un organigramme pour réaliser cette application sachant que toute la gestion de ce système devra se dérouler en interruption. Note 1 : Le programme principal ne fera que boucler sur lui-même Note 2 : Nous utiliserons le timer 1 pour inhiber les interruptions du bouton poussoir pendant un certain temps.

III. Annexes : Documentation du µc ADuC812

Université de Savoie Module ETRS-604 Microcontrôleur et Microprocesseurs TD 4 Gestion d afficheur 7 segments L afficheur 7 segments de la carte de développement est constitué de la façon suivante : Q1. Reprenez le schéma précédent en représentant seulement l afficheur DIS3, et en le remplaçant par les LED qui constituent un afficheur 7 segments? Q2. Donner les valeurs à donner au port D afin d afficher les nombres de 0, 1 et 2. Q3. Réaliser l organigramme d un programme réalisant l affichage du chiffre 0 sur l afficheur DIS3 Q4. Réaliser l organigramme d un programme réalisant l affichage de deux chiffres différents sur DIS3 et sur DIS2. Q5. Réaliser l organigramme d un programme réalisant l incrémentation des deux chiffres affichés toutes les secondes.

Université de Savoie Module ETRS-604 Microcontrôleur et Microprocesseurs TD 5 Conversion Analogique/Numérique 1. Datasheet du CAN 10 bits PIC16F877 La figure ci-dessous montre les différents temps de la séquence de conversion : Q1. Quelles sont les étapes d une conversion AN? Expliquer les 2 temps qui constituent ces étapes? Q2. Quelle recommandation importante est citée dans la documentation au chapitre 11.1 au sujet du temps d acquisition? Donner le temps d acquisition typique que nous rencontrons pour un montage classique. Lire le chapitre 11.2 Q3. Expliquer ce qu est le temps T AD. Quel est le temps minimum que l on peut admettre pour le temps T AD? Q4. Quel sera donc le temps de conversion : «conversion time»? En déduire le temps total de la conversion A/N.

Reprendre les 7 étapes de la documentation sur la réalisation d une conversion analogique numérique. Nous réaliserons une application avec un échantillonnage d une valeur sur la voie 1 toutes les 500 ms. Nous fonctionnerons sans interruption avec un quartz à 8 MHz. Q5. Donner l organigramme entier de votre programme. Q6. Donner le code en langage C de chacune des étapes de votre organigramme.