Électronique embarquée

Documents pareils
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

1. PRESENTATION DU PROJET

! analyse du fonctionnement

PIC EVAL Dev Board PIC18F97J60

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

Utilisation de l éditeur.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

COMMANDER la puissance par MODULATION COMMUNIQUER

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

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Mon aide mémoire traitement de texte (Microsoft Word)

Prise en main. Prise en main - 0

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

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

GUIDE Excel (version débutante) Version 2013

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

Notice de fonctionnement DVR H Méthode de Visionnage ESEENET

Dossier technique. Présentation du bus DMX et Utilisation des options EL13 / EL14 ERM AUTOMATISMES INDUSTRIELS 1 LE PROTOCOLE DMX 2

Notice d installation de la Centrale VIGIK DGM1

ENREGISTREUR DE TEMPERATURE

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

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Configuration de TCPIPconfig.h

Le langage C. Séance n 4

Modules d automatismes simples

BACCALAURÉAT PROFESSIONNEL EPREUVE DE TRAVAUX PRATIQUES DE SCIENCES PHYSIQUES SUJET A.1

COMMUNICATION ENTRE DEUX ORDINATEURS PAR LASER MODULE EN CODE MORSE OU BINAIRE.

fullprotect inside EOLE SPEie RS E-SPEie V-0.6A-RS 1.0 revision Protection environnement Datasheet édition française

FICHE PEDAGOGIQUE. Questions à poser. - Avant de démarrer l ordinateur,

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

1 - Se connecter au Cartable en ligne

Enregistreur de données d humidité et de température

Un outil open source de gestion de bibliographies

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

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

Guide d usage pour Word 2007

Guide de l utilisateur

Document d accompagnement pour l utilisation du Cartable en ligne Lycée des Métiers Fernand LÉGER 2013/2014

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

CYLINDRE ET BÉQUILLE ÉLECTRONIQUES À BADGE Aperio E100 & C100

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

INSTALLATION MODULE WEB

I- Définitions des signaux.

1.1 L EXPLORATEUR WINDOWS

Leçon N 5 PICASA Généralités

UGVL : HOMOLOGATION PS ZAC du bois Chaland 6 rue des Pyrénées LISES EVRY Cedex FRANCE Tel Fax

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

Sélection du contrôleur

PIC 16F84. Philippe Hoppenot

Premiers Pas avec OneNote 2013

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

LYCEE TECHNIQUE PIERRE EMILE MARTIN BOURGES ETUDE D UN TRAITEMENT DE SURFACE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Carte Relais GSM (Manuel Utilisateur)

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

TUTORIAL Microsoft Project 2010 Fonctionalités de base

Centrale d alarme DA996

ANALYSE TRAMEs LIAISON SERIE

Manipulations du laboratoire

Guide de programmation FLEXIVOZ PABX OD308

SERVICE CERTIFICATION DES ÉTABLISSEMENTS DE SANTÉ. Guide utilisateur Compte Qualité dans SARA

TP 7 : oscillateur de torsion

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

Reader. Consultation de la table des matières. Guide de l utilisateur PRS-505. Portable Reader System. 2007, 2008 Sony Corporation (1)

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

Support de formation Notebook

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

QUICK START RF Monitor 4.3-1

Caméra Numérique de Microscopie Couleur USB. Guide d installation

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

DATALOGGERS SEFRAM LOG1601 et LOG1620

Le multiplexage. Sommaire

Flowcode - Mode d'emploi

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

A L ERT. Pour démarrer rapidement avec

Système d automation TROVIS 6400 Régulateur compact TROVIS 6493

Formation tableur niveau 1 (Excel 2013)

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

MT-703. Surveillance de niveau par sonde résistive TELEMETRIE PAR MODULE GSM CONFIGURATION ET UTILISATION

Conférence sur les microcontroleurs.

Chapitre 1 L interface de Windows 7 9

Tuto pour connecter une source RVB RGB à un moniteur Commodore / Amiga

Mes documents Sauvegardés

TP Modulation Démodulation BPSK

Paiement sécurisé sur Internet. Tableau de bord Commerçant

Chap17 - CORRECTİON DES EXERCİCES

Architecture des ordinateurs

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Consignes pour les travaux d actualité Premier quadrimestre

ENVOI EN NOMBRE DE MESSAGES AUDIO

Gérer, stocker et partager vos photos grâce à Picasa. Janvier 2015

Mode d Emploi. Résult Arc Logiciel de Gestion de Compétitions. Droits d utilisation Informations Générales. 1/. Présentation de Résult Arc


Borne VIGILE. Descriptif. Caractéristiques

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

COACH-II Manuel d utilisation

Systèmes de transmission

OUTILS DE TRANSFERT DE FICHIER VERS LISEUSES ET IPAD

Transcription:

LEnsE Laboratoire d Enseignement Expérimental Électronique embarquée 1A 2S - EITI F. BERNARD - J. VILLEMEJANE Cycle Ingénieur - 1ère année - Palaiseau Année universitaire 2015-2016 Version du 5 janvier 2016

ii

Électronique TP Calendrier Règles de fonctionnement Évaluation de votre travail v vii xi Thème 4 - Transmission numérique par la lumière 1 1 Utiliser un microcontrôleur 3 2 Gestion du temps et IHM 19 3 Commande d un bandeau lumineux 29 iii

iv ÉLECTRONIQUE TP

1A2S - EITI Laboratoire d Enseignement Expérimental LEnsE Calendrier Semaine Date Horaire Groupe/1 Groupe/2 Groupe/3 Groupe/4 Groupe/5 2 lun$11$janv 8h30 TH4.1 mar$12$janv 8h30 TH4.1 mer$13$janv 8h30 TH4.1 3 lun$18$janv 5 6 7 8 lun$25$janv 8h30 TH4.2 mar$26$janv 8h30 TH4.2 mer$27$janv 8h30 TH4.2 lun$1$févr 8h30 TH4.1 mar$2$févr 8h30 TH4.3$+ex mer$3$févr 8h30 TH4.1 lun$8$févr 8h30 TH4.2 mar$9$févr 8h30 TH4.4$+ex mer$10$févr 8h30 TH4.2 lun$15$févr 8h30 TH4.3$+ex mar$16$févr 8h30 TH4.3$+ex mer$17$févr 8h30 TH4.3$+ex 9 lun$22$févr 10 11 lun$29$févr 8h30 TH4.4$+ex mar$1$mars 8h30 TH4.4$+ex mer$2$mars 8h30 TH4.4$+ex jeu$3$mars 8h30 lun$7$mars 13h30 8h30$(en$info) 8h30 mar$8$mars 13h30 8h30$(en$info) 8h30 mer$9$mars 13h30 8h30$(en$info) 8h30 jeu$10$mars 13h30 8h30$(en$info) 12 lun$14$mars 13 14 15 16 Projet$1 Projet$2 Projet$3 Projet$1 Projet$2 Projet$3 Projet$1 Projet$2 Projet$3 Synthèses$Th3 Projet$1 Projet$2 Projet$3 lun$21$mars 8h30 TH4.3$+ex mer$23$mars 8h30 TH4.4$+ex jeu$24$mars Synthèses$Th3 Synthèses$Th3 Synthèses$Th3 mar$29$mars 8h30 Projet$4 mer$30$mars 8h30 Projet$4 jeu$31$mars 8h30 Projet$4 17 lun$18$avr 18 lun$25$avr 19 20 lun$9$mai 21 lun$16$mai lun$4$avr 8h30 Projet$4 mar$5$avr 8h30 Projet$4 mer$6$avr 8h30 Projet$5 jeu$7$avr 8h30 Projet$5 Synthèses$Th3 lun$11$avr 8h30 Projet$5 mar$12$avr 8h30 Projet$5 mer$13$avr 8h30 Projet$5 lun$2$mai 8h30 Projet$6 13h30 Projet$7 mar$3$mai 8h30 Projet$6 13h30 Projet$7 mer$4$mai 8h30 Projet$6 13h30 Projet$7 ven$6$mai 8h30 Projet$6 13h30 Projet$7 22 jeu$26$mai Remise$des$dossiers$et$posters Version du 5 janvier 2016, il sera mis à jour sur le site Libres Savoirs v

vi ÉLECTRONIQUE TP

1A2S - EITI Laboratoire d Enseignement Expérimental LEnsE Règles de fonctionnement Toutes les informations sont affichées sur le panneau d affichage du LEnsE. Consultez-le régulièrement! Absences La présence des étudiants à toutes les séances de travaux pratiques prévues à l emploi du temps est obligatoire et impérative. En cas de difficulté majeure, si un membre d un binôme est toutefois absent, l autre doit venir à la séance et faire le TP. Et, en Optique, chacun des membres du binôme rendra un compte-rendu individuel. Absence excusée. Justificatif Le justificatif d absence doit être déposé au secrétariat, les élèves concernés doivent aussi prévenir directement le responsable du LEnsE du motif de l absence (à l avance, si l absence est prévisible). Absence excusée. Rattrapage L élève doit impérativement prendre contact avec les enseignants de TP pour étudier la possibilité de rattrapage (suivant la disponibilité des enseignants, du matériel et des salles). L élève rattrape alors le TP et : En optique, l élève rédige un CR qui sera noté. S il n est pas possible de trouver une date de rattrapage suite à une impossibilité du service des TP, le TP ne sera ni rattrapé ni noté (la moyenne sera faite sur les notes restantes). Ce TP restera néanmoins au programme de l examen et l étudiant pourra être interrogé dessus lors de l examen de TP. En ETI et ProTIS, la synthèse du thème concerné, rédigée par le binôme, devra contenir des résultats des deux séances individuelles (la séance normale et celle de rattrapage). Si l élève refuse la date de rattrapage proposée, il sera considéré comme absent non excusé. Absence non excusée Toute absence non justifiée entraîne : vii

viii ÉLECTRONIQUE TP En optique, un zéro pour la séance et l impossibilité de travailler sur ce TP avant la période de révision. En cas d absences répétées, le responsable d année interdira à l étudiant de passer l examen en fin d année. En ETI et ProTIS, un zéro pour la note de synthèse concernée. Retards Aucun retard n est acceptable et en cas de retard important (ou de retards fréquents) d un étudiant, celui-ci se verra refuser l accès au laboratoire. Les conséquences en seront identiques à celles d une absence non excusée (voir plus haut). Plagiats Le plagiat est le fait de s approprier un texte ou partie de texte, image, photo, données... réalisé par quelqu un d autre sans préciser qu il ne s agit pas de son travail personnel. On plagie quand on ne cite pas l auteur des sources que l on utilise. Exemples de plagiat : Copier textuellement un passage d un livre ou d une page Web sans le mettre entre guillemets et/ou sans en mentionner la source. Insérer dans un travail des images, des graphiques provenant de sources externes (hors énoncé du TP) sans en indiquer la provenance. Utiliser le travail d un autre élève et le présenter comme le sien (et ce, même si cette personne a donné son accord!). Résumer l idée originale d un auteur en l exprimant dans ses propres mots, mais en omettant d en indiquer la source. Traduire partiellement ou totalement un texte sans en mentionner la provenance. Tout binôme convaincu de plagiat dans un compte-rendu ou une synthèse de TP se verra attribuer la note de 0/20 à ce TP ou cette synthèse et encourt les sanctions disciplinaires prévues au règlement intérieur. Respect du matériel et des locaux Le LEnsE met à votre disposition une très grande quantité de matériel scientifique. Ces matériels sont très fragiles, sensibles à la poussière, aux traces de doigts, aux rayures, etc. Merci d en prendre le plus grand soin.

ÉLECTRONIQUE TP ix Il est donc formellement interdit d apporter de la nourriture ou des boissons dans l ensemble du service (couloirs compris). Merci de veiller aussi à laisser les locaux particulièrement propres (si vos chaussures sont sales, retirez-les et laissez-les à l entrée!) Pour toute demande d accès en dehors des séances de TP, vous devez impérativement (et à l avance) vous adresser au responsable technique du LEnsE, Thierry AVIGNON ou à Cédric LEJEUNE (bureau S1.18).

x ÉLECTRONIQUE TP

1A2S - EITI Laboratoire d Enseignement Expérimental LEnsE Évaluation de votre travail Au cours de chaque semestre, deux notes sanctionnent votre travail : Une note par binôme d évaluation du travail de synthèse, Une note individuelle d examen pratique. Les notes de travaux pratiques d EITI du premier semestre seront prises en compte dans l unité d enseignement Traitement de l information S1 (8 ECTS). Chaque note contribue à 15% à la note finale de l unité d enseignement. Pour le deuxième semestre, dans de l unité d enseignement Traitement de l information S2 (7 ECTS), chaque note contribue à hauteur de 10% à la note finale 1. Cahier de manipulation Il est indispensable que vous teniez à jour un "cahier de manipulation" par binôme. Ce cahier est la mémoire de tous les circuits et les mesures que vous avez réalisés. Il vous sera utile pour rédiger les synthèses et pour les séances de TP suivantes, y compris au deuxième semestre ou lors des examens. Les enseignants s assureront que vous disposez bien d un tel cahier à chaque séance, même si il n est pas évalué, ce document reste un document interne au binôme. Ce cahier devra prendre la forme d un espace de travail partagé sur le "nuage" de l Institut d Optique (https://cloud.institutoptique.fr). Il est important que chaque membre du binôme puisse accéder à l ensemble des documents lors de chaque séance. 2. Synthèse Nous attendons de vous dans la synthèse une véritable analyse des résultats de mesures relevés ou observés en cours de séance. Tous vos résultats ne pourront pas figurer dans cette synthèse, il y en aura probablement moins d un tiers, nous ne voulons pas lire votre cahier de manipulation... en taille de police réduite! À vous de choisir les résultats qui vous semblent les plus pertinents. Objectifs et contraintes xi

xii ÉVALUATION DE VOTRE TRAVAIL Pour rédiger une synthèse, il faut toujours partir des objectifs visés et des contraintes imposées, contraintes sur le format, le contenu et aussi sur la date de remise. Les objectifs de ce travail de synthèse sont : 1. Améliorer votre compréhension des concepts et de vous approprier les savoirs-faire (pouvoir dire : ça, je sais faire!) 2. Vous entraîner à la présentation scientifique, élément qui fait partie à part entière de toute formation scientifique 3. Permettre aux enseignants de suivre la progression dans les apprentissages et d évaluer par une note le travail effectué et les connaissances acquises. Les contraintes sont fixées à : 4 pages maximum pour le thème Photodétection 4 pages maximum pour le thème Analyseur de Spectre, 8 pages maximum pour le thème Transmission numérique par la lumière du deuxième semestre, au format.pdf, remis après la dernière séance du thème. Des conseils : ce sont les deux premiers objectifs qui doivent être gardés en tête lors de la rédaction, la note qui en découle n est qu une conséquence (heureuse!) de leur réussite! Plus précisément : 1. il faut rédiger la synthèse en imaginant que l on s adresse non pas à l enseignant mais à une tierce personne (un élève à l autre bout du monde par exemple) qui souhaite faire les mêmes types d expériences mais avec un matériel différent. 2. il faut avoir l ambition d expliquer et non pas seulement de décrire. La contrainte de pages maximum donne une indication du niveau de détails attendu pour les explications, forcément ici limité. La synthèse est donc plus courte que l ensemble des notes et relevés de mesure pris en séance, le délai donne le temps de trier, organiser et commenter l ensemble de ces données. Contenu Peut figurer dans une synthèse tout ce qui peut aider à la réalisation et à la compréhension des phénomènes étudiés : circuit, relevés de mesure, courbes et surtout commentaires. Présenter des erreurs que vous avez commises et la correction que vous avez apportée est aussi tout à fait acceptable!

2. SYNTHÈSE xiii Ne doit pas figurer tout ce qui est inutile : une courbe ou une image sans légende, le brochage d un composant, la couleur de la table, etc. Toute image ou courbe doit être accompagnée d une légende (titre, axes horizontal et vertical avec unités) et doit être citée dans le corps du texte (s il n y a rien à en dire, ce n est sans doute pas la peine de la faire figurer!). Structure du document Le document doit impérativement comporter : vos noms, avec votre numéro de binôme, le titre, une ou deux phrases d introduction, une conclusion. et il doit être paginé (numéros de page/ nombre total de pages). Mise en forme La contrainte de format doit être suivie! Suivre les contraintes n est pas forcément un frein à la créativité, au contraire, cela oblige parfois à explorer d autres façons de faire, moins évidentes mais plus enrichissantes! Quelques conseils dans l utilisation d un traitement de texte (Microsoft Word, Libre Office Writer ou LateX ou...). La taille de la police doit être au mininum de 12 pts, les marges peuvent être réduites par rapport à celles définies par défaut par le logiciel, l organisation sous deux colonnes peut permettre d avoir un texte plus dense, utiliser le correcteur orthographique, placer des figures dans un tableau de 2 lignes, la 2ème ligne contenant le titre, peut faciliter la mise en page. Exporter au format.pdf Word : Menu Fichier / Enregistrer sous... et choisir le format.pdf dans la fenêtre suivante. Writer: Menu Fichier / Exporter au format pdf Dépôt Il est important de respecter les consignes suivantes : Certifiez l originalité de votre travail en faisant figurer la mention : Nous attestons que ce travail est original, que nous citons en référence toutes les sources utilisées et qu il ne comporte pas de plagiat.

xiv ÉVALUATION DE VOTRE TRAVAIL Vérifiez que vos noms et le numéro de votre binôme figurent sur la première page de votre synthèse avant de la transformer en.pdf. Assurez-vous que le nombre maximum de pages est respecté. Renommez le fichier.pdf selon le format : G5B12MonNomEtCeluiDeMonBinomeSyntheseAS.pdf pour le binôme 12 du groupe 5. Les synthèses doivent être déposées sur le site Libres Savoirs aux dates précisées dans le calendrier (page v). Attention : un point de moins par jour de retard! En résumé : checklist Les conditions expérimentales des résultats "affichés" sont elles définies? Les mesures réalisées sont-elles analysées? Les figures sont-elles analysées? Si ce n est pas le cas, sont-elle utiles? Les figures sont-elles numérotées? Les figures ont-elles des titres? Les axes des figures sont-ils renseignés? Les noms des auteurs sont-ils écrits? Les pages sont-elles numérotées? 3. Examen individuel Un examen pratique a lieu chaque semestre. Il dure une heure et teste vos capacités expérimentales : maîtrise du matériel de laboratoire, protocoles et précautions pour des mesures simples, choix raisonné de composants. Il n est pas demandé de compte-rendu de manipulation. Vous avez accès aux synthèses et à votre cahier de manipulation. Vous serez convoqués en demi-groupe selon le calendrier de la page v. 4. Points de pénalité Des points de pénalité peuvent être attribués sur les notes de synthèses aux binômes n ayant pas rangé leur poste de travail à l issue des séances de TP.

LEnsE 1A2S - EITI - Thème 4 Transmission numérique par la lumière travers ce thème, sur lequel vous travaillerez à 2 binômes pendant les 2 dernières séances, vous allez découvrir comment transmettre de l information numérique entre un émetteur et un récepteur. Vous allez être amené à développer un système permettant de contrôler la couleur d un bandeau de LEDs tricolores à distance, à l aide de trois potentiomètres permettant de moduler la quantité de rouge, de vert et de bleu. L information transmise sera numérisée et transmise au format binaire. FIGURE 1 Principe de la transmission réalisée au cours des 4 séances Pour traiter les informations numériquement, vous serez amenés, au cours des 2 premières séances, à découvrir un nouveau composant : le microcontrôleur. Ce dernier est très utilisé dans le monde industriel pour piloter des systèmes de manière autonome et en temps réel. Vous allez apprendre à utiliser ses ressources internes : unité de calcul, entrées/sorties numériques, entrées analogiques, sorties modulées, timers...

2 Objectifs Développer une application autour d un microcontrôleur : Utiliser les entrées/sorties numériques ; Utiliser les entrées analogiques ; Mettre en oeuvre les interruptions externes ; Mettre en oeuvre les timers matériels ; Mettre en oeuvre une transmission numérique de l information Préparation Les différents TP de ce thème possèdent des questions notées Px à préparer avant chaque séance. Rendu Carte conceptuelle et synthèse (Mind Map) dont les sujets vous seront divulgués lors de la quatrième séance. Documentation annexe DocDEM2 dspicdem 2 Development Board User s Guide. Microchip. A télécharger sur le site de Microchip. DocMPLABX MPLABX IDE User s Guide. Microchip. Disponible sur Libres Savoirs. DocXC8 XC8 User s Guide. Microchip. Disponible sur Libres Savoirs. Doc16F5013 PIC16F1503 Data Sheet. Microchip. Disponible sur S:\TP EITI\Theme4. TutoMPLABX Tutoriel du logiciel MPLABX. Disponible sur chaque table et sur Libres Savoirs. BrochesPIC Carte des broches du composant utilisées en TP. Disponible sur chaque table et sur Libres Savoirs.

1A2S - EITI Thème 4 - Séance 1 LEnsE Utiliser un microcontrôleur À travers cette première séance, vous allez vous intéresser au composant qui sera au coeur de ce thème des travaux pratiques : le microcontrôleur. Un microcontrôleur est un organe servant essentiellement au contrôle en temps réel d un système, grâce notamment à ses interactions avec l environnement, via des broches de communication spécifiques. Il exécute un programme en continu permettant de lire des entrées (numériques ou analogiques) et de commander certaines sorties. Vous allez découvrir le composant (PIC16F1503 de la société Microchip), l interface de développement (MPLABX), le langage de programmation (langage C pour l embarqué), la connexion avec le composant (ICD3) et son interaction avec des composants électroniques (boutonspoussoirs, potentiomètre, LED...). La chaîne de développement est décrite par le schéma de la figure 1.1. FIGURE 1.1 Les matériels et logiciels à votre disposition 3

4 SÉANCE 1. UTILISER UN MICROCONTRÔLEUR Après cette séance, vous saurez... Utiliser la suite logicielle MPLABX, générer un programme pour un microcontrôleur de la famille des PIC, configurer et utiliser les entrées/sorties numériques de ce microcontrôleur, mettre en oeuvre une interruption externe. Préparation Les questions P1 à P6 sont à préparer avant la séance de TP. Sommaire 1 Microcontrôleur PIC16F1503 (Préparation)..... 4 2 Organisation et fichiers................. 5 3 Première application................... 5 4 Sorties numériques.................... 8 5 Gestion du temps..................... 11 6 Entrées numériques................... 12 7 Interruptions externes.................. 14 8 Une question de mémoire.................. 16 1. Microcontrôleur PIC16F1503 (Préparation) Au cours de ce thème, vous allez utiliser un microcontrôleur de type PIC16F1503 conçu par Microchip. Ce microcontrôleur est un processeur 8 bits, c est à dire qu il traite et gère des données sur un octet. Sur les microcontrôleurs de chez Microchip, les entrées/sorties peuvent avoir plusieurs fonctionnalités : entrées/sorties numériques, entrées analogiques, sortie modulée, entrée de programmation... La figure?? synthétise les différentes fonctions de chaque broche. Afin de vous familiariser un peu avec ce microcontrôleur, consulter la documentation technique pour répondre aux questions suivantes (pages 1 à 4). P1 Quelle est la fréquence maximale d oscillation de ce microcontrôleur? P2 Quels sont les espaces mémoires disponibles et quelles sont leurs tailles? P3 Combien d entrées/sorties différentes possède-t-il? Combien d entrées analogiques?

2. ORGANISATION ET FICHIERS 5 FIGURE 1.2 Brochage du composant PIC16F1503. P4 Quel est le courant maximal que peut délivrer le microcontrôleur sur chacune de ses sorties? Au total? (vous pouvez vous aider de la page 284 de la documentation technique) P5 Relever les valeurs des deux lignes suivantes (pour un mode de fonctionnement industriel) : Maximum current out of V SS pin, Maximum current in to V DD pin P6 Que peut-on conclure de la différence entre ces deux valeurs? 2. Organisation et fichiers Créer un répertoire de travail pour les TP d ETI du deuxième semestre dans votre espace personnel (U:\) Copier le répertoire S:\TP EITI\Theme4\Ressources et collerle dans votre nouveau répertoire de travail. Copier le répertoire S:\TP EITI\Theme4\Seance1 et coller-le dans votre nouveau répertoire de travail. 3. Première application 3.1. Premier projet sous MPLABX L environnement de développement MPLABX intègre un éditeur de texte et un compilateur en assembleur. Il lui a été associé un compilateur C nommé XC8 (pour les microcontrôleurs 8 bits). Créer un nouveau projet nommé 01_Decouverte.X dans le répertoire créé précédemment, en vous aidant de la partie II du Tutoriel MPLABX.. Choisir un composant de type PIC16F1503 et le compilateur XC8.

6 SÉANCE 1. UTILISER UN MICROCONTRÔLEUR Copier le fichier source 01_main.c depuis le répertoire Seance1 vers le répertoire du projet (01_Decouverte.X). Associer ce fichier à votre projet en faisant un clic-droit sur le projet, puis en sélectionnant l option Add Existing Item... Choisir ensuite le fichier que vous souhaitez ajouter à votre projet. Remarque : Si le fichier n apparaît pas dans le bon répertoire au niveau du projet, déplacer-le dans le bon répertoire : Header Files pour les fichier portant l extension.h et Source Files pour les fichier portant l extension.c. 3.2. Fichier de configuration Associer le fichier config.h contenu dans le répertoire Ressources à votre projet. Ouvrir ce fichier dans MPLABX. Ce fichier config.h contient la configuration de certains paramètres et modules du microcontrôleur. Il est précisé, par exemple, quelle source d horloge doit être utilisée (interne ou externe, avec ou sans PLL 1 ). Il sera à associer à chaque nouveau projet que vous développerez par la suite. 3.3. Structure du programme principal Ouvrir le fichier 01_main.c dans MPLABX. Q1 Quelle est la structure de ce programme? A quoi sert l instruction while(1)? Combien de fois est exécutée l instruction contenue dans cette boucle? Q2 A quoi sert la fonction void initpic(void)? Combien de fois estelle executée? Compiler le projet. 3.4. Programmeur ICD3 et PIC16F1503 L étape suivante est le téléversement du programme compilé vers le composant à l aide du programmeur. Mais avant cela, il est nécessaire de relier le microcontrôleur au programmeur. Réaliser une ligne d alimentation continue à 5 V (VDD) et une autre à 0 V (GND) sur votre platine d essai. 1. Phase-locked loop ou Boucle à verrouillage de phase

3. PREMIÈRE APPLICATION 7 Alimenter le microcontrôleur en câblant les broches VDD et GND, repérées sur la figure 1.3. FIGURE 1.3 Broches du microcontrôleur à connecter Placer le connecteur sur votre platine d essai. Le relier ensuite au microcontrôleur en vous aidant du brochage donné sur le schéma de la figure 1.4. FIGURE 1.4 Brochage du connecteur du programmeur Attention! Relier également l alimentation à ce connecteur en vérifiant au préalable que vous avez appliqué une tension de 5 V sur VDD. Relier le programmeur ICD3 au câble USB. Téléverser à présent votre projet dans le microcontrôleur. Que se passe-t-il? Visualiser à l aide d un oscilloscope la broche RA4 (correspondant également à CLKOUT). Que pouvez-vous conclure sur l exécution du programme?

8 SÉANCE 1. UTILISER UN MICROCONTRÔLEUR 4. Sorties numériques Afin de pouvoir interagir avec l environnement extérieur, nous allons nous intéresser à présent aux ports de communication du microcontrôleur. 4.1. Registres Pour pouvoir configurer les différents modules présents dans les microcontrôleurs, il faut venir paramétrer des registres spécifiques. Les registres sont des espaces mémoire de 8 bits pour les familles PIC16F. Ils sont adressables indépendamment et accessibles via leurs noms. Les registres disponibles sont listés dans la section 3.2 de la documentation technique du microcontrôleur. Une fiche descriptive de chacun d entre eux est également disponible dans la documentation technique dans les chapitres associés au module qu ils permettent de paramètrer. Voici par exemple sur la figure 1.5 la description du registre d état de l unité de calcul, nommé STATUS (page 18 de la documentation technique) : FIGURE 1.5 Extrait de la documentation du composant PIC8F5003. Paramètres du registre Status.

4. SORTIES NUMÉRIQUES 9 4.2. Configuration des ports Pour communiquer avec le monde extérieur, le microcontrôleur utilise des registres particuliers qu on appelle des ports qui sont reliés à des broches physiques du composant (PORTx sur les microcontrôleurs de chez Microchip, où x est une lettre - A, B, C,...). Vous trouverez une description des ports d entrée/sortie dans la section 11 de la documentation technique. Chaque bit constituant ces ports est configurable individuellement en entrée ou en sortie (voir figure 1.6), via des registres appelés TRISx (où x représente la lettre du port que l on veut configurer). FIGURE 1.6 Registres PORTx et TRISx associés à un port d entrée/sortie. Ces entrées-sorties vont imposer des signaux numériques ( 0 équivalent à V SS = 0 V ou 1 équivalent à V DD = 5 V, ici) vers le monde extérieur, ou inversement permettre de lire des 0 ou 1 produits par le monde extérieur vers le microcontrôleur. Certaines de ces broches sont également communes aux entrées du convertisseur analogique-numériques intégré au microcontrôleur. Nous l étudierons lors de la prochaine séance. Par défaut, toutes les broches du microcontrôleur sont considérées comme analogiques. Pour pouvoir les utiliser en numérique, il est indispensable de configurer le registre nommé ANSELx.

10 SÉANCE 1. UTILISER UN MICROCONTRÔLEUR 4.3. Utilisation des ports en sortie Nous allons nous intéresser au port C (section 11.3 de la documentation technique) et à sa broche 1 en particulier, nommée RC1, sur laquelle nous allons connecter une LED rouge. On propose pour cela les deux montages de la figure 1.7 : FIGURE 1.7 Deux montages possibles sur une sortie numérique du microcontrôleur Q3 Dans les deux montages précédents, indiquer le sens du courant lorsque la LED est allumée. Quel est le niveau logique à appliquer sur la sortie RC1 pour obtenir l allumage de la LED dans chacun de ces deux montages? Q4 A partir des questions de préparation P4 à P6 et de la question précédente, que pouvez-vous conclure quant au montage à utiliser pour connecter une LED sur la sortie d un microcontrôleur? On utilisera une LED rouge classique, ayant une tension seuil de l ordre de 2 V et un courant direct maximal de 30 ma. Q5 Calculer la résistance R LED qui permet de limiter convenablement le courant tout en garantissant un flux lumineux correct. Câbler le montage choisi. Q6 Que se passe-t-il pour la LED? Visualiser la sortie RC1 à l aide de l oscilloscope. Mesurer la fréquence de clignotement de la LED.

5. GESTION DU TEMPS 11 Le programme contenu dans le fichier 01_main.c est le suivant : 1 #include ".. / Ressources / config. h" 2 3 void initpic ( void ) ; 4 5 void main ( void ) { 6 initpic ( ) ; 7 while ( 1 ) { 8 PORTCbits. RC1 =! PORTCbits. RC1; 9 } 10 return ; 11 } 12 13 void initpic ( void ) { 14 ANSELC = 0x00 ; 15 TRISCbits. TRISC1 = 0; 16 17 return ; 18 } Q7 A quoi servent les lignes 8, 14 et 15 de ce programme? Pour répondre à ces questions, vous pourrez vous intéressez aux pages 101 à 103 de la documentation technique et à la section Utilisation des registres du tutoriel de MPLABX. Q8 Quel est le temps d exécution de l ensemble des instructions contenues dans la boucle infinie? Ajouter une seconde LED sur la broche RC5. Complèter le programme précédent pour que cette seconde LED clignote à la même fréquence que la première. Visualiser à nouveau la sortie RC1 à l aide de l oscilloscope. Q9 A quelle fréquence clignote cette fois-ci la LED branchée sur RC1? Relever le temps d exécution de l ensemble des instructions contenues dans la boucle infinie. 5. Gestion du temps 5.1. Oscillateur interne Le microcontrôleur utilise un oscillateur interne pour pouvoir cadencer la vitesse d exécution du programme.

12 SÉANCE 1. UTILISER UN MICROCONTRÔLEUR Q10 Quelle est la fréquence par défaut utilisée par le microcontrôleur? Les valeurs de fréquences minimale et maximale de fonctionnement? (voir le registre OSCCON, page 51 de la documentation). Pour le vérifier, il est possible de visualiser la sortie de cet oscillateur interne sur la broche CLKOUT (ou RA4). Visualiser la sortie CLKOUT à l aide d un oscilloscope. Q11 Retrouvez-vous la fréquence annoncée précédemment? Ajouter la ligne suivante à la fonction void initpic(void) : 1 OSCCONbits. IRCF = 0b1100 ; Compiler le projet et téléverser le programme dans le microcontrôleur. Q12 Quelle est la nouvelle fréquence de l oscillateur interne? Que pouvezvous conclure de la ligne précédente? Vous pourrez vous aider de la section Utilisation des registres du tutoriel de MPLABX. Visualiser à nouveau la sortie RC1 du microcontrôleur. Quelle est la nouvelle fréquence d exécution de la boucle infinie? 5.2. Délai Il existe une fonction qui permet de ralentir l exécution d un code. Cette fonction s appelle : void delay_ms(int ms). Ajouter un appel à cette fonction void delay_ms(int ms) dans la boucle infinie du programme principal avec un temps d une centaine de millisecondes. Compiler et téléverser le programme. Q13 Que se passe-t-il à présent pour les LEDs? 6. Entrées numériques Chaque broche des ports de communication de ces microcontrôleurs peut être, en mode numérique, indépendamment utilisée en sortie ou en entrée. Pour cela, il faut modifier la valeur du bit correspondant dans le registre TRISx et la mettre au niveau logique 1. A l aide d un bouton poussoir, que vous allez devoir câbler à l une des broches du microcontrôleur (la broche RA2), nous allons controler l exécution du programme et modifier la fréquence de clignotement des LEDs. 6.1. Câblage d un bouton-poussoir On propose pour cela le montage de la figure 1.8 :

6. ENTRÉES NUMÉRIQUES 13 FIGURE 1.8 Câblage d un bouton-poussoir sur une broche d entrée du microcontrôleur Q14 Quel est le niveau logique obtenu sur RA2 lorsque le bouton-poussoir (noté BP) n est pas enfoncé? Quel est le niveau logique obtenu sur RA2 lorsque le bouton-poussoir est enfoncé? Quel est le rôle de la résistance R BP? Câbler ce montage en utilisant une résistance R BP = 10 kω. 6.2. Configuration en entrée numérique Copier le projet précédent (01_Decouverte.X ) en faisant un clicdroit sur le projet, puis Copy et copier-le vers un nouveau projet nommé 02_EntreeNum.X, que vous stockerez dans le répertoire des TP d ETI du second semestre. Renommer le fichier source 01_main.c en 02_main_ES.c. Modifier la fonction void initpic(void) pour configurer la broche RA2 en entrée numérique. Modifier le programme principal pour allumer la LED connectée sur la sortie RC5 lors de l appui sur le bouton-poussoir. Configurer également la fréquence d oscillation à 2 MHz. Compiler et téléverser votre programme. Tester son bon fonctionnement. Ajouter un appel à la fonction void delay_ms(int ms) dans le programme principal avec un temps d une seconde. Vérifier le bon fonctionnement de votre programme.

14 SÉANCE 1. UTILISER UN MICROCONTRÔLEUR Q15 Quel est le temps de réponse de votre système? Est-il constant? 6.3. Interaction avec le microcontrôleur Copier le projet précédent (02_EntreeNum.X ) vers un nouveau projet nommé 03_Interaction.X, que vous stockerez dans le répertoire des TP d ETI du second semestre. Renommer le fichier source 02_main_ES.c en 03_main_interaction.c. Modifier ce programme pour que lors de l appui sur le boutonpoussoir (BP) la période de clignotement de la LED connectée sur la broche RC1 passe de 2 s (BP non appuyé) à 100 ms (BP appuyé). Compiler et tester votre programme. Si vous êtes un peu en avance... Modifier ce programme pour qu à chaque appui sur le bouton-poussoir la période de clignotement de la LED connectée sur la broche RC1 bascule d une valeur de 100 ms à 2 s. Compiler et tester votre programme. Q16 Que se passe-t-il lors de l appui sur le bouton-poussoir? L information est-elle prise en compte de la même manière selon la fréquence de clignotement de la LED? 6.4. Mémoire programme Débrancher le connecteur ICD3. Le programme fonctionne-t-il en- core? Éteindre l alimentation puis la rallumer. Quel est le programme qui est exécuté par le microcontrôleur? Rebrancher le connecteur ICD3 pour la suite du TP. 7. Interruptions externes Le mode de fonctionnement précédent, où l on vient scruter les entrées dans la boucle infinie (mode polling) dans le programme main n est pas efficace pour les programmes temps réel. Afin de pouvoir interagir plus rapidement avec son environnement et prendre en compte des évènements extérieurs, les microcontrôleurs sont dotés d une capacité à interrompre l exécution du programme pour se détourner vers une fonction particulière à exécuter lors de l arrivée d un évènement extérieur. On appele cela une interruption. Pour cela, le microcontrôleur possède plusieurs entrées particulières qui permettent d interrompre le programme principal. Plusieurs

7. INTERRUPTIONS EXTERNES 15 autres modules du microcontrôleur (timers, ADC 2...) peuvent également venir interrompre l exécution du programme principal. Nous allons nous intéresser dans cette partie à la broche notée INT (broche RA2 sur le PIC16F1503) qui permet d interrompre le microcontrôleur via un événement externe. 7.1. Structure du programme Copier le projet précédent (03_Interaction.X) vers un nouveau projet nommé 04_Interruption.X, que vous stockerez dans le répertoire des TP d ETI du second semestre. Copier le fichier source 04_main_int.c depuis le répertoire Seance1 vers le répertoire du projet (04_Interruption.X) et l associer à votre projet. Compiler le projet et téléverser-le dans le microcontrôleur. Tester le bon fonctionnement du programme en ouvrant le fichier 04_main_int.c dans MPLABX et en l analysant. Q17 Que se passe-t-il lors de l appui sur le bouton-poussoir? Quel est le temps de réponse de ce programme face à un évènement extérieur (ici l appui sur le bouton-poussoir relié sur la broche INT)? 7.2. Initialisation des interruptions Voici une partie de la fonction d initialisation du composant (void initpic(void)) fournie dans le fichier 04_main_int.c : 1 OPTION_REGbits.INTEDG = 1; 2 INTCONbits. INTE = 1; 3 INTCONbits. GIE = 1; Q18 En vous aidant de la documentation technique (sections 7.4 et 7.6), déterminer à quoi servent ces 3 lignes. 7.3. Routine d interruption Dans le fichier 04_main_int.c, on trouve également une fonction particulière, précédée de la mention interrupt, qu on nomme routine d interruption. Cette fonction est appelée lorsqu une interruption est déclenchée. 2. Analog to Digital Converter ou convertisseur analogique-numérique

16 SÉANCE 1. UTILISER UN MICROCONTRÔLEUR 1 void interrupt i s r ( void ) { 2 i f ( INTCONbits. INTF == 1 ) { 3 PORTCbits. RC5 =! PORTCbits. RC5; 4 5 INTCONbits. INTF = 0; 6 } 7 } Q19 En vous aidant de la documentation technique (sections 7.4 et 7.6), déterminer à quoi servent les lignes 2 et 5. Modifier ce programme pour qu un appui sur le bouton-poussoir modifie le temps d allumage et d extinction de la LED connectée sur la sortie RC3 en passant de 300 ms à 700 ms (et inversement). Q20 L appui sur le bouton-poussoir est-il pris en compte instantanément? Pourquoi le changement de fréquence de clignotement de la LED n intervient-elle pas instantanément? 8. Une question de mémoire... Nous allons voir quels sont les espaces mémoires nécessaires à l exécution d un programme. Pour cela, nous allons étudier le programme suivant : 1 #include <xc. h> 2 3 void main ( void ) { 4 int a ; / a variable de type entiere / 5 a = a+1; 6 } Créer un nouveau projet intitulé 05_Memoire.X. Ajouter un fichier source 05_main_mem.c, en vous aidant de la section 2.2 du tutoriel MPLABX. Associer ce fichier à votre projet en faisant un clic-droit sur le projet, puis en sélectionnant l option Add Existing Item... Choisir ensuite le fichier que vous souhaitez ajouter à votre projet. Compiler le projet. Via le menu Window/Dashboard, ouvrir le tableau de bord du projet.

8. UNE QUESTION DE MÉMOIRE... 17 Q21 Quels sont les espaces mémoires utilisés par ce programme sur le microcontrôleur? Que contiennent-ils? Ajouter la déclaration et l initialisation d une seconde variable de type int. Q22 Comment sont modifiés les espaces mémoires? Quelle place occupe une variable de type int? Stocker dans l une de ces deux variables la somme des deux variables précédentes. Q23 Comment sont modifiés les espaces mémoires? Stocker dans l une de ces deux variables le produit des deux variables précédentes. Q24 Comment sont modifiés les espaces mémoires? Ajouter la déclaration et l initialisation (non nulle) d une variable de type double. Q25 Comment sont modifiés les espaces mémoires? Ajouter la bibliothèque <math.h> et ajouter une ligne permettant de calculer la valeur du sinus en 1 et de stocker le résultat dans la variable précédente. Q26 Comment sont modifiés les espaces mémoires? Q27 Que pouvez-vous conclure quant à l utilisation de ce microcontrôleur?

18 SÉANCE 1. UTILISER UN MICROCONTRÔLEUR

1A2S - EITI Thème 4 - Séance 2 LEnsE Gestion du temps et IHM Après avoir découvert le microcontrôleur et ses fonctionnalités de base, vous allez, durant cette séance apprendre à gérer le temps de manière plus avancée, à mettre en place une interface homme-machine simple composée d un écran LCD et de quelques boutons-poussoirs et à utiliser les entrées analogiques. L ensemble des programmes utilisés lors de cette séance sont dans le répertoire S:\TP EITI\Theme4\Seance2. Après cette séance, vous saurez... Mettre en oeuvre une interface homme-machine simple, configurer et utiliser les entrées analogiques, récupérer une tension analogique en entrée et la convertir, mettre en oeuvre les timers matériels. Sommaire 1 Timer matériel....................... 20 2 Timer logiciel........................ 23 3 Écran LCD......................... 25 4 Entrées analogiques................... 27 Carte d étude Durant cette séance, vous allez utiliser une carte de développement conçue par le LEnsE, afin de simplifier le câblage, autour d un PIC16F1503. Le schéma de la carte est donnée dans le document intitulé Tutoriel MPLABX, section 8. 19

20 SÉANCE 2. GESTION DU TEMPS ET IHM Les composants associés à ce microcontrôleur sont reliés comme suit : LED1 RC5/PWM1, LED2 RC3/PWM2, LED3 RC1/PWM4 1 BP1 RA2, BP2 RA5 POT1 RA4/AN3 2, POT2 RC1/AN5 3 SCK RC0, SDO RC2, RS_LCD RA0, CS_LCD RC4 FIGURE 2.1 Brochage du PIC16F1503 sur la carte d étude de l IOGS L alimentation se fait par un bloc d alimentation réglable, réglée à 7, 5 V. Un régulateur de tension permet ensuite d obtenir V DD = 5 V. Le connecteur P1 permet de relier la carte au programmeur ICD3. P1 À partir du schéma donné dans le tutoriel, quel est le niveau logique à appliquer sur les sorties RC3 et RC5 pour pouvoir allumer les LEDs associées? Quel est alors le courant qui traverse la LED? P2 À partir de ce même schéma, quel est le niveau logique au repos des boutons-poussoirs connectés aux broches RA2 et RA5? Attention! Associer le fichier de configuration config2.h, depuis le répertoire Ressources, à vos projets utilisant la carte d étude. 1. Timer matériel Dans les systèmes embarqués, les diverses tâches qu accomplit le microcontrôleur doivent souvent respecter une chronologie précise : instant de démarrage, périodes de fonctionnement... La temporisation "classique" (utilisation de la fonction delay_ms par exemple) monopolise le processeur, ne permettant pas alors d autres traitements (comme vous avez pu le voir lors du précédent TP). L utilisation de timers matériels 1. Jumper J1 du côté de l alimentation 2. Jumper J2 connecté 3. Jumper J1 du côté de la sortie LCD

1. TIMER MATÉRIEL 21 est alors préconisée. Ces fonctions spéciales des microcontrôleurs permettent de générer des interruptions à des instants précis. 1.1. Principe du timer TMR0 Les microcontrôleurs de la famille des PIC intègrent souvent plusieurs timers matériels. Nous allons nous intéresser ici au timer nommée TMR0, dont on donne le schéma de principe en figure 2.2. Le timer TMR0 est un compteur 8 bits qui s incrémente à chaque front montant de l horloge d entrée et produit un débordement lorsqu il repasse de sa valeur maximale (ici 255) à 0. Il génére alors une interruption détectable sur TMR0IF du registre INTCON. FIGURE 2.2 Schéma du timer matériel TMR0 L horloge d entrée de ce compteur est également paramétrable : on peut ainsi choisir l oscillateur interne ou une entrée extérieure. On peut également utiliser un pré-diviseur pour réduire la fréquence en entrée du compteur TMR0. La relation qui existe entre la fréquence des interruptions sur le timer TMR0 et la fréquence d oscillation (dans le cas du choix de l oscillateur interne) est la suivante : f TMR0 = F OSC 4 1 2 8 PREDIV où F OSC est la fréquence choisie pour l oscillateur interne (voir registre OSCCON) et PREDIV la valeur choisie pour le prédiviseur. 1.2. Configuration Le timer TMR0 est paramétrable à l aide du registre OPTION_REG (page 146 de la documentation technique). Les interruptions générés par le timer TMR0 sont configurables via le registre INTCON (page 66 de le documentation technique). P3 D après la documentation technique, quelles sont les valeurs minimale et maximale de prédivision disponible pour le timer TMR0?

22 SÉANCE 2. GESTION DU TEMPS ET IHM P4 Pour une fréquence d oscillation de 2 MHz, quelles sont alors les fréquences atteignables? Calculer également les périodes associées. P5 Quelles sont les valeurs à donner aux différents bits du registre OPTION_REG pour obtenir le fonctionnement suivant : utilisation de l horloge interne (2 MHz), prédiviseur de 4. P6 Quelle sera alors la fréquence (et la période) obtenue pour les interruptions du timer TMR0? Copier le projet 02_Interruption.X en faisant un clic-droit sur le projet, puis Copy et copier-le vers un nouveau projet nommé 06_TMR.X, que vous stockerez dans le répertoire des TP d ETI du second semestre. Renommer le fichier source principal en 06_main_tmr.c. Compléter la fonction void initpic(void) pour paramètrer le timer TMR0 de la manière décrite précédemment. Compléter la fonction void initpic(void) pour que le microcontrôleur puisse être interrompu par le débordement du timer TMR0. 1.3. Routine d interruption Une fois le timer TMR0 configuré et les interruptions validées, il faut à présent s intéresser à la routine d interruption qui va exécuter une action particulière. Modifier la fonction void interrupt isr(void) afin qu elle traite également les interruptions déclenchées par le timer TMR0. On souhaite faire clignoter la LED connectée sur la broche RC3 à la fréquence du timer TMR0 ainsi configuré. Modifier le programme précédent pour réaliser cette fonction. Compiler et tester votre programme en visualisant à l oscilloscope la sortie RC3. Q1 Quelle est la fréquence de clignotement de la LED? Est-ce compatible avec la configuration du microcontrôleur? Q2 Comment peut-on modifier cette fréquence? Proposer deux méthodes. On souhaite à présent avoir une fréquence de clignotement de la LED d environ 2 Hz. Q3 Quelles sont les valeurs de prédiviseur et de fréquence d oscillation à choisir pour obtenir cette fréquence en sortie du timer TMR0?

2. TIMER LOGICIEL 23 Modifier votre programme pour paramètrer le timer TMR0 de cette façon. Compiler et tester votre programme. Q4 Est-ce possible grâce à ce principe de timer matériel de commander plusieurs sorties à des fréquences différentes? Expliquer. 2. Timer logiciel Les timers matériels, vus dans la section précédente, ne sont jamais en nombre suffisant pour faire face à toutes les situations. Il faut alors faire appel à des timers logiciels. 2.1. Principe de l astable On propose le programme suivant : 1 #define TMR_LOG_1 100 2 char timer1 = 0; 3 void main ( void ) { 4 initpic ( ) ; 5 while ( 1 ) { 6 i f ( timer1 == 0 ) { 7 timer1 = TMR_LOG_1; 8 PORTCbits. RC5 =! PORTCbits. RC5; 9 } 10 } 11 return ; 12 } 13 void interrupt i s r ( void ) { 14 i f ( INTCONbits. T0IF == 1 ) { 15 i f ( timer1!= 0) 16 timer1 ; 17 INTCONbits. T0IF = 0; 18 } 19 } On suppose que la fonction void initpic(void) configure le port RC5 en sortie et le timer TMR0 de telle manière qu il génère une interruption toutes les millisecondes. Q5 Expliquer le fonctionnement de ce programme. En particulier, à quelle fréquence clignote la sortie RC5? Quel est l intérêt d avoir déclaré la variable timer1 de type char? Copier le projet 06_TMR.X vers un nouveau projet nommé 07_TMR_LOG.X, que vous stockerez dans le répertoire des TP d ETI du second semestre. Renommer le fichier source principal en 07_main_tmr_log.c.

24 SÉANCE 2. GESTION DU TEMPS ET IHM Modifier la fonction d initialisation pour que le timer TMR0 génère une interruption toutes les millisecondes. Modifier le programme principal tel que proposé précédemment. 2.2. Clignotement de plusieurs LEDs Avec ce principe de timer logiciel, il est possible de créer autant de variables que l on souhaite (dans la limite de la quantité de RAM disponible sur le composant) et de les associer à des actions spécifiques. La seule contrainte, c est que tous ces timers doivent avoir une même base de temps. Modifier le programme précédent pour faire clignoter deux LEDs (sur RC3 et RC5), l une avec une période de 158 ms et l autre avec une période de 672 ms. 2.3. Fonctionnement en monostable Un monostable est un système qui lorsqu il est destabilisé (via un appui sur un bouton-poussoir par exemple) réalise une action pendant un temps donné (via un timer logiciel par exemple) et revient ensuite à son état stable. Copier le projet 07_TMR_LOG.X vers un nouveau projet nommé 08_MONOSTABLE.X, que vous stockerez dans le répertoire des TP d ETI du second semestre. Renommer le fichier source principal en 08_main_monostable.c. Modifier le programme principal pour allumer la LED branchée sur la broche RC3 pendant 3 s lors de l appui sur le bouton-poussoir connecté sur la broche RA2. Il est préférable d utiliser les interruptions pour la gestion des évènements extérieurs (ici le bouton-poussoir).

3. ÉCRAN LCD 25 3. Écran LCD Afin de pouvoir informer l utilisateur du déroulement du programme et interagir avec lui, on peut utiliser un affichage à LED (comme réalisé lors de la séance précédente). Mais pour pouvoir simplifier le dialogue, nous allons nous intéresser ici à la mise en place d un affichage sur écran LCD. L écran LCD est un écran de type DOGM 163 de Electronic Assembly. Il possède 3 lignes de 16 caractères chacune. Le codage utilisé est de l ASCII, codé sur 8 bits. Les données peuvent être envoyées en parallèle ou en série. C est dans ce second cas que nous allons l utiliser, à l aide d un protocole de transfert industriel nommé SPI. Relier l écran LCD à la carte d étude comme indiqué dans le document intitulé Tutoriel MPLABX (sections 8 et 9). Créer un nouveau projet nommé 09_LCD.X dans le répertoire des TP d EITI du second semestre. Choisir un composant de type PIC16F1503 et le compilateur XC8. Copier le fichier source 09_main_LCD.c depuis le répertoire Seance2 vers le répertoire du projet (09_LCD.X) et l associer à votre projet. 3.1. Utilisation de la bibliothèque fournie Une bibliothèque de fonctions, nommée lcd.h et lcd.c, est donnée dans le répertoire de Ressources. Elle contient, en particulier, les fonctions suivantes : void initlcd_dog(void) pour initialiser le module LCD (liaison SPI et module d affichage) ; clearlcd(void) pour effacer l ensemble de l écran LCD ; setposition(char ligne, char colonne) pour positionner le curseur sur l écran LCD ; void writelcd(char c) poru afficher un caractère à la position du curseur sur l écran LCD ; void writestrlcd(char c[], char ligne, char colonne) pour afficher une chaine de caractère à une position particulière de l écran LCD. Associer les fichiers lcd.h et lcd.c (du répertoire Ressources) à votre projet. Compiler et téléverser le programme dans le microcontrôleur.

26 SÉANCE 2. GESTION DU TEMPS ET IHM 3.2. Affichage d un texte fixe Pour l instant, le programme testé précédemment ne fait qu initialiser le module LCD. On peut d ailleurs voir qu un curseur clignote sur l écran. On souhaite à présent pouvoir afficher un texte fixe sur l écran LCD. Q6 Quelle est la taille maximale de la chaîne de caractères qui pourra être affichée? Quelle fonction allez-vous utiliser? À quel endroit du code fourni (09_main_LCD.c) allez-vous placer l appel à cette fonction pour que le texte ne soit affiché qu une fois? Modifier le programme précédent pour afficher le texte de votre choix sur l écran LCD à l aide de la fonction writestrlcd(char c[], char ligne, char colonne). 3.3. Affichage d une variable La fonction utilisée précédemment (writestrlcd(char c[], char ligne, char colonne)) ne permet pas à elle seule d afficher des chaines de caractères qui peuvent évoluer au cours du temps, en particulier pour l affichage des valeurs de variables. Pour pouvoir modifier le contenu d une chaîne de caractère, il va falloir utiliser les fonctions "classiques" de la bibliothèque string.h (déjà vu en langage C). La fonction int sprintf(char *str, const char *format,...), qui permet de formater une chaîne de caractères et de la stocker dans une autre chaîne de caractères, la bibliothèque stdio.h, pourra également être utile. Ajouter la déclaration et l initialisation d une variable de type int au programme précédent. Ajouter la déclaration d une chaîne de 16 caractères. À l aide de la fonction int sprintf(...), afficher la valeur de cette variable de type int sur l écran LCD. 3.4. Compteur À l aide des deux boutons-poussoirs, on souhaite à présent pouvoir incrémenter ou décrémenter cette variable pour ensuite afficher sa valeur sur l écran LCD. Modifier votre programme pour remplir ce cahier des charges. Q7 Que se passe-t-il lorsque vous passer en dessous de 0? Quelle est la valeur maximale que peut atteindre ce compteur?

4. ENTRÉES ANALOGIQUES 27 Modifier votre programme pour que le comptage soit borné entre 0 et une valeur maximale, que vous fixerez à l aide d une constante dans votre code. Il est préférable d utiliser les interruptions pour la gestion des évènements extérieurs (ici les boutons-poussoirs qui sont reliés sur des entrées de type IOC - Interrupt-On-Change). 4. Entrées analogiques Le PIC16F1503 dispose d un convertisseur analogique-numérique (CAN ou ADC - Analogic-to-Digital Converter) de 10 bits. Il est possible de sélectionner une des 8 entrées analogiques, notées ANx (de AN0 à AN7), pour être convertie par le CAN. Sur la carte d étude, seules les entrées AN3 4 et AN5 5 sont reliées à des potentiomètres, dont la sortie peut évoluer entre 0 et 5 V. On propose la fonction d initialisation suivante pour le convertisseur analogique-numérique. 1 void initcan ( void ) { 2 TRISAbits. TRISA4 = 1; 3 ANSELAbits.ANSA4 = 1; 4 5 ADCON1bits.ADCS = 0b111 ; 6 ADCON1bits.ADFM = 0; 7 ADCON1bits.ADPREF = 0b00 ; 8 ADCON0bits.CHS = 0b00011 ; 9 ADCON0bits.ADON = 1; 10 11 return ; 12 } Q8 À partir de la documentation technique du microcontrôleur (section 15 et registres 15-1 à 15-7), expliquer la configuration utilisée pour le convertisseur. Copier le projet 09_LCD.X vers un nouveau projet nommé 10_CAN.X, que vous stockerez dans le répertoire des TP d ETI du second semestre. Copier le fichier source 10_main_CAN.c depuis le répertoire Seance2 vers le répertoire du projet (10_CAN.X) et l associer à votre projet. 4. Jumper J2 connecté - void Tutoriel MPLABX 5. Jumper J1 du côté de la sortie LCD

28 SÉANCE 2. GESTION DU TEMPS ET IHM 4.1. Conversion analogique numérique À partir du paragraphe 15.2.6 de la documentation technique et des différents registres associés au CAN (section 15 de la documentation technique), écrire une fonction qui lance une conversion sur la voie AN3 du CAN et retourne la valeur convertie. LCD. Tester votre fonction en affichant la valeur retournée sur l écran Q9 Quelle est la valeur maximale atteignable? 4.2. Affichage d une tension On souhaite à présent transformer la valeur brute de la conversion vers une tension et l afficher sur l écran LCD. On rappelle que le CAN utilise une plage de 0 à 5 V sur 10 bits. Sur ces microcontrôleurs, il n est pas possible de convertir une variable réelle (float ou double) vers une chaîne de caractère. On ne peut passer que par des variables entières. Il faudra donc séparer la partie entière de la partie décimale. Modifier le programme précédent pour afficher la tension sur la voie AN3 sur l écran LCD, en spécifiant sur l écran que ce sont des Volts. On souhaite à présent pouvoir convertir 2 entrées analogiques et afficher les deux tensions associés sur l écran LCD. Modifier le programme précédent pour remplir ce nouveau cahier des charges.

1A2S - EITI Thème 4 - Séances 3-4 LEnsE Commande d un bandeau lumineux Durant les deux dernières séances de ce thème, vous allez devoir concevoir la commande à distance d un bandeau lumineux. Pour cela, vous allez d abord apprendre à utiliser les sorties modulées en largeur d impulsions (PWM - Pulsed Width Modulation) des microcontrôleurs. Vous verrez dans un second temps le fonctionnement de ces bandeaux lumineux et leur commande en puissance. Enfin, vous allez devoir mettre en place le protocole de communication entre un émetteur et un récepteur. FIGURE 3.1 Bandeau de LED RGB - ledsgo.fr - RGB_PN_250_NW L ensemble des programmes utilisés lors de cette séance sont dans le répertoire S:\TP EITI\Theme4\Seance3. Après ces séances, vous saurez... Utiliser les sorties modulées (PWM) du microcontrôleur, commander un système extérieur nécessitant un courant élevé, par l utilisation de transistors MOSFET. 29

30 SÉANCE 3. COMMANDE D UN BANDEAU LUMINEUX Sommaire 1 Sorties modulées..................... 30 2 Commande d un bandeau lumineux......... 32 3 Émetteur et récepteur.................. 34 1. Sorties modulées La fonction PWM (Pulsed Width Modulation ou modulation de largeur d impulsion) est souvent mise en oeuvre pour le réglage proportionnel d organes présentant une certaine inertie (moteurs par exemple) ou associés à des récepteurs à temps de réponse important (vision humaine par exemple). FIGURE 3.2 Principe de la sortie modulée sur les micrcontroleurs PIC 1.1. Principe de fonctionnement La fonction PWM des PIC16F1503 est la combinaison de 2 périphériques : le timer TMR2 (commandé par l horloge interne) ; un comparateur. Un signal rectangulaire de période fixée par le registre PR2 est produit avec un rapport cyclique pouvant être réglé grâce aux registres PWMxDCH et PWMxDCL. FIGURE 3.3 Principe de la sortie modulée sur les microcontrôleurs PIC