Année Universitaire : 2017/2018 Devoir surveillé Semestre : S1 Niveau d’Etude : 2ième année Ing Date : Novembre 2017 Matière : Systèmes à microprocesseur et techniques d'interface Enseignant Responsable: Ben Fradj Hanene Durée : 1h30 Documents : non autorisés Nombre de pages : 3 Remarque : donner des réponses claires et lisibles. Exercice 1 1. Donner les différents types d'interruptions gérés par le STM32 F4. les exceptions système synchrone exple exception suite à un overflow les interruptions asynchones déclenchés par les périphériques du STM32 exemple receive interrpt du UART, End of conversion du ADC, transmit interrupt du SPI,.... les interruptions asynchrones en provenance de l'extérieur du STM32 , 2. Quelle est le périphérique principale responsable à la gestion de tous types d'interruptions? NVIC 3. Expliquer les différentes étapes suivies par le STM32F4 pour traiter et servir une interruption. -reception d'un IRQ - sauvegarder le contexte du programme principale dans la pile avec des push - accéder à Nested vector interrupt pour rechercher l'adresse de l'ISR et l'écrire dans le registre PC - exécution de l'ISR relative -restauration du contexte du programme principale 4. Comment peut-on configurer et utiliser ce périphérique d'une façon software? 1 déclaration , configuration et enfin initialisation d'une structure de type NVIC. ( voir le cours pour les différents champs de la structure) Exercice 2 On veut réaliser une application, à base du microcontrôleur STM32F4, qui permet de détecter le niveau d'un liquide dans un réservoir (réservoir de carburant dans une voiture par exemple) et l'affichage d'un message "niveau bas de liquide" si le niveau du liquide est inférieur à un seuil (fixé par le concepteur). En effet, le capteur sera connecté au STM32F4 via la broche PC13 et envoie un signal analogique image du niveau du liquide dans le réservoir. Cette valeur sera en permanence convertie en valeur numérique par le ADC ( Analog Digital Converter), puis comparer à une constante (seuil). Si la valeur mesurée est inférieure au seuil, le microcontrôleur envoie le code ASCII du message " niveau bas de liquide " à un écran pour être affiché, via le périphérique de communication série UART à travers la broche PB3 ET aussi il doit fermer un interrupteur pour que le système puisse s'alimenter d'un autre réservoir. L'interrupteur est connecté au STM32 via la broche PB2. C'est la carte STM32 Discovery qui sera utilisée pour développer et implémenter cette application. L'interrupteur nécessite une alimentation égale à celle du STM32F4 alors que l'écran nécessite une tension supérieure de 12v. Capteur de niveau signal analogique Ecran PB3 PC13 STM32 F4 PB2 Interrupteur Figure 1 : Schémas de l'application de mesure et affichage 1. Identifier Tous les périphériques du STM32 qui seront utilisés pour cette application et expliquer brièvement le rôle de chacun. ADC, USART, RCC, GPIOB, GPIOC 2 2. Donner un schémas (plus détaillé que la figure 1) qui explique l'application, met en relief tous les périphériques ainsi que l'enchainement de l'information entre les périphériques identifiés et le processeur CortexM4. 3. Donner les configurations à faire pour chaque périphérique (uniquement les périphériques détaillés en cours ) ainsi que les grandes étapes de l'algorithme de cette application. - déclaration de deux ou trois structures GPIO pour la configuration - configuration : pin PC13 mode = analog pin PB3 mode = AF pin PB2 mode = out - initialisation - distribution de l'horloge au GPIOB et GPIOC à travers bus AHB1 au ADC à travers le bus APB1 ou APB2 au USART à trvars bus APB1 ou APB2 en ce référençant à l annexe - utilisation de la fonction GPIOAF... () pour relier Pin PB3 ou USART pour les détails de programmation voir le cour pas de NVIC ni EXTI à configurer 3 4