You are on page 1of 13

TP ARCH & PROG DSP

Professeur :
HECHMI Salhi

Réalisé par :

KHALUAOUI Chaima

AZOUZI Mouhamed

AYED Roua

Groupe :
IE5

2023-2024

1
TP1:
Objectifs:
L'objectif du TP est de se familiariser avec le Mbed Studio et d'écrire un algorithme
simple permettant d'allumer une LED à l'aide du Mbed.

Exercice 1 :
Le but de cet exercice est de faire clignoter la LED 1 de la carte STM32F429ZI toutes
les 1 seconde.

Programmation sur le Mbed studio :

2
Observation :

Exercice 2 :
Exemple 1 :

Le but de cet exemple et d’afficher l'état d’une bouton sur le moniteur série :

ON : ➔1

OFF: ➔ 0

Programmation sur le Mbed studio :

3
Observation :

Exemple 2 :

Le but de cet exemple est de faire clignoter la LED1 de la carte STM32F429ZI toutes
les 1 seconde en fonction de la valeur du bouton1. Si le bouton1 est pressé, la LED1
s'allume, sinon elle s'éteint.

4
Conclusion :
Ce TP a été une étape cruciale dans notre apprentissage, nous permettant de
maîtriser le Mbed Studio et de consolider nos bases sur le microcontrôleur STM32
en programmation embarquée. Cette expérience nous positionne solidement pour
des projets plus avancés, constituant ainsi une avancée significative dans notre
expertise avec les microcontrôleurs STM32 et le Mbed Studio.

5
TP2:
Notions « Timeur » et « Interruption »
Objectifs:
Mettre en œuvre un timeur matériel dans le cadre d’une interruption
Créer des routines d’interruption
Mettre en œuvre des timerus logiciels basés sur un timeur matériel
Comprendre le principe d’interruption externe
Mettre en œuvre les interruptions externes sur un microcontrôleur STM32
Mesurer le temps de calcul d’un traitement numérique

Timeur matériel :
Principe de fonctionnement :
Le timeur matériel utilise l'horloge interne de la carte pour générer des
interruptions régulières grâce à un compteur. La déclaration se fait avec la
classe 'Ticker' et une variable associée, par exemple 'toggle_led_ticker'. Ce
timeur génère des interruptions, appelées routines d'interruption, qui sont
des blocs d'instructions à exécuter périodiquement. La routine, telle que
'toggle_led()', doit être déclarée et définie. Enfin, pour paramétrer le
timeur, il faut l'initialiser avec la fonction attach(), associant la routine et
définissant la fréquence d'interruption. Par exemple, la fonction
'toggle_led()' est attachée au ticker 'toggle_led_ticker' avec une
interruption toutes les secondes.
Exemple :
L'objectif de cet exemple est de démontrer l'utilisation du module de
gestion du temps (ticker) dans le cadre de la programmation sur une carte
STM32 avec le framework Mbed. Plus spécifiquement, le code vise à créer
une séquence de clignotement régulier de la LED1 de la carte à une
fréquence d'une seconde, utilisant le mécanisme d'interruption du ticker
pour alterner l'état de la LED entre allumé et éteint.

6
Timeur logiciel :
Principe de fonctionnement :
Un timeur logiciel est une variable du programme décrémentée à chaque
interruption d'un timeur matériel. En paramétrant la valeur initiale du
compteur, on peut mesurer le temps précisément : ΔT = (N + 1) × TM. Cette
méthode permet la déclaration de plusieurs variables "timers" pour des
mesures temporelles distinctes.
Exemple de fonctionnement en mode astable :
Lorsqu'il est nécessaire d'effectuer une action de manière régulière et
répétée indéfiniment, cela correspond à un fonctionnement astable. Le
code ci-dessous illustre comment obtenir une telle opération sur deux
sorties distinctes, chacune ayant des périodes d'allumage et d'extinction
multiples d'un quantum de temps défini (1 ms dans cet exemple).

7
Observation :

8
Exemple de fonctionnement en mode monostable :
Il est également possible de déclencher une action pendant une durée
déterminée, telle que l'allumage d'une sortie pour une période prédéfinie
ou la temporisation d'un éclairage d'escalier. Ce mode de fonctionnement
est appelé monostable.
La fin de l'action est déterminée par la durée de temporisation, tandis que le
début de l'action est déclenché par un événement externe tel que le
changement d'une variable à une valeur spécifique ou l'appui sur un bouton
poussoir.
Dans l'exemple suivant, une minuterie de 500 ms est déclenchée à partir de
l'appui sur le bouton-poussoir USER_BUTTON.

9
Observation :

Interruption externe:
Principe de fonctionnement :
Les microcontrôleurs intègrent des fonctionnalités d'interruption externe
permettant une réponse rapide aux événements extérieurs. Ces
interruptions dévient l'exécution du programme principal vers des fonctions
spécifiques en cas d'événement. Le microcontrôleur dispose d'entrées
dédiées pour ces interruptions, et d'autres modules tels que les timeurs et
les convertisseurs analogique-numérique (ADC) peuvent également
interrompre le programme. Cette approche, fondamentale pour les
systèmes embarqués temps réel, assure que les sollicitations extérieures
sont traitées uniquement lors de leur occurrence. Les concepteurs
garantissent des réponses dans des délais préétablis en fonction des
performances des composants matériels sélectionnés.

10
Exemple d’application :
L'objectif de cet exemple est de démontrer l'utilisation des interruptions sur
un microcontrôleur STM32. Le programme associe deux fonctions
d'interruption, pressed et released, respectivement, à un front descendant
et à un front montant du bouton BUTTON1. Lorsque l'interruption est
déclenchée par le bouton, la fonction associée ajuste la valeur du délai . En
conséquence, la LED alterne son état avec une fréquence déterminée par la
valeur du délai, créant ainsi un clignotement dont la vitesse est modifiée en
fonction des interruptions du bouton.

Utilisation du Timeur pour mesurer le temps de calcul


d’un traitement numérique :
Dans les systèmes embarqués, en particulier ceux qualifiés de temps réel, la réactivité
aux sollicitations extérieures, comme la collecte de données des capteurs, est cruciale.
Le programme embarqué dans ces systèmes utilise des instructions qui demandent
un certain temps d'exécution. Il devient donc essentiel de mesurer le temps de calcul
d'une chaîne de traitement numérique pour caractériser le système, en particulier afin
de déterminer le temps de réponse aux sollicitations extérieures.

11
Principe de fonctionnement :
Les modules Timer reposent sur un compteur interne au microcontrôleur,
avec la possibilité de modifier la fréquence d'incrémentation de ce
compteur. Cela permet de mesurer le temps écoulé entre deux instants, t0
et t1, où le compteur passe respectivement des valeurs N0 à N1. Chaque
incrément du compteur correspond à la période du signal d'horloge associé
au module Timeur, donc la différence de temps Δt entre t1 et t0 peut être
calculée comme Δt = (N1 - N0) ⋅ TH, où TH est la période du signal
d'horloge.
Exemple d’application :

Observation :

12
Conclusion générale :
Grâce à ces deux travaux pratiques, nous avons acquis une expérience significative
dans l'utilisation de Mbed Studio, la programmation du microcontrôleur STM32, et
l'exploitation des différents timeurs, tant sur le plan logiciel que matériel. Ces
expériences ont renforcé notre compréhension des capacités du microcontrôleur et
de la manière dont il peut être exploité pour répondre aux exigences spécifiques
d'une application.

En particulier, nous avons appris à configurer et à utiliser les timeurs pour mesurer le
temps d'exécution de diverses tâches, à comprendre les différences entre les modes
astable et monostable, ainsi qu'à exploiter les interruptions externes pour rendre
nos systèmes plus réactifs aux événements extérieurs.

Mbed Studio s'est avéré être un environnement de développement puissant, offrant


des outils efficaces pour la programmation et la débogage des microcontrôleurs
STM32. Ces compétences nouvellement acquises nous permettront d'approfondir
notre compréhension des systèmes embarqués, de développer des applications plus
complexes et d'explorer davantage les fonctionnalités avancées de ces
microcontrôleurs dans des projets futurs.

13

You might also like