Périphériques de microcontrôleur

Slides:



Advertisements
Présentations similaires
L’évaluation dans le cadre de l’approche par compétences
Advertisements

Séminaire S2I 2015 Sciences Industrielles de l’ingénieur 26 mai 2015 – Lycée Louis ARAGON.
Comment ça marche ? Les sciences pour répondre aux questions de notre société Santé Alimentation Énergie Habitat Sciences de l'Ingénieur.
Mode noyau Appels Systèmes Interruptions Grégory Seront Institut Paul Lambin
Les journées de l’2015 Le Model-Based Design Une approche complète en sciences industrielles de l’ingénieur Frédéric MAZET Lycée Dumont d’Urville Toulon.
Les systèmes embarqués. Chap 1 : Généralités Définition:  Un système embarqué est un système électronique et informatique, qui est dédié à ou spécialisé.
A partir du 1er mars 2016 : 2 offres
Utilisation des signaux sonores et lumineux
Masques et opérateurs de décalage
Programmation d'un aspirateur robot connecté
Acquisition Rapide Multivoies
Acquisition Rapide Multivoies
Le Microcontrôleur PIC16F84
JBM LPI Jules Verne SAVERNE.
Acquisition Rapide Multivoies
Evaluer par compétences
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
DOC MYCK : Programmation
Découverte du matériel Arduino Uno
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Quelques Termes INFORMATIQUE ? ORDINATEUR ( Système Informatique)?
Dominique PETRELLA – Frédéric GUINEPAIN - IA-IPR STI Versailles
Enseigner la physique-chimie au cycle 4 dans l'objectif de la maîtrise du socle commun par les élèves. Stage du 30 mars /12 1.
Pointeurs et langage C.
L’ordinateur: comment ça marche ? Ou comment avoir des idées justes sur le sujet... PCI SV I - STU I Alain Mille UFR d’Informatique UCBL.
Automates Programmables Industriels Automates Programmables
Acquisition Rapide Multivoies
Chantier industriel Encaisseuse semi-automatique de chez CERMEX
S.P.I BUS série synchrone à grande vitesse Cliquez ici pour avancer
Evaluation de l'UE TICE 1 TRANSMISSION DES DONNEES INFORMATIQUES SABATIER Fabienne 1ère année de sciences du langage/sciences de l’éducation.
L'approche asynchrone.
Informatique et Sciences du Numérique
Profils d’emplois JT du 24 septembre 2001
Chapitre 12 Surveillance des ressources et des performances
JJ/MM/AAAA 08/06/2017 Appréhender le fonctionnement d’une voiture autonome Programmation cycle 4 Cycle 4.
Participation aux Webinars – Quelques consignes à suivre!
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
« Structure d'un API » Les automates programmables A T Training On Line.
Présentation de la séquence Positionnement dans l'année
Réalisation d’une lampe connectée pilotée par bluetooth
Programmation en C++ C++ de base
 Introduction L’électrotechnique et l’électronique de puissance ont leur place dans les fonctions de traction/freinage dynamique et les auxiliaires associés.
Evaluation de l'UE TICE 1 TRANSMISSION DES DONNEES INFORMATIQUES SABATIER Fabienne 1ère année de sciences du langage/sciences de l’éducation.
Carte mère AD77 infinity : assemblage d'un ordinateur de bureau
Interruptions GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde.
Architecture de machines Le microprocesseur Cours
Petite Présentation par François
Vidéo protection embarquée
Mesures Physiques et Informatique
Communications séries synchrones
Communications séries synchrones
S.P.I BUS série synchrone à grande vitesse Cliquez ici pour avancer
L’ordinateur: comment ça marche ? Ou comment avoir des idées justes sur le sujet... PCI SV I - STU I Alain Mille UFR d’Informatique UCBL.
1 PROJET D’INFORMATIQUE les composants de l'ordinateur Gammoudi Rayéne 7 B 2.
Considérations de programmation
TGV Trigger Générique Vme Face avant Tri d’événements de physique
Sylvie DELAËT 2002 Architecture des machines Bienvenus en Amphi d’Architecture des Machines.
Comparaison des programmes de physique appliquée
ENSEIGNER L’ALGORITHMIQUE ET LA PROGRAMMATION AU COLLÈGE
Démarches d'investigation en physique appliquée
BACCALAUREAT PROFESSIONNEL GESTION ADMINISTRATION.
1 Architecture des ordinateurs Généralités. 2 Définition Informatique = Information + Automatique Ce terme a été introduit en France. Il est très répandu.
Périphériques de microcontrôleur
Le bus de terrain AS-i Bus AS-i (Actuator Sensor interface ) Fichiers
Mesure et Instrumentation Programme Progression Séquence pédagogique Perspective Questionnement Jeudi 19 janvier 2012.
PAF Guillaume Martin - Fabrice Cizeron - Xavier Roulot
Informatique Embarquée et Objets Connectés
L’apprentissage par la robotique Mr. Zouari Lazhar
Transcription de la présentation:

Périphériques de microcontrôleur P.Acco – P.E Hladik - V.Mahout - T.Rocacher

Avant tout la forme ! Enseignement PRATIQUE mixte entre TP- APP-BE … Peu de cours (fait au fil de l’eau en séance) Nécessité de mettre les mains dans le cambouis Version actuelle Puce STM32  continuité avec le Cortex M3 de l’assembleur Finalité : développer un projet d’un « petit » système embarqué (bateau, station météo, useless box…)

Déroulement des séquences Différentes séquences Série de TP « classiques » en salle info: appréhender, en autonomie mais de façon guidée, les principaux périphériques. Travail en individuel Séances de TD : concevoir le code du projet le plus formellement possible ou séquences de remédiation pour ceux en difficulté. Projet (par équipe, en binôme ou seul selon avancement) en salle électronique : réutiliser de briques faites en TP et gestion d’un projet « complet ». …et des QCM pour valider l’UF. Horaires calés entre 11h00 et 15 h30….pause repas « quand ça va bien! »

Objectifs généraux (1) Appréhender la notion de périphérique Pas tous les périphériques Comprendre les principes de base Se former à la programmation non séquentielle (interruption) préalable au notion de Temps réel Être capable de mettre en pratique Travail sur le STM32 Même environnement que l’assembleur Processeur très performant et ’’actuel’’ Réutilisation du langage C (avec des normes et des règles)

Objectifs généraux (2) Se former aux techniques de mise au point (et un peu de test) Débogage avancé Outils de test Mode simulé et mode réel Savoir lire une documentation « data sheet » STM32 = pdf de 995 pages Se confronter (un peu) à la gestion de projet Travail en équipe sur le projet Partage des tâches

Evaluation Evaluation par compétence (pas de notes) Compétences de bases (celles pour obtenir l’UF) – S’acquièrent au cours de la série de TP notamment Expliquer le principe de fonctionnement des périphériques les plus couramment rencontrés Développer un programme au niveau périphérique (registres des périphériques de micro-contrôleur) Utiliser un outil de développement et de débuggage pour micro-contrôleur (IDE) Compétences avancées : programmation avancée et approche globale d’un système – Projet

QCM Méthode d’évaluation Un QCM est associé est chacun des 6 sujets de TP. Quand le TP est achevé et après autorisation de l’enseignant possibilité de passer le QCM Chaque QCM peut être tenté au plus 3 fois (mais pas à la même séance) Dès que les 6 QCM sont validés => passage en projet OBJECTIF : avoir validé les 6 QCM à la séance 7 Obligation : avoir tenté l’ensemble des QCM à la séance 8 Si à la séance 11 l’ensemble des QCM n’est pas validé, l’étudiant repasse l’ensemble des QCM (équivalent session 2)

Validation de l’UF Règles d’obtention UF validée en session 1 Niveau A : tous les QCM ont été validés avant le séance 8 et le projet est bien réalisé UF validée en session 1 Niveau B : tous les QCM sont validés mais l’avancement et la qualité du projet ne sont pas suffisants UF validée en session 2 Niveau B : les QCM sont validés à la séance 11 Le jury d’UF à la fin de la formation statuera pour les cas ne satisfaisant pas à ces conditions suffisantes.

Périphériques de microcontrôleur…. Attention !!! Le 1er QCM intégrera des questions sur ce qui suit… Périphériques de microcontrôleur….

Ses périphériques par STmicro Son cœur : le cortex d’ARM ! Ses périphériques par STmicro Le STM32 c’est ça !

Fonction de base : communiquer industriel Bus Mesurer le temps Grandeur binaire (Capteur, Codeur,.. Actionneurs (Moteurs, Leds, …) Grandeur physique (T°, vitesse,pression,…)

Les ports E/S : généralités Les broches du circuit : connexion physique Fonction élémentaire : niveau « binaire » Notion de port : regroupement en 8 bits (octet) ou en 16 bits (mot) Association de registres d’E/S à chaque port pour lire ou écrire sur l’extérieur. Electronique liée à la gestion de ces E/S Registres de configuration  avoir des connaissances de l’électronique de câblage du processus (ex: push/pull ou open drain)

Structure basique sur le STM32 L’électronique interne (à configurer!!!) permet de fixer la direction (et plus même sans affinité) Possibilité de lire via un registre d’entrée (Port) La broche de sortie peut également « attaquer » ou « recevoir » une fonction alternative : (compteur, PWM,….) … ou d’écrire via un registre de sortie and co La broche d’entrée/sortie = Accès au monde extérieur Existence de protection électrique mais prudence dans vos câblages !!! Utilisation d’une alternate function  configuration des broches d’E/S!!!

Généralités sur les fonctions alternatives Réalisent une fonction particulière Micro-machine indépendante du « core » Communiquent ou pas avec l’extérieur Se configurent à travers R/W des registres Dialoguent avec le core du microcontrôleur par les registres mais aussi (et surtout) par l’envoi d’interruption Chef d’orchestre : le gestionnaire d’interruptions (NVIC) Sur les STM32 : grosses unités parfois fort complexes

Les timers /compteurs Les grandes familles Comptent ou décomptent des impulsions périodiques (horloge = timer) ou non périodiques (compteur) Evénement essentiel : le débordement (overflow ou underflow)  interruption, changement de l’état de bascules de sorties,…

Principe du timer (1)

Principe du timer (2) En choisissant correctement h et reload : Mise en place de tâches périodiques

Principe du timer (3)

Timers du STM32 Différents timers 16 bits avec autoreload 1 timer  avancé : TIM1 3 timers « généraux » : TIM2 TIM3 et TIM4 1 timer du cortex : Systick 2 timers de type « watchdog » Les TIMx = multiples et complexes fonctionnalités PWM Capture/Compare Codeurs incrémentaux ….

Les grandes familles L’ADC Convertit un tension analogique en valeur numérique Généralement plusieurs canaux multiplexés sur un seul convertisseur Entrée admissible : 0 – 5 volts Conversion sur 8bits : précision 19.6 mV Conversion sur 10bits : précision 4.88 mV Conversion sur 12bits : précision 1.22 mV

ADC du STM32 2 convertisseurs (ADC1 et ADC2) 12 bits Multiplexage possible de 16 voies externes ADC12_IN16 connecté à un capteur de température interne Temps de conversion : 1.17 µs Différentes possibilités : Simple acquisition Acquisition continue Scan, … Accès possible en DMA

Les grandes familles La PWM Engendre des signaux carrés asymétriques Fréquence rapide + ratio réglable = valeur moyenne vue de l’extérieur. Equivalence avec un DAC

Principe de la PWM (1) La fréquence de la PWM tape dans les basses fréquences : pas glop…. Dans l’exemple : le gain statique est unitaire

Principe de la PWM (2) On augment la fréquence de la PWM , les effets fréquentiels diminuent….

Principe de la PWM (3) A haute fréquence (relatif à la fréquence de coupure du système) : comportement « quasi continu » : ici échelon constant de 0.75*3 = 2,25

PWM du STM32 Fonction intégrée aux timers TIM1 à TIM4 Le timer est programmé (base de temps + reload) pour assurer la base de temps (fréquence de la PWM) Un second registre permet (par comparaison avec la valeur du timer). Grossièrement l’algo est le suivant : reg = ratioPWM * reload Si timer < reg alors sortie = état bas Si timer  reg alors sortie = état haut Différents cycles de fonctionnement sont possibles

Les grandes familles Les Capture/Compare Associées à un timer (spécifique ou général) Capture : permet de « dater » un événement Sur événement extérieur ( sur une broche par exemple) : on mémorise dans un registre annexe la valeur du timer Compare : permet d’attendre un nombre d’événements Le registre annexe contient une valeur comparée avec celle contenue dans le timer (compteur). L’égalité déclenche interruption et/ou basculement d’une broche de sortie

CapCom du STM32 C’est pas gagné Là aussi fonctions intégrées aux timers TIM1 à TIM4 C’est pas gagné

Les grandes familles Les « bus » d’échanges avec l’extérieur Echange d’informations numériques Le plus simple : liaison série (synchrone ou asynchrone) : facile à fabriquer avec des ports E/S et 1 timer Implémentation des couches physiques dans le circuit Grosses utilités : Rajout de périphériques extérieurs : exemple convertisseur DAC sur bus SPI Dialogue avec des systèmes hôtes (ex debug) STM32 : CAN, USB, SPI, I²C, USART. En gros la totale

Considérations de programmation …ou comment s’y prendre

De la notion d’interruption Un périphérique fait des demandes d’interruption (conversion ADC terminée, débordement de timer, …) Une interruption acceptée = détournement via la table des vecteurs d’interruption (IVT) Soit on gère en assembleur cette table Soit on utilise le compilateur qui connait et impose le nom des routines d’exception  va remplir la IVT si on utilise ce nom pour une procédure. Le fichier (assembleur) STM32F10X.s contient les noms prédéfinis Voir la documentation rédigée à ce sujet

Exemple Waouh ! SysTick_Handler (! Majuscule!) /*------------------------------------------------------------------------------ Systick Interrupt Handler SysTick interrupt happens every 10 ms *------------------------------------------------------------------------------*/ void SysTick_Handler (void) { static unsigned long ticks; static unsigned long timetick; static unsigned char leds = 0x01; if (ticks++ >= 99) { // Set Clock1s to 1 every 1 second ticks = 0; Clock1s = 1; } // Blink the LEDs depending on ADC_ConvertedValue if (timetick++ >= (ADC_ConvertedValue>>8)) { timetick = 0; leds <<= 1; if (leds == 0) leds = 0x01; GPIOB->ODR = (GPIOB->ODR & 0xFFFF00FF) | (leds << 8); } // end SysTick_Handler SysTick_Handler (! Majuscule!) Procédure d’interruption pour le timer Systick Sur demande d’IT de ce timer cette routine est exécutée Cette routine est (évidement) void/void Waouh !

Les registres avancent masqués Chaque famille de périphérique est définie par une structure Exemple pour les ports E/S contenant les différents registres qui le composent Après instanciation sur une adresse particulière (fournie par STmicro) On accède aux registres qui nous intéressent avec -> typedef struct { vu32 CRL; vu32 CRH; vu32 IDR; vu32 ODR; vu32 BSRR; vu32 BRR; vu32 LCKR; } GPIO_TypeDef; #ifdef _GPIOB #define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) #endif GPIOB->ODR = 0x45A2;

Pourquoi as-tu le masque ? Programmer un périphérique = modification D’un registre entier (rarement le cas) Pas de pb par exemple GPIOB->ODR = 0x45A2; Un bit d’un registre (mise en marche par exemple) Cortex a la possibilité de bit-banding  envisageable par une instruction De plusieurs bits ou d’un champ de bits d’un registre Obligation d’appliquer un masque si on ne veut pas modifier le reste du registre .

Exemple de mise à 1 On applique 1 avec l’opérateur OU Ex : mise à 1 des bits de poids 2 et 5 de l’octet Bobo :

Exemple de mise à 0 On applique 0 avec l’opérateur ET Ex : mise à 0 des bits de poids 0 et 3 de l’octet Bibi :

Extension A partir des deux principe de base précédents : Possibilité de l’étendre à des champs de bits Possibilité de contrôler les valeurs maximales applicables à un champ de bits Ce principe permet d’avoir une programmation Sûre Lisible (au final) Générique Voir la documentation rédigée à ce sujet

Structuration de programme Assez rapidement on vous imposera la structuration suivante pour vos applications : Qualité logicielle Généricité Sûreté

A vous de jouer…