Telechargé par GCH

DS STM32-Nov17- Correction.pdf · version 1

publicité
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
Téléchargement