Mokrani S, Oumessaoud D.
Mokrani S, Oumessaoud D.
Mokrani S, Oumessaoud D.
Thème :
« Conception et Réalisation d’un Oscilloscope Numérique Avec
le microcontrôleur STM32 »
Soutenu le : 08/10/2020
Promotion 2019/2020
Remercîments :
« Je dédie ce travail à mes très chers parents qui n’ont jamais cessé de me
soutenir tout au long de mon parcours, qui ont toujours crus en moi, je ne les
remercier jamais assez pour tous leurs sacrifices et tous leurs amours, à mes
chers frères Mourad, Farid, Ahcene, Hocine et mohamed, à ma belle-sœur
Radjae et à ma grand-mère Fathma.
A tous mes chers ami(e)s de la promo, à Kenza, Melissa, Nawal et Lylia. »
MOKRANI Sabrina
« Je dédie ce travail, fruit de 17 ans d’études, en premier lieu à mes parents qui
m’ont toujours soutenu, qui m’ont fait confiance et qui ont toujours mis à ma
disposition tous ce dont j’avais besoin dans le seul et unique but de réussir et de
m’épanouir ainsi qu’à toute ma famille.
Tout comme je le dédie à mes chers et fidèles ami(e)s Samir, Nounou, Kenza et
Melissa avec qui j’ai partagé les 5 plus belles années de ma vie, qui ont toujours
été à mes côtés et qui ont toujours crus en moi. »
OUMESSAOUD Damya
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
SOMMAIRE
1|P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
2|P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
3|P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
LISTE DE FIGURES :
Figure 1: Le système général de communication. [1] .............................................................. 10
Figure 2 : Classification morphologique des signaux. [2] ........................................................ 12
Figure 3 : Classification spectrale des signaux.[3] ................................................................... 12
Figure 4 : Signal transitoire. [4] ................................................................................................ 13
Figure 5 : Signal périodique. [4] .......................................... Figure 6 : Signal aléatoire. [4]13
Figure 7 : Représentation temporelle. [5] ..... Figure 8 : Représentation spectrale. [5]13
Figure 9 : Synthèse d'un signal. [6] .......................................................................................... 14
Figure 10 : Modulation d'un signal. [6] .................................................................................... 14
Figure 11 : Le filtrage du bruit. [6] ........................................................................................... 14
Figure 12 : Le codage. [6] ........................................................................................................ 15
Figure 13 : Les étapes de numérisation d'un signal. [7] .......................................................... 15
Figure 14 : L'échantillonnage. [7] ............................................................................................. 16
Figure 15 : Erreur de quantification. [7] .................................................................................. 17
Figure 16 : Correction de l'erreur de quantification. [7] ......................................................... 17
Figure 17 : Erreur de quantification symétrique. [7] ............................................................... 17
Figure 18 : L'erreur d'offset et de gain. [7] .............................................................................. 18
Figure 19 : La non-linéarité. [7] ................................................................................................ 18
Figure 20 : Erreur de code manquant et de monotonicité. [7] ............................................... 19
Figure 21 : Schéma de principe d'un CAN n-bits à simple rampe. [8] ..................................... 19
Figure 22 : Le signal rampe. [8] ................................................................................................ 20
Figure 23 : La sortie du comparateur. [8] ................................................................................ 20
Figure 24 : La sortie de la porte logique. [8] ............................................................................ 20
Figure 25 : CAN flash à 3 bits. [8] ............................................................................................. 21
Figure 26 : Les tensions de seuil. [8] ........................................................................................ 21
Figure 27 : Le circuit de codage. [8] ......................................................................................... 22
Figure 28 : La fonction de transfert d'un CAN flash à 3 bits. [8] .............................................. 22
Figure 29 : Convertisseur à approximations successives. [7] .................................................. 23
Figure 30 : CNA à réseau de résistances pondérées. [9] ......................................................... 24
Figure 31 : CAN à réseau de résistances R-2R. [9] ................................................................... 24
Figure 32: Oscilloscope Analogique. ........................................................................................ 25
Figure 33: Oscilloscope Numérique. ........................................................................................ 25
Figure 34:Oscillogramme. ........................................................................................................ 25
Figure 35:Structure d'un oscilloscope analogique. [10] .......................................................... 26
Figure 36:FONCTIONNEMENT DE L’OSCILLOSCOPE ANALOGIQUE. [11] ................................. 27
Figure 37:FONCTIONNEMENT de l'oscilloscope numérique. [11] ........................................... 28
Figure 38:la bande Passante. [11] ............................................................................................ 29
Figure 39:structure générale d'un système embarque. [12] ................................................... 33
Figure 40:Classification des systèmes. [13] ............................................................................. 34
Figure 41:les éléments interne d'un microcontrôleur. [14] .................................................... 35
4|P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
5|P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
LISTE DE TABLEAUX
Tableau1 : Architecture Cisc et Risc………………………………………………………………………………………7
Tableau 2 : Modes de configuration d’un GPIO…………………………………………………………………..43
6|P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
7|P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
8|P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
INTRODUCTION GENERALE
Afin de mieux comprendre et apprivoiser son environnement, qui ne s’exprime que par
des signaux (Ondes, Vibrations, Electricités, …), l’homme a dû mettre en œuvre des moyens
lui permettant de l’étudier.
Dans le domaine de l’électricité par exemple, il existe des dispositifs nous permettant de
réaliser des mesures ponctuelles des signaux électriques, qui se traduisent par l’affichage
d’une valeur numérique sur un écran ou par la déviation d’une aiguille sur un cadran (un
voltmètre, un ampèremètre, un wattmètre ou un multimètre). Sauf que ces appareils ne nous
permettent pas de suivre la variation des signaux en question dans le temps et c’est dans
cette optique là que l’oscilloscope s’avère utile.
Chapitre 4 : La réalisation : Nous avons cité, au cours de ce chapitre, les différents outils et
logiciels de développement utilisés et aussi présenté des captures du projet.
9|P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
LE TRAITEMENT DU SIGNAL
INTRODUCTION
Pour être perçu, le monde physique s’exprime par des signaux analogiques, sous
différentes formes (Son, chaleur, Image, etc…) ; et pour être compris et traités, de nombreux
chercheurs et savants ont travaillé sur ceux-ci, donnant naissance à la discipline du traitement
du signal.
10 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
LE SIGNAL
2.1. Définition
Dans le langage courant, un signal est une information variable dans le temps et
l’espace qui fait appel à un des 5 sens : l’odorat, l’ouïe, le goût, le toucher et la vue. On peut
donc le trouver sous différentes formes : une image, un son, un texte, une odeur … etc.
Quant au point de vu physique, un signal est une grandeur, qui dépend du temps,
pouvant être représenté de façon mathématique.
On peut également le définir comme étant le support qui sert à véhiculer une
information de sa source à sa destination.
2.2. Classification
Tout comme leurs formes diverses, les signaux ont différents critères de classification. Ils
peuvent être classés selon le temps, la fréquence ou même l’énergie.
❖ Classification phénoménologique :
On s’intéresse à l’évolution du signal en fonction du temps. On distingue ainsi deux types :
a) Les signaux déterministes : Un signal est dit déterministe ou certain si, à n’importe quel
moment sa valeur peut être déterminée avec certitude par un modèle mathématique.
Il en existe deux types :
➢ Signaux périodiques : Un signal x(t) est dit périodique si, ∃T ∈ R, T > 0, tel que ∶
x(t) = x(T + kT), ∀k ∈ Z (Si T est le plus petit réel alors il est appelé Période). Il
peut être composite (la répétition à l’infini d’un motif) comme le signal
rectangulaire, sinusoïdal ou pseudo aléatoire (signal aléatoire qui se répète).
➢ Signaux non-périodiques : ce sont des signaux qui ne satisfont pas la relation
précédemment citée. Ils se composent d’une part des signaux quasi- périodiques
(formés d’une somme de signaux sinusoïdaux) et d’autre part des signaux
transitoires (dont l’existence est limitée dans le temps).
11 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
12 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
❖ Classification énergétique :
En s’intéressant à l’énergie et à la puissance d’un signal, on trouve 2 catégories :
a) Signaux à énergie finie : ce sont des signaux à puissance nulle. On peut citer les signaux
transitoires et les signaux éphémères [Figure 4].
b) Signaux à énergie infinie : ce sont des signaux à puissance finie. On peut citer les
signaux périodiques [Figure 5] et les signaux aléatoires [Figure 6].
LE TRAITEMENT DU SIGNAL
3.1. Définition
a) Le traitement du signal : C’est une discipline technique qui, en se basant sur la théorie du
signal, les techniques de l’électronique, de l’informatique et de la physique, vise à créer,
analyser et filtrer le bruit des signaux quels qu’ils soient, pour en extraire un maximum
d’informations.
b) La théorie du signal : C’est la science qui vise à représenter mathématiquement, dans les
domaines temporels [Figure 7] et spectrale [Figure 8], un signal.
c) Le bruit : C’est une perturbation qui, en s’appliquant à un signal, peut gêner sa détection.
13 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
3.2. Etapes
Le traitement du signal passe par trois grandes étapes et chacune a son propre
déroulement.
a) La création : cette étape consiste en l’élaboration du signal à transmettre et cela en
passant par :
14 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
ii. Codage : pour une conversion à un signal numérique qui permettra l’étude sur des
appareils numériques tels qu’un ordinateur ou éviter le bruit de fond. [Figure 12]
LA CONVERSION ANALOGIQUE-NUMERIQUE
4.1. Définition
4.2. L’échantillonnage
C’est l’étape qui nous permet d’extraire des morceaux du signal à des intervalles de temps
constants, nommés périodes d’échantillonnage T e.
Mathématiquement parlant [Figure 14], l’échantillonnage consiste en, la multiplication
dans le domaine temporel et la convolution dans le domaine spectral/fréquentiel, de la
fonction représentant le signal par la fonction représentant un peigne de Dirac.
15 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
❖ Le théorème de Shannon :
Pour reconstruire un signal de sortie de manière fidèle au signal d’entrée, il faut choisir
une fréquence d’échantillonnage deux fois supérieure à la fréquence maximale, contenue
dans le signal d’entrée : 𝑓𝑒 ≥ 2𝑓𝑚𝑎𝑥 . [7]
A titre d’exemple, la fréquence d’échantillonnage des CD est de 44.1kHz, du fait que la
plage de fréquence audio à laquelle l’ouïe humaine est sensible est située entre 20 Hz et
20kHz.
4.3. La quantification
Pour qu’un ordinateur, ou n’importe quel autre appareil numérique, puisse lire et traiter
le signal échantillonné, il doit être représenté par des valeurs binaires et c’est là le rôle de la
quantification.
Ainsi, chaque valeur échantillonnée se verra attribuer une valeur binaire sur n bits, ce qui
nous donne un niveau de quantification N=2n. On peut définir d’autres paramètres aux côtés
du niveau de quantification, à savoir :
❖ La pleine échelle : notée VPE, elle représente la plage de variation acceptable de la
tension analogique. Autrement dit c’est la valeur maximale échantillonnée.
❖ Le pas de quantification : aussi appelé quantum, résolution ou LSB, il représente la
dimension de division de la pleine échelle, selon le niveau de quantification. Il est donc
défini comme suit :
𝑞 = 𝑉𝑃𝐸 /2𝑛
16 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
On remarque que l’erreur oscille entre 0 et -1 LSB. Sauf que pour une meilleure
reconstitution il est préférable qu’elle soit centrée autour de 0, de sorte à quantifier
ou par excès ou par défaut. Pour cela un décalage d’1/2 LSB est effectué lors de la
première transition, comme il est indiqué sur la [Figure 16].
Ainsi, l’erreur devient symétrique et vaut ±1/2 LSB. Comme le montre la [Figure 17].
17 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
4.4. Le codage
❖ Erreur de linéarité : Elle est due à la variation de la résolution des convertisseurs, mais
n’est mesurée que si les erreurs d’offset et de gain sont réglées [Figure 1-19]. Il en
existe deux types :
- La non-linéarité différentielle, notée DNL, est la différence entre l’écart mesuré et le
LSB théorique qui vaut 1.
- La non-linéarité intégrale, notée INL, représente l’écart entre les valeurs réelles et les
valeurs théoriques. C’est également une représentation cumulative du DNL.
18 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
❖ Codes Manquants : ce sont les codes de sortie auxquels aucune valeur d’entrée ne sera
attribuée. [Figure 1-20]
❖ Monotonicité : L’erreur de monotonicité apparait quand les codes de sortie n’évoluent
pas de manière croissante pour un signal d’entrée croissant. [Figure 1-20]
Avec le développement inouï que vit l’électronique aujourd’hui, on trouve un vaste choix
de convertisseur mais tous se basent sur 3 principaux types : les convertisseurs à simple
rampe, les convertisseurs parallèles et les convertisseurs à approximations successives.
❖ Convertisseur simple rampe
Comme le montre la [Figure 21], un convertisseur à simple rampe est composé d’une
entrée de tension Ue, un générateur de rampe, un comparateur, un circuit de logique de
commande, une porte ‘&’, un compteur binaire, une horloge et plusieurs sorties binaires.
19 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
Par la suite, A(t) ainsi que le signal d’horloge H(t) passent en entrée de la porte logique
‘&’ pour avoir un signal B(t) dont le nombre de période est proportionnel au temps ou A(t)
est à l’état haut et donc proportionnel à l’amplitude de la tension d’entrée U e(t). [Figure 24]
Pour finir, B(t) passe par le compteur binaire, qui fournira à sa sortie la valeur, en binaire,
N du nombre de périodes de B(t) et c’est la représentation numérique de l’entrée analogique
Ue. Quant à la remise à zéro, elle peut être assurée par le circuit de la logique de commande
ou par le front montant d’un circuit monostable qui aura A(t) comme entrée.
Ce type de convertisseurs offre un avantage de simplicité et de faible coûte. Par contre,
ses inconvénients sont :
- La lenteur, puisqu’une conversion nécessite 2N cycles d’horloge.
20 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
- Une erreur d’environ 1.5 quantum, car il n’y a pas de synchronisation entre l’horloge et
la remise à zéro.
C’est donc, pour palier à ces inconvénients, qu’on trouve :
- Des convertisseurs à double rampe, qui effectuent une double intégration du signal
(passage par le circuit générateur de rampe), pour éliminer les erreurs dues aux
composants.
- Convertisseurs à rampe numérique qui eux remplacent le circuit d’intégration
analogique (le générateur de rampe) par un convertisseur numérique analogique.
❖ Convertisseur parallèle
Il est aussi appelé convertisseur à comparateurs en échelle, puisqu’il est composé de 2 N -
1 comparateurs montés en échelle, par lesquels passent 2 N-1 tensions de seuil. Ces tensions
de seuil sont obtenues par 2N résistances connectées en série entre Vref et la masse qu’on
appelle « pont diviseur ».
Pour une quantification linéaire par défaut, toutes les résistances seront identiques. Mais
pour une quantification linéaire centrée, la résistance liée à la masse sera égale à R/2, celle
liée à Vref égale à 3R/2 ; quant aux autres, elles seront identiques et vaudront R.
21 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
S2 = D
̅+F
S1 = BD
̅ + CD
S0 = AB ̅ + EF̅ + G
Ce type de convertisseurs est réputé pour sa rapidité puisque la conversion est effectuée
en un seul coup d’horloge. Mais face à cela, se pose un problème de coût et de complexité
qui croient exponentiellement avec le nombre de bits. C’est donc pour cette raison que leur
résolution est limitée à 12 bits.
❖ Convertisseur à approximations successives
Ce type de CAN [Figure 29] est constitué d’une boucle de rétroaction, composée d’un
registre à approximations successives (SAR), d’un convertisseur numérique analogique (CNA)
et d’un comparateur. Son principe se base sur la recherche dichotomique, puisqu’à chaque
coup d’horloge l’intervalle de recherche est divisé par 2.
22 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
Au premier top d’horloge, un chiffre binaire, dont tous les bits sont à 0 sauf le MSB, est
produit par le SAR et passe vers le CNA, pour avoir la tension équivalente. Ensuite la tension
à convertir Va est injectée, après passage par un filtre et un échantillonneur, à l’entrée non-
inverseuse du comparateur et la tension résultant du CAN, qui est égale à V ref/2, est injectée
à l’entrée inverseuse. Si Va est inférieure à Vref/2, alors le MSB est mis à 0 sinon, il reste à 1.
Et ainsi de suite, les autres bits, jusqu’au LSB, sont testés par le même principe.
Malgré l’ancienneté de leur approche, les convertisseurs SAR restent très répandus, grâce
au temps de conversion fixe qui est indépendant de la taille de l’information à numériser. Et
on le trouve par exemple dans les microcontrôleurs STM32.
LA CONVERSION NUMERIQUE-ANALOGIQUE
5.1. Définition
Tout comme les CAN, les CNA provoquent eux aussi les erreurs de conversion, citées dans
le point 4.5, à savoir : l’erreur de gain, l’erreur d’offset, l’erreur de linéarité et la monotonicité,
auxquelles, on ajoute :
❖ Le temps d’établissement : Il représente le temps que met la tension de sortie à se
stabiliser.
23 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
24 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
EXAMPLE D’UTILISATION
Afin de traiter des signaux et en extraire des informations, il existe de nombreuse variété
d’applications de mesures qui permettent de mettre en œuvre les techniques de traitement
de signal. Parmi ces applications on peut citer l’oscilloscope, le scanner, le radar… Dans ce qui
suit nous nous baserons principalement sur l’oscilloscope puisqu’il représente l’objectif de
notre travail.
L’oscilloscope, qu’il soit analogique [Figure 33] ou numérique [Figure 32], est un appareil
de mesure qui permet de visualiser la variation dans le temps de grandeurs physiques
préalablement transformées en tension grâce à un convertisseur ou des capteurs.
Les signaux captés sont tracés sur un graphique XY, appelé oscillogramme [Figure 34], à
partir de deux entrées différentes, où l’axe horizontal X représente le temps et l’axe vertical
Y représente la mesure de tension.
Figure 34:Oscillogramme.
L’usage le plus commun est avec l'axe Y, contrôlé par une sonde connectée au système
testé ; et l'axe X contrôlé par une base de temps interne pouvant fonctionner à différentes
fréquences.
Si l’entrée X est laissée non connectée et l'entrée Y est attachée à un signal, qui oscille
rapidement ; la trace à l'écran clignote rapidement de haut en bas et trace simplement une
25 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
ligne verticale. En appliquant la base de temps sur l'axe X, le signal d'entrée variable est
réparti horizontalement, de sorte qu'il est possible de voir comment il varie dans le temps.
Pour lire la courbe sur l’écran de l’oscilloscope :
- Sur L’axe vertical Y (axe des tensions) : on multiplie le nombre de divisions lues par
la sensibilité verticale choisie (tension/div).
- Sur l’axe horizontale X (axe des temps) : on multiplie le nombre de divisions lues par
la base de temps (temps/div).
❖ L’oscilloscope analogique
26 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
❖ L’oscilloscope numérique
Ce type d’oscilloscope est le plus répondu actuellement. Il n’utilise pas un tube à rayons
cathodique mais plutôt un CAN, pour échantillonner le signal mesuré et le convertir en une
information numérique ; qui sera ensuite utilisée pour reconstruire une courbe sur l’écran.
Un oscilloscope numérique est composé d’un amplificateur vertical d’entrée analogique,
d’un système d’acquisition formé d’une mémoire, d’un CAN et d’un microprocesseur, un
système horizontal qui comprend une horloge et une base de temps, des circuits d’affichage
et de reconstruction de la forme d’onde, un écran LCD et une alimentation. [Figure 37]
Quand l’oscilloscope est connecté à un circuit, le système vertical ajuste l’amplitude du
signal de la même manière que dans l’oscilloscope analogique ; ensuite le CAN du système
d’acquisition échantillonne périodiquement le signal mesuré avec une fréquence
27 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
28 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
❖ La bande passante :
Elle permet d’indiquer la fréquence maximale que l'oscilloscope peut capturer et
analyser ; quand la fréquence se rapproche de la fréquence maximale la précision de
l’oscilloscope diminue. Elle permet également d’indiquer la fréquence pour laquelle le signal
affiché est réduit à 70,7% de l’amplitude à l’entrée (cette atténuation de 70,7% est appelée
l’atténuation à -3dB). [Figure 38]
❖ Le temps de montée :
Le temps de montée de la forme d’onde est la durée que met le signal pour passer de
10% à 90% de sa valeur ; c’est un autre moyen de décrire la fréquence utile d’un oscilloscope.
La relation entre le temps de montée et la bande passante est présentée par la formule :
Temps de montée (en secondes) = 0,35/ La bande passante (HZ).
Un oscilloscope ne peut pas afficher correctement un temps de montée plus rapide que celui
spécifié, comme le temps de montée de l’oscilloscope.
❖ La sensibilité verticale :
Elle correspond à l’échelle verticale de l’oscillogramme, elle indique de combien
l’amplificateur vertical peut amplifier un signal faible à l’entrée. La plus petite tension qu’un
oscilloscope d’usage général peut détecter est d’environ 2 mV par division. Il faut régler la
sensibilité verticale de telle sorte que la courbe occupe tout l’écran.
❖ La résolution verticale :
Résolution d'un instrument en termes de mesure, est le plus petit incrément que
l'instrument indique ou affiche. La résolution verticale d’un oscilloscope numérique est liée
au nombre de bits du CAN.
29 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
❖ Le couplage :
L’utilisateur a le choix de filtrer ou non le signal entrant. Il existe trois types de couplage
d’entrée (modes d’entrées) : AC, DC, GND.
- En GND (masse) : l’entrée est reliée à la masse de l’instrument, pour servir de référence
aux mesures d’amplitude.
- En AC (alternatif) : la composante continue du signal, est bloquée par une capacité et ne
sera pas transmise.
- En DC (continu) : toutes les composantes du signal sont transmises, le signal sera transmis
tel qu’il est.
❖ Sonde :
Une sonde d’oscilloscope est une composante essentielle, pour effectuer la mesure des
tensions à laquelle elle est destinée. Elle permet d’augmenter l’impédance de l’oscilloscope.
Elle est composée de deux bouts de configuration différents ayant différentes fonctions :
- Le premier bout est formé d’une pointe conductrice qui permet par contact, de
mesurer les signaux électriques.
- L’autre bout est équipé d’un connecteur de type BNC mâle qu’on connecte sur
l’oscilloscope.
CONCLUSION
Pour conclure ce premier chapitre, nous rappelons brièvement ce qui a été vu, à savoir :
Le traitement du signal, ces différentes étapes, les différents composants électroniques qui y
sont dédiés ainsi qu’un exemple concret de son utilisation qui est l’oscilloscope et qui
représente le principal objet de notre projet de fin d’étude.
30 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
31 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
2.1. Définition
Un système embarqué est un système informatique intégré dans le monde réel dont le
but est d’effectuer une tache bien spécifique, comme par exemple les circuits électroniques
qui se trouve dans les dispositifs mobiles, appareils ménagers, automobiles…
Du point de vue technique, un système embarqué est un système électronique complexe
avec du logiciel conçu pour répondre à des fonctionnalités données.
Il dispose d’une architecture semblable à celle des ordinateurs, puisqu’il est composé
d’une partie matérielle comportant un processeur, des mémoires, des interfaces d’entrées
sorties et un ensemble d’ASIC, et d’une autre partie logicielle représentant des programmes.
2.2. Caractéristiques
Les systèmes embarqués sont conçus autour d’un microcontrôleur. Ils comportent deux
parties, une partie programmable, entourés principalement d’ASICs et une autre partie
regroupant des capteurs et des actionneurs qui interagissent continuellement avec
l’environnement et d’autres systèmes externes.
32 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
L’architecture, représentée dans la [Figure 39] peut varier selon les systèmes. Mais
l'architecture de base est la plupart du temps composée de 3 unités principales, qui sont
défini comme suit :
❖ L’Unité de captages (d’acquisition) : Elle capte les informations de l’environnement
extérieur avec des capteurs.
❖ L’unité de traitement : Elle est principalement composée de :
- CAN : convertisseur analogique numérique, qui convertit les données analogiques
captées en données numérique afin que le processeur puisse les traiter.
- Processeur : Il s’occupe principalement du traitement des données.
- Mémoire : Elle permet le stockage de données.
- Logiciel : Il a souvent la fonctionnalité ou la tâche à exécuter qui est spécifique à
l’application.
- ASICs : Ce sont des circuits dédiés à des applications spécifiques.
- CNA : convertisseur numérique analogique.
❖ L’unité de sortie : Elle comporte :
- Les actionneurs : c’est des dispositifs chargés d’agir sur l’environnement, en fonction
des informations reçues (ex : led, écran, moteur...). Ils sont couplés au CNA.
- L’IHM : c’est l’interface homme-machine ; permet la communication entre les deux,
comme par exemple : l’écran.
2.4. Classification
Les systèmes embarqués sont classés selon leurs relations avec l’environnement, et sont
présentés comme suit [Figure 40] :
33 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
Les systèmes embarqués sont conçus pour satisfaire et répondre aux fonctionnalités
d’une application spécifique. On peut donc distinguer 4 types d’applications visés :
❖ Calcul général : Ce sont des systèmes à usage général, avec une exécution similaire à
celle des ordinateurs.
Exemple : PDA, jeux vidéo.
❖ Contrôle de systèmes en temps réel : Ils contiennent généralement un système
d’exploitation temps réel (RTOS).
Exemple : système de navigation aérien.
❖ Traitement du signal : Ils permettent de réaliser des calculs sur de gros flux de
données.
Exemple : Radar.
❖ Réseaux et communication : Ils servent à la transmission de données.
Exemple : téléphone portable.
34 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
LES MICROCONTROLEURS
5.1. Définition
Un microcontrôleur est un circuit intégrant, à lui tout seul, les éléments indispensables à
un ordinateur, tel qu’un processeur, de la mémoire, des unités périphériques et des
interfaces d’entrées-sorties destinés aux systèmes embarqués.
Comparés aux microprocesseurs qu’on trouve dans les ordinateurs, les microcontrôleurs
permettent de diminuer la taille, la consommation et également le cout des systèmes.
Donc les éléments qu’on peut trouver, généralement dans un microcontrôleur, sont
présentés par la [Figure 41] et cités ci-dessous :
❖ Un processeur : sa capacité peut aller de 4 à 64 bits, selon le modèle choisis. Il effectue
principalement le traitement des informations et de données au rythme définie par la
fréquence d’horloge interne.
❖ Une mémoire volatile : dite RAM, est une mémoire à accès aléatoire en lecture et
écriture. Elle permet de stocker temporairement les données et variables utilisées au
cours d’exécution.
❖ Une mémoire morte : dite ROM c’est une mémoire, qui contient le programme de
démarrage qui permet de charger l’application depuis la mémoire flash. Il existe
plusieurs types de ROM : EPROM, EEPROM…
❖ Un oscillateur interne : qui permet de cadencer le rythme d’exécutions des
instructions du processeur.
❖ Les entrées sorties : ce sont des périphériques d’entrées-sorties, qui offrent la
possibilité au processeur de communiquer avec d’autre périphériques externes.
❖ Un watchdog ou chien de garde : qui va s’assurer que le système ne reste pas bloquer
à une étape particulière.
35 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
Il y’a plusieurs types de mémoires [Figure 42] dans les systèmes embarqués et elles sont
classifiées par différent critères.
❖ Les mémoires vives ou volatiles (RAM) : Sont des mémoires à accès aléatoire en
lecture et écriture. Elles permettent de stocker temporairement des données. On
distingue deux types :
- SRAM : C’est une mémoire statique à accès aléatoire, utilisée souvent dans les
mémoires caches pour exécuter un bout de code critique (piles…).
Avantage : très rapide, simple d’utilisation.
Inconvénient : petite densité de sauvegarde, chère.
- DRAM : C’est une mémoire dynamique à accès aléatoire, elle contient le
programme en exécution.
Avantage : grande densité de sauvegarde.
Inconvénient : Moins rapide, Nécessite un rafraichissement périodique.
36 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
❖ Les mémoires mortes ou non- volatiles (ROM) : S4nt des mémoires à lecture seule
avec un temps d’accès lent par rapport à la RAM. Elles contiennent le programme de
démarrage, qui permet de charger l’application depuis la mémoire flash. On distingue
4 types :
- PROM : C’est une ROM vierge programmable une seule et unique fois. Inconvénient :
pas reprogrammable
- EPROM : C’est une mémoire qu’on peut programmer électriquement (en lui
appliquant une tension de + 12V), et qu’on peut effacer (en l’exposant à des
rayons ultraviolets).
Avantage : Reprogrammable.
Inconvénient : peut-être endommagée avec un effacement répété.
- EEPROM : C’est une mémoire qu’on peut programmer et effacer en lui appliquant
des tensions électriques.
Avantages : L’écriture et l’effacement sans dispositifs, l’effacement répété ne
l’endommage pas.
- FLASH : Cette mémoire est utilisée pour sauvegarder le programme du système
embarqué, qui sera chargé de la mémoire flash à la RAM pour être exécuter. Elle
est connue pour sa grande densité de sauvegarde. On peut trouver deux types de
mémoire flash :
➢ LA NAND-FLASH : lente mais a une grande densité de sauvegarde.
➢ LA NOR-FLASH : rapide mais a une petite densité de sauvegarde.
Inconvénient : endommagement de la mémoire avec l’écriture répétée.
5.4. Le jeu d’instructions CISC et RISC
37 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
Les processeurs ARM [Figure 44] sont des processeurs à architecture RISC de 32 Bits, qui
sont toujours en cours de développement. Il y’a une large gamme de processeurs ARM qui se
38 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
démarquent par leurs architectures et leurs cœurs (Core). Ce sont les processeurs ARM-
Cortex.
39 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
LA STM32
4.1. Présentation
40 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
41 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
42 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
4.2. Fonctionnalités
❖ Les GPIOs
Un GPIO est un moyen de communication entre le microcontrôleur et les périphériques
externes.
L’µc STM32F446RE est suffisamment munie de broches d’entrées-sorties à usage
général ; ayant typiquement 50 broches bidirectionnels, programmable à un niveau de
tension 3.3V. Ces broches sont disposées en plusieurs ports avec différentes lignes d’E/S.
Ces ports sont nommés A, B, C, D, E et H et sont tolérant à 5V (PA0-15, PB0-15, PC0_15,
PD2, PH0-1).
Donc, pour configurer un périphérique relié à une broche, il suffit de configurer les GPIOs
Correspondant en utilisant le module HAL_GPIO.
Les caractéristiques principales de la GPIO sont :
- Un GPIO a différents modes de configuration [Tableau 2-2], ils sont présentés dans
le tableau qui suit :
Modes Description
D’entrée : GPIO_MODE_INPUT Mode d’entrée : c’est le mode de base pour une
entré (elle n’a aucune source de signal).
On peut fixer l’état des résistances : à 0 Pull-up, à 1
pull down.
De sortie : _OD : Mode Open Drain en sortie.
GPIO_MODE_OUTPUT_ _PP : Mode Push-Pull en sortie.
GPIO_MODE_ANALOG Mode Analogique
Alternative : _OD : Mode Open Drain en Alternative.
GPIO_MODE_AF_ _PP : Mode Push-Pull en Alternative.
Interruption : _RISING : détection d’interruption au front montant.
GPIO_MODE_IT_ _FALLING : détection d’interruption au front
descendant.
_RISING_FALLING : au front montant et descendant.
Evènement : _RISING : détection de déclanchement d’évènement
GPIO_MODE_EVT_ au front montant.
_FALLING : au front descendant.
_RISING_FALLING : au front montant et descendant.
Tableau 2 : Modes de configuration d’un GPIO. [18]
- Un multiplexage très flexible des broches : permet l'utilisation des broches d'E/S
comme GPIO avec une simple configuration sans, pour autant connaitre les
registres, leurs mappages en mémoires ou la manière de configuration des
périphériques.
- Attribution séparée des vitesses pour les E/S.
43 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
❖ Les UARTs :
La communication avec l’UART se fait par l’envoie d’une série de bits (trame) sur un seul
fil. [Figure 48]
44 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
❖ Timer :
En général, un Timer est un compteur électronique, avec une fréquence de comptage qui
représente une fraction de son horloge source. Il a une résolution qui dépend de son
architecture et contient donc l’amplitude des valeurs sur lesquelles il peut compter. Par
exemple un timer de résolution de 8 bits peut compter de 0 à 255 et génère un événement
lorsqu’il atteint 255.
La fréquence de comptage d’un timer est déterminée par son horloge. Pour ralentir celle-
ci, le prescaler (diviseur) intervient en effectuant une division sur la fréquence de l’horloge.
Quant à l’Autoreload (chargement autmatique), il contient la capacité maximale du
compteur. Par conséquent, il est associé au compteur, afin de contrôler le débordement.
[Figure 49]
45 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
• Le timer SysTick : Ce timer est dédié principalement aux RTOS, mais peut
également être utilisée comme un compteur descendant (downcounter) standard.
• Watchdogs timer : On distingue deux watchdogs :
- Un watchdog (chien de garde) indépendant : Il fonctionne indépendamment de
l’horloge principale en effet il est cadencé par un RC interne de 32 KHZ. Il peut
remplier deux fonctions : Celle de chien de garde pour réinitialiser l’appareil en
cas de problème, ou celle d’un timer d’exécution libre pour la gestion des délais
d’expiration des applications.
- Un watchdog de fenêtre : Il est cadencé à partir de l'horloge principale, il peut être
utilisé comme chien de garde pour réinitialiser l'appareil si un problème survient,
avec une capacité d'interruption d'alerte précoce.
❖ ADC
Le microcontrôleur STM32F446RE a trois modules ADC (ADC0, ADC1, ADC2) [Figure 51]
identiques de 12 bits qui sont basés sur la méthode d’approximations successives. Chaque
module possède jusqu’à 19 canaux multiplexés :
- 16 entrées externes.
- 3 entrées internes : VREFINT , VBAT , temp-
sensor.
- Une entrée de référence analogique positive
VREF+ : (1.8v ≤ VREF+ ≤ VDDA).
- Une entrée d’alimentation analogique VDDA
(1.8v≤ VDDA ≤ 3,6V) : (pour une vitesse
réduite) ou (2,4v ≤ VDDA ≤ 3,6V) : (à pleine
vitesse).
- Une entrée de référence analogique négative
VREF− : (VREF− = VSSA ).
- Une entrée de masse analogique VSSA .
- Un bloc de conversion analogique numérique.
- Un bloc de registre de données de 16 bits.
- Un bloc de commande d’interruption. Figure 50:LES CANAUX D’ENTRES ANALOGIQUES
- Un bloc de déclanchement de la conversion. DU MICROCONTROLEUR STM32F446RE. [19]
- Un watchdog analogique qui permet de
détecter si la tension d’entrée est au-delà des seuils définis par l’utilisateur.
Les modules ADC partagent 16 canaux d’entrées analogiques, la relation entres les pins
du µC et les canaux est présentée par la [Figure 50].
46 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
- Mode de Conversion :
❖ Single : conversion simple, qui peut être une seule conversion à partir d’un
canal.
❖ Scan : conversion multicanale, qui peut être une seule conversion à partir de
plusieurs canaux.
❖ Single continuous : conversion simple et continue, qui peut être plusieurs
conversions à partir d’un canal.
❖ Scan continuous : conversion multicanale continues, qui peut être plusieurs
conversions à partir de plusieurs canaux.
❖ Discontinuous : conversion séquentielle à partir de quelques canaux dans un
groupe.
- Le déclencheur de l’ADC peut être déclenché par logiciel (HAL_ADC), par matériel
interne (timers) ou externe (les broches EXTI-11, EXTI-15), afin d’effectuer
l’opération de conversion analogique-numérique.
- Le stockage de données est configurable avec DMA (Direct Memory Access).
- L’horloge du bloc ADC (ADCCLK) est générée à partir de l’horloge APB2, divisée par
un prescaler programmable ; cela permet donc à l’ADC de fonctionner avec des
vitesses d’horloges allant jusqu’à 42 MHZ.
- Le temps de conversion total est le temps d’échantillonnage + 12 cycles d’horloge,
cela permet un taux d’échantillonnage et de conversion allant jusqu’à 2,4 Msps
(millions of samples per second).
- Un groupe de conversion se compose d’une séquence de conversions qui peut être
effectué sur n’importe quel canal et dans n’importe quel ordre. La conversion est
organisée en deux groupe :
❖ Groupe régulier : il est composé de jusqu’à 16 conversions, c’est un groupe
de canaux fixe régulièrement converti.
❖ Groupe injecté : il est composé de jusqu’à 4 conversions, il peut interrompre
temporairement une conversion d’un groupe régulier car il est plus
prioritaire,
47 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
❖ DMA
Le DMA est un module important du microcontrôleur [Figure 52]. En effet, étant donné
que le stockage des valeurs converties d’un canal est effectué dans un seul registre de
données, il est important d’utiliser le module DMA pour une conversions de plusieurs canaux
réguliers, ce qui permet d’éviter la perte de données.
48 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
Il est également utilisé pour effectuer un transfert de données à haute vitesse en arrière-
plan, sans avoir recours aux ressources du processeur. Ce qui signifie que le processeur peut
effectuer d’autres taches en même temps.
Le microcontrôleur STM32F446RE possède deux modules DMA, chaque module est
caractérisé comme suit :
- Le DMA est basé sur une architecture complexe de bus matrix, il combine deux
architectures du bus maître AHB avec FIFO pour optimiser la bande passante du
système.
- Il a deux Architectures du bus AHB master (maitre), une dédiée aux accès mémoire et
une dédiée aux accès périphériques.
- Il a une interface de programmation AHB slave (esclave) prenant en charge uniquement
les accès 32 bits.
- Le DMA a un total de 8 flux (16 flux pour les 2 DMA).
- Chaque flux du DMA a jusqu’à 8 canaux sélectionnables, selon les bits CHSEL [2 :0] dans
les DMA_SxCR.
- Chaque canal est dédié à un périphérique spécifique et peut être sélectionner par
logiciel. Ce qui permet à plusieurs périphériques d’utiliser le DMA au même temps.
- Chaque canal a un tampon FIFO, d’une longueur de 4 mots (4 à 32 bits), ces tampons :
❖ Peuvent être utilisés pour stocker, temporairement, des données entrantes ;
ensuite quand le seuil sélectionnée (¼,2/4, ¾, ou plein) est atteint, le transfert
pourra commencer (mode FIFO).
❖ Peuvent également être utilisés en mode de transfert direct (mode direct).
- Mode de transfert : normal, circulaire (cas de tampons circulaires).
- Types de transfert :
❖ De mémoire en mémoire (seul le 2-ème module DMA pourra être utilisé)
❖ Transfert de mémoire en périphérique, et de périphérique en mémoire.
- Le module DMA est configuré pour incrémenter automatiquement l’adresse source et
l’adresse destination, après chaque transfert de données.
- Les priorités entre les demandes de flux DMA sont programmables par logiciel (4
niveaux, composé de : très haut, haut, moyen, bas) ou matériel en cas d'égalité
(demande 0 a priorité sur la demande 1, etc.). Ces priorités sont gérées par l’arbitre
(Arbiter).
- Les tampons FIFO peuvent être configuré comme double tampon (transfert en Ping-
Pong).
- Lorsque le mode FIFO est sélectionné, le transfert de donnée en rafale peut être utilisé
avec une taille de rafale de 4, 8 ou 16 unités de données.
- Le DMA à 5 flags d’événement (DMA Half Transfer, DMA Transfer complete, DMA
Transfer Error, DMA FIFO Error, Direct Mode Error) rassemblé dans une seule requête.
49 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
CONCLUSION
A l’issue de ce chapitre, nous avons expliqué en premier lieu, quelques notions sur les
systèmes embarqués en général et les microcontrôleurs en particulier. Puis nous sommes
passés à la présentation de microcontrôleur de la carte STM32F446RE NUCELO, ses
caractéristiques et les principales fonctionnalités sur lesquelles nous allons travailler.
Dans le chapitre suivant, nous allons entamer notre conception où nous avons présenté
l’architecture de notre projet et les différents aspects qu’il constitut.
50 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
CONCEPTION
1. INTRODUCTION
Comme tout projet informatique, la conception est une étape primordiale puisqu’elle
nous permet de structurer les idées et de définir les besoins et les objectifs visés afin de mieux
s’organiser et de préparer le terrain pour la réalisation. C’est donc dans cette optique que
nous allons présenter dans ce chapitre notre conception du système en question.
Nous allons commencer par la présentation du projet dans sa globalité et détailler par la
suite chacune des étapes suivis pour l’accomplissement de la tâche principale.
2. PRESENTATION DU PROJET
Notre travail consiste en la conception et la réalisation d’un oscilloscope numérique à
base d’un microcontrôleur STM32.
Pour y parvenir nous avons conçu une application embarquée dans la carte de
développement STM32-Nucleo et une application desktop.
En ce qui concerne l’application embarquée, elle a pour but de capturer des signaux
analogiques, de les traiter en utilisant les techniques de traitement du signal adéquates, pour
pouvoir les transmettre [figure 53]. Quant à l’application desktop elle nous permettra de
visualiser les signaux transmis par l’application embarquée sous forme de graphe appelé
oscillogramme.
3. PROBLEMATIQUE
Un oscilloscope numérique se doit d’assurer un bon traitement du signal puisqu’il faut
avoir en sortie un signal similaire au signal analogique en entrée. Le critère essentiel pour une
conversion analogique-numérique optimale est la fréquence d’échantillonnage puisque selon
le théorème de Shannon elle doit être au minimum égale à deux fois la fréquence du signal à
convertir. C’est donc là que se pose notre première problématique.
Concernant la visualisation, une communication doit être établie pour faire le pont entre
l’application embarquée qui traite le signal et l’application desktop qui l’affichera.
Toutefois, pour une meilleure performance, nous avons pensé à élargir la plage de
tensions acceptées par la carte de développement STM32F446RE NUCLEO, afin de lui
permettre l’acquisition de signaux allant de -12V à 12V.
51 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
4. SOLUTIONS
Pour assurer une bonne conversion du signal analogique nous avons eu recours au
périphérique ADC de la carte de développement STM32F446RE NUCLEO, que nous
déclencherons grâce à un timer qui fixera la fréquence d’échantillonnage. Puis nous
transmettrons les données résultantes grâce au périphérique UART qui assurera une
communication série.
Quant à l’élargissement de la plage de tensions, nous avons opté pour un circuit d’entrée
composé d’un pont de diodes permettant de différencier le signal positif du signal négatif et
de deux circuits atténuateurs de tensions.
5. APPLICATION EMBARQUEE
Cette partie du projet se base sur trois étapes principales présentées ci-dessous :
5.1. L’acquisition
Pour la capture de signaux analogiques allant de -12V à 12V, on a combiné trois circuits :
❖ Un pont de diodes :
Une diode est un composant électronique dipôle dont la polarité est déterminée par une
anode (fil positif) et une cathode (fil négatif). Elle est polarisée dans le sens direct si elle
permet au courant de circuler sinon elle agit comme isolant [Figure 54].
52 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
Le pont de diode appelé également pont de Graetz est un circuit redresseur à double
alternance composé de quatre diodes montées en pont. Sa structure astucieuse permet au
courant en entrée négatif ou positif de passer que dans un seul sens [Figure 56]. Lors de
l'alternance positive de la tension d'entrée, seules les deux diodes ayant une tension d'anode
supérieure à la tension de cathode sont conductrices. Les deux autres diodes seront bloquées
et ne laisseront donc pas passer le courant. Pour l'alternance négative, ce sont les deux autres
diodes qui conduisent [Figure 57].
53 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
54 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
Dans notre cas de figure, il faut atténuer une tension de 12V à 3.6V puisque c’est la
tension maximale supportée par la carte STM32F446RE NUCLEO. Notre circuite assurera
l’atténuation selon la formule suivante :
Vin × R2
Vcc =
R1 + R2
Avec :
- Vcc = La tension en sortie du circuit.
- Vin = La tension en entrée.
- R1 et R2 : des résistances.
En fixant la valeur de R2 et en sachant que Vin = 12V et que Vcc = 3.6V, on trouvera la
valeur de R1 selon la formule suivante :
(Vin × R2) − (Vcc × R2)
R1 =
Vcc
5.2. Le traitement
En l’appliquant à un pont de diodes, un signal peut passer par deux sorties selon son signe.
Pour cela il a fallu relier ces deux sorties à deux ADC. L’ADC1 se chargera de la conversion des
tensions positives, l’ADC2 de celles des tensions négatives. Et les deux seront déclenchés par
le Timer à usage général TIM2.
55 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
5.3. La transmission
La communication série représente l’une des méthodes les plus utilisée pour la
transmission de données binaires numériques entre un ordinateur et un autre périphérique
par le billet de connecteurs (ports série). Il existe deux types de transmission série :
• La transmission série synchrone : Un signal d’horloge commun est partagé entre
l’émetteur et le récepteur.
• La transmission série asynchrone : L’émetteur et le récepteur disposent chacun de
leur propre horloge, le début et la fin de la transmission sont déterminés
respectivement par le bit START et le bit STOP.
Cet échange est soumis à différents protocoles assurant ainsi la sécurité et la fiabilité de
la transmission série de données. On peut trouver plusieurs interfaces de communications
séries, les plus populaire sont : USB, UART, I2C, SPI.
Pour satisfaire notre besoin, nous allons nous servir du périphérique UART de la
STM32F446RE NUCLEO. Ses paramètres de configurations sont :
• Baudrate : qui permet de définir la vitesse de transmission qui est mis à 115200bits/s.
• Word length : qui permet de définir la taille maximale du mot à transmettre. Il est mis
à 8.
56 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
57 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
58 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
6. L’APPLICATION DESKTOP
6.1. Fonctionnement
Pour pouvoir visualiser les tensions captées, converties et transmises via le port série de
la carte STM32F446RE NUCLEO, nous avons conçu une application desktop qui sera
développée en Java. Elle représentera l’interface d’interaction avec l’application embarquée.
Cette application nous permettra de configurer selon le besoin les paramètres
d’affichage de l’oscillogramme [figure 62] comme dans un oscilloscope ordinaire, à savoir la
division du temps et celle de la tension. Elle assurera également la récupération des données
transmises à travers le port série de l’ordinateur auquel est connectée le microcontrôleur,
pour ensuite les afficher sur un graphe qu’on pourra manipuler avec les paramètres
d’affichages cités précédemment pour une meilleure visualisation.
Elle nous permettra aussi d’afficher certains détails des tensions reçus tel que Umin qui
est la valeur minimale de la tension, Umax qui est la valeur maximale de la tension et Ueff qui
𝑈𝑚𝑎𝑥
représente la valeur moyenne de la tension alternative calculé avec 𝑈𝑒𝑓𝑓 = .
√2
59 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
6.2. Architecture
L’architecture de notre application desktop est présenté comme suit [figure 63] :
60 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
6.3. Organigramme
61 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
8. CONCLUSION
Après avoir expliqué en quoi consiste notre travail et après avoir vu chacun de ses aspects
en détails nous allons passer dans le chapitre suivant à sa réalisation.
62 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
REALISATION
1. INTRODUCTION
Dans le chapitre précédent, nous avons exposé la problématique et les contraintes
imposées ce qui nous a conduit à proposer des solutions qui y répondent. La prochaine étape
consiste en la réalisation, qui permettra de mettre en œuvre tout ce qui a été dit
précédemment et développer le projet. Il va de soi que les solutions ne sont admises et
considérées comme réalisable que si les résultats des tests confirment leur validité et
efficacité.
Nous allons donc au fil de ce chapitre parler des environnements logiciels qui nous ont
servis pour le développement, réaliser le circuit du montage de l’oscilloscope et présenter
l’interface de l’application desktop avec des captures.
2. OUTILS ET LOGICIELS
2.1. Application embarquée
2.1.1. STM32CubeMx
STM32Cube est un outil logiciel de conception de microcontrôleurs STM32, disponible
gratuitement, cette puissante plate-forme de développement simplifie et accélère les projets
des clients.
La plate-forme de développement STM32Cube comprend le configurateur graphique
STM32CubeMX, utilisé pour générer des fichiers de configuration pour un microcontrôleur
STM32 conformément à la configuration matérielle de la carte choisie, un générateur de code
d’initialisation avec le langage C qui constitue un code de départ pour un projet quelconque.
Les principales caractéristiques du STM32CubeMX sont :
- La sélection du µC STM32.
- La sélection de la carte cible à partir d'une liste des cartes de STMicroelectronics.
- La facilité de la configuration du microcontrôleur (broches, arbre d'horloge,
périphériques, middleware).
- La génération du code d'initialisation en langage C.
63 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
64 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
- L’onglet Board Selector est utilisé dans le cas où il s’agit d’une carte développée par
ST, il permet de filtrer suivant le type de carte. L’outil propose pour chaque carte sa
configuration par défaut.
Après la sélection du µC ou d’une carte, une nouvelle fenêtre s’ouvre. Comme montré
dans la figure 69.
o La fenêtre principale :
La fenêtre principale affiche tous les composants et les menus de la STM32CubeMX
(Pinout, Clock Configuration, Configuration, Power Consumption Calculator).
65 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
Cette plateforme de développement nous permet de configurer selon nos besoins les
paramètres de configuration de l’ADC, du TIMER et de l’UART.
En ce qui concerne l’ADC nous pouvons spécifier [figure 70] :
- La résolution de l’ADC : 12, 10, 8 ou 6bits.
- Le diviseur d’horloge : 4, 6 ou 8.
- L’alignement de données : gauche ou droite.
- Le mode de conversion : continue, multiple, discontinue…
- Conversion avec ou sans DMA.
- Nombre de conversion à la fois.
- La source de déclenchement.
66 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
2.1.2. SW4STM32
System Workbench for STM32 (SW4STM32), est un IDE Eclipse, qui fournit une plate-
forme de développement logiciel pour les cartes STM32.
L’IDE aide à créer rapidement un projet C embarqué pour une carte cible donnée. Il
intègre un éditeur de code complet, des outils de compilation (compilateur, assembleur,
éditeur de liens ...) et des outils de débogage à distance.
Fonctionnalités de SW4STM32 :
- Base de données et bibliothèques pour les cartes et les µC STM32.
- Éditeur de code source.
- Générateur de scripts pour l’éditeur des liens.
- Outils de construction (compilateur croisé, assembleur et éditeur de liens basés sur
GCC) pour générer le fichier binaire.
- Outils de débogage (OpenOCD, GDB).
- Outils de programmation (flashage). [16]
67 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
L’interface graphique, qui nous sert de dispositif d’affichage pour notre oscilloscope, est
réalisée avec JavaFX Scene builder pour ensuite être généré avec java dans Eclipse Quant à
sa communication avec l’application embarquée elle a été rendue possible grâce à la
bibliothèque Java Simple Serial Connector.
2.2.1. Eclipse
Eclipse est une plate-forme de développement d’application Java développé par IBM, il
est créé sous forme d’un IDE et est constitué d’un ensemble de Framework d’applications, de
logiciels, d’outils open-sources.
Il est principalement connu pour ses plugins qui permettent aux développeurs de tester
du code écrit dans d’autres langages de programmation comme C, C++, PHP, etc.
Il représente plusieurs caractéristiques :
- Gratuit et open source.
- Disponible pour la plupart des systèmes d’exploitation.
- Ergonomique.
- Facile à prendre en main.
- Ouverture de son noyau, ce qui permet l’ajout de plugins comme des éditeurs XML,
HTML, JSP…
- Prend en charge plusieurs outils tel que : Ant, SVN, JUnit…
- Sa distribution est sous forme de bundles, qui contiennent des plugins préconfigurés
comme éclipse jee pour le développement Java EE ou encore éclipse -sdk pour le
développement de plugins.
- Disponibilité de plusieurs bibliothèques comme JavaFX, JSSC… [22]
2.2.2. JAVAFX
Pour concevoir des interfaces graphiques ergonomiques nous avons fait appel à JavaFX,
qui est une bibliothèque Java utilisée pour créer des applications enrichies. Les applications
écrites en utilisant cette bibliothèque peuvent fonctionner de manière cohérente sur
plusieurs plates-formes, et sur divers périphériques.
Pour développer des interfaces graphiques en utilisant le langage Java, les programmeurs
s'appuient sur des bibliothèques telles qu’Advanced Windowing Toolkit et Swings. Mais après
l'avènement de JavaFX, ils peuvent maintenant développer des applications graphiques
68 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
sophistiquées avec un contenu riche, cela grâce à l’ensemble d’API que cette bibliothèque
fournit pour la gestion des fenêtres graphiques. [24]
2.2.4. JSSC
Java-Simple-Serial-Connector est une bibliothèque Java autonome qui permet de
communiquer avec les ports série et par conséquent avec les périphériques reliés à ces ports.
Elle est considérée comme le remplacement de la bibliothèque RxTx qui n’est plus en
développement actif. JSSC est installable dans les IDE JAVA comme éclipse, Netbeans… Et est
également supportée dans les systèmes d’exploitation Windows, Linux, Mac, Solaris…
SCHEMA ELECTRONIQUE :
69 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
MAQUETTE :
Channel 1 [Figure 76] nous permet d’effectuer des réglages sur la sensibilité verticale du
graphe 2) de la [Figure 75], on y trouve les éléments suivants :
3) Menu déroulant Port : sélectionner le port auquel la carte est connectée.
4) Radio Bouton AC/DC : choisir de filtrer ou non le signal d’entrée selon ses
composantes.
5) Spinner Max Voltage : préciser la valeur maximale de la tension.
6) Spinner Division : manipuler les divisions verticales de l’oscillogramme.
7) Spinner YPOS : déplacer le graphe verticalement.
8) Bouton Details : permet d’afficher dans [figure 78] les détails concernant la tension.
9) Bouton Excel : fait une sauvegarde des données reçues dans un fichier Excel.
10) Bouton Word : fait une sauvegarde des données reçues dans un fichier Word.
11) Bouton Start : permet de lancer la réception des tensions via port série.
12) Bouton Stop : permet de déconnecter le port série et ainsi arrêter la réception.
13) Bouton Reset : remise à l’état initiale de tous les composants de l’interface.
70 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
Après avoir terminé avec Channel 1 on passe à Time [Figure 77] où on pourra effectuer
les réglages concernant la sensibilité horizontale de l’oscillogramme 2) [Figure 75] :
14) Spinner Max Time : préciser le temps maximum.
15) Spinner Division : manipuler les divisions horizontales de l’oscillogramme.
16) Spinner Xpos : Déplacer le graphe horizontalement.
71 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
Figure 77 : TIME.
Si on veut afficher des détails sur les tensions du signal reçues, on clique sur le bouton
Details (8) [figure 76], ainsi on aura dans [figure 78] les informations nécessaires tel que :
- Umax : la valeur de la tension maximale
- Umin : la valeur de la tension minimale.
- Ueff : la valeur efficace de la tension alternative.
- Umoy : la valeur moyenne de la tension.
72 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
CONCLUSION
Dans ce chapitre on a présenté les différents outils et logiciel de développement, nous
avons réalisé notre système tout en respectant les objectifs fixé au départ. Et nous avons
également présenté l’interface graphique de l’oscilloscope avec des captures.
73 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
CONCLUSION GENERALE
En guise de projet de fin du cycle Master spécialité Réseaux, Mobilité et Systèmes
Embarquées, nous avons travaillé sur la conception et la réalisation d’un oscilloscope
numérique à base d’un microcontrôleur STM32.
Pour assurer au mieux les fonctionnalités d’un oscilloscope nous avons configuré deux
ADC de la carte STM32F446RE NUCLEO, ADC1 ET ADC2, de sorte à ce qu’ils soient déclenchés
par un timer. Nous avons eu recours à deux ADC pour pouvoir convertir à la fois des signaux
à courant continus et des signaux à courant alternatif. En effet si nous choisissons de
visualiser un signal DC on n’activera que l’ADC1 puisqu’il n’a que des composantes positives.
Quant au signal alternatif, il nécessitera les deux ADC puisqu’il passera par un pont de diodes
qui séparera la composante positive de la composante négatives qui prendront donc deux
sorties différentes. Après conversion, les données résultantes seront stockées dans un
tampon en attendant d’être transmises via le port série USART2. Une fois la transmission
effectuée, l’application desktop intervient pour recevoir les données via le port série de
l’ordinateur auquel est connectée la carte de développement pour ensuite les représenter
sur un graphe qu’on nomme « Oscillogramme ».
En élaborant ce travail nous avons eu l’opportunité de mettre en œuvre les connaissances
acquises durant nos 5 années d’études concernant les systèmes embarqués, la
programmation orientée objet (Java, C), Les IHMs, … etc. Et comme à tout achèvement de
projet nous avons pu développer nos compétences, à la fois pédagogiques et personnelles,
puisque :
➢ Nous avons découvert ce qu’est le traitement du signal et toutes les techniques qu’il
englobe.
➢ Nous nous sommes mieux familiarisés avec les microcontrôleurs STM32.
➢ Nous avons acquis et mis en pratique certaines notions de base de l’électricité et de
l’électrotechnique.
➢ Nous avons eu une première idée du monde professionnel, puisque nous avons pris
en charge un projet et nous avons mené sa conception et sa réalisation à bout.
➢ Nous avons su bien gérer le travail de groupe.
➢ Nous avons su réagir aux conditions de travail inhabituelles imposées par la situation
sanitaire due au COVID19.
Pour conclure, nous espérons que notre travail soit à la hauteur des attentes, et qu’il sera
utile à toute personne ayant besoin d’un oscilloscope numérique.
Toutefois des perspectives d’améliorations de notre travail restent toujours envisageable,
nos évoquons ci-dessous des points de perspectives futures de l’application :
➢ Rajouter un autre canal (Channel 2), pour ainsi utiliser les 2 canaux à la fois (dual).
➢ Utiliser un écran tactile comme interface d’affichage.
➢ Augmenter les performances tel que la fréquence d’échantillonnage de l’ADC.
➢ Sauvegarder l’oscillogramme tel qu’il est.
74 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
REFERENCES
[1] http://nalya.canalblog.com/archives/2008/01/09/7499662.html
[2] https://sti.discip.ac-caen.fr/IMG/pdf/traitement_signal.pdf
[3] http://www.gipsa-lab.grenoble-
inp.fr/~christian.jutten/mescours/Cours_Theorie_Signal_2018.pdf
[4] https://www.youtube.com/watch?v=5ppzxUuh_rQ
[5] Francis Cottet, Aide-Mémoire Traitement du signal, Dunod 2000.
[6] https://moodle.insa-rouen.fr/pluginfile.php/6090/mod_resource/content/0/cours1.pdf
[7] https://www.emse.fr/~dutertre/documents/cours_convertisseurs.pdf
[8] https://www.youtube.com/watch?v=wmAgUqlPvXY&t=435s
https://www.youtube.com/watch?v=547Tjxiio20&t=6s
[9]https://www.youtube.com/watch?v=y7EcXlHnMEM&list=PLnFWhiyw5bCu5ndPAIYZjSwh
5KIO6OIzZ&index=3
https://www.youtube.com/watch?v=ugdmpmj8BpI&list=PLnFWhiyw5bCu5ndPAIYZjSwh5KI
O6OIzZ&index=4
[10] http://exam2ham.free.fr/donnees/oscillo/emission_spot.html
[11]https://cdn.rohdeschwarz.com/fr/general_37/local_webpages/Fondamentaux_dun_osc
illoscopeII.pdf
[12] http://perso.citi.insa-lyon.fr/trisset/cours/rts12/slides/cours_RTS12_intro.pdf
[13] https://mouridsmida.files.wordpress.com/2014/03/chapitre-1-2p.pdf
[14] https://www.les-electroniciens.com/sites/default/files/cours/hcs12.pdf
[15] https://www.esen.tn/portail/medias/documents/enseignement/1488739733495.pdf
[16] https://www.st.com/
[17] https://community.st.com/s/
[18] STM32 Reference Manual, RM0090.
[29] https://www.amazon.fr/Digital-Signal-Processing-Cortex-M-
Microcontrollers/dp/1911531166
[20] https://www.fluke.com/fr/apprendre/meilleures-pratiques/bases-des-
mesures/electricite/qu-est-ce-qu-une-diode
[21] http://www.elektronique.fr/cours/composant-diode.php
[22] http://www.elektronique.fr/cours/resistance/resistance.php
75 | P a g e
Conception et réalisation d’un oscilloscope numérique à base d’un microcontrôleur STM32
[23] https://www.techno-science.net/definition/517.html
[24] https://openjfx.io/
[25] https://www.oracle.com/java/technologies/javase/javafxscenebuilder-info.html
76 | P a g e