IMA3/IMA4 2019/2021 P19+ : Différence entre versions

De Wiki de Projets IMA
m (Semaine 2)
(Réalisation du Projet)
 
(6 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 37 : Ligne 37 :
  
 
==Prologue==
 
==Prologue==
 +
Avant tout, nous allons voir comment fonctionne un oscilloscope. Lorsque les oscilloscope numériques n'existaient pas, un oscilloscope fonctionnait avec un canon à électrons qui envoyait un faisceau d'électrons sur deux plaques horizontales qui déviaient le faisceau en fonction de la tension d'entrée.
 +
Par la suite, cette méthode n'était plus utilisée et on a changé les oscilloscope par des oscilloscopes numériques. Pour résumer le fonctionnement, un signal d'entrée va être traité par un convertisseur analogique-numérique. Lorsque l'information est convertie, elle est stockée puis ensuite envoyée sur un écran lorsqu'il y a assez de points à afficher.
 +
 
==Semaine 1==
 
==Semaine 1==
 +
Pour commencer, il nous faut réaliser un travail de documentation afin de trouver les composants nécessaires à la réalisation du projet. Premièrement, ce qu'on peut voir c'est que le projet est faisable de différentes manières et des personnes ont partagé leur travail sur internet. Le projet peut se faire à base d'un circuit logique programmable ou d'un microcontrôleur. On a par exemple un utilisateur du site Instructables.com qui a réalisé un mini oscilloscope à base d'un stm32 et d'un écran lcd. Il nous explique qu'il a utilisé le CAN du microcontrôleur pour convertir avec une vitesse de conversion de 1us par échantillon. Il a décidé de fiare un affichage sur un écran lcd avec une résolution de 160x128px.
 +
 +
 
Pour commencer le projet, nous allons voir les différentes manières de réaliser un oscilloscope. Il existe plusieurs façons de le réaliser comme par exemple à l'aide d'un FPGA ou d'un microcontrôleur STM32. En amont de la partie intelligente de l'oscilloscope, nous avons au moins un convertisseur Analogique/numérique afin d'envoyer la tension mesurée sur le FPGA ou microcontrôleur. Nous avons ensuite un écran LCD qui va permettre d'afficher le signal.  
 
Pour commencer le projet, nous allons voir les différentes manières de réaliser un oscilloscope. Il existe plusieurs façons de le réaliser comme par exemple à l'aide d'un FPGA ou d'un microcontrôleur STM32. En amont de la partie intelligente de l'oscilloscope, nous avons au moins un convertisseur Analogique/numérique afin d'envoyer la tension mesurée sur le FPGA ou microcontrôleur. Nous avons ensuite un écran LCD qui va permettre d'afficher le signal.  
 
[[Fichier:Schema_ard.png|350px|right|thumb|Schéma de fonctionnement avec Arduino]]
 
[[Fichier:Schema_ard.png|350px|right|thumb|Schéma de fonctionnement avec Arduino]]
  
 
Notre choix de microcontrôleur et de carte de développement s'arrête sur un des deux choix, la NUCLEO F401RE et la NUCLEO F412ZG. Ceux-ci seront tous les deux ouverts à la programmation, disposent déjà d'un ADC et peuvent être équipé d'un écran LCD. Le problème du F401RE est qu'il ne peut gérer qu'une seule channel de l'oscilloscope. Cela veut dire que notre microcontrôleur STM32F401 ne peut réaliser qu'une seule conversion analogique/numérique à la fois.
 
Notre choix de microcontrôleur et de carte de développement s'arrête sur un des deux choix, la NUCLEO F401RE et la NUCLEO F412ZG. Ceux-ci seront tous les deux ouverts à la programmation, disposent déjà d'un ADC et peuvent être équipé d'un écran LCD. Le problème du F401RE est qu'il ne peut gérer qu'une seule channel de l'oscilloscope. Cela veut dire que notre microcontrôleur STM32F401 ne peut réaliser qu'une seule conversion analogique/numérique à la fois.
 +
<br style="clear: both;" />
  
 
==Semaine 2==
 
==Semaine 2==
Avant de commencer la réalisation de l'oscilloscope, nous allons nous intéresser aux projets déjà existants et nous documenter pour voir quelle solution serait la plus viable.
+
 
En effet, des projets de ce genre existent déjà sur internet comme par exemple sur le site instructables.com où un utilisateur a réaliser un mini oscilloscope à base de microcontrôleur STM32F030F4 et d'un écran LCD avec une résolution de 160x128px. Le microcontrôleur possède un convertisseur Analogique/Numérique avec un temps de conversion minimal de 1 us. Pour la conversion, il va utiliser la conversion sur 8 bits pour pouvoir remplir l'axe Y et ses 128 pixels.
+
 
 +
==Semaine 3 et 4==
 +
On a pu remarquer que le CAN du stm32 n'était pas assez rapide comparé à ce que nous voulions. Nous avons donc commencé à nous orienter sur un module externe qui fasse la conversion, le stm32 traite l'information et la transfère dans une RAM et réutilise l'information pour l'afficher sur l'ordinateur via la connection USB. Nous avons donc commencé à chercher un module CAN et une SRAM à relier au stm32. Nous sommes parti au départ sur des modules externes pour carte de développement, mais il y avait peu de modules intéressants. Donc nous avons dû partir sur des circuits intégrés directement. Nous avons choisi un CAN 8bits ayant une vitesse de 50Mech/s. Concernant la RAM, nous avons trouvé une SRAM de 8x1 Mbit, ce qui devrait être largement suffisant pour stocker tous les points nécessaire à l'affichage. En attendant les composants nous avons continué de voir la programmation sur stm32
 +
 
 +
=Semaine 5=
 +
Lors de cette semaine nous nous sommes consacré à la réalisation du circuit imprimé qui allait recevoir les deux composants commandé. Nous avons tout d'abord créé un nouveau projet sur fritzing. Le CAN sera relié à un connecteur 1x6 en entrée et 1x9 en sortie. En complément, nous allons avoir 2 capacités de 1uF et une résistance de 25 ohms qui seront utilisés pour le pin 2 et le pin 6. Le problème sur fritzing, c'est qu'il est difficile de trouver le modèle du CAN  et de la RAM pour le routage de la carte. Par contre, on peut créer nos propres composants à partir du circuit intégré déjà existant sur Fritzing. Celui-ci peut être modifié pour être au format du boitier du CAN, qui est du SSOP.
 +
Le problème est en revanche venu pour la SRAM. En effet, nous avons un format TSOP-II qui n'est pas disponible et il n'y a pas possibilité de trouver un format similaire. Il faut donc trouver une alternative pour pouvoir faire le pcb et trouver les modèles nécessaires pour les composants commandés. Nous avons remarqué que les modèles de composants pouvaient être utilisé sur le logiciel Kicad qui est lui aussi un logiciel de conception électronique. Nous avons ainsi recommencé le schéma de câblage en commençant par le CAN. Cependant, pour le schéma de câblage de la RAM, il est surement incorrect compte tenu d'une mauvaise compréhension de la datasheet.
  
 
=Documents Rendus=
 
=Documents Rendus=
Ligne 67 : Ligne 80 :
 
*https://programmer.group/simple-oscilloscope-library-function-based-on-stm32.html
 
*https://programmer.group/simple-oscilloscope-library-function-based-on-stm32.html
 
*https://www.gameinstance.com/post/79/STM32-Oscilloscope
 
*https://www.gameinstance.com/post/79/STM32-Oscilloscope
 +
 +
*Datasheets :
 +
**http://www.farnell.com/datasheets/1497912.pdf
 
*https://projets-ima.plil.fr/mediawiki/index.php/IMA4_2018/2019_P5
 
*https://projets-ima.plil.fr/mediawiki/index.php/IMA4_2018/2019_P5
  

Version actuelle datée du 21 juin 2021 à 14:59


Présentation générale

Description

La puissance de calcul disponible à bas coût permet d'envisager de réaliser des appareils de mesures complexes en mode DIY (Do It Yourself). Dans ce projet, nous proposons la conception et la réalisation d'un oscilloscope pour des signaux analogiques et numériques (analyseur logique). L'oscilloscope sera constitué d'un microcontrôleur et/ou d'un FPGA, d'une partie d'acquisition de données, de stockage de données (RAM) et éventuellement d'une interface de visualisation.

Objectifs

Concevoir et réaliser un oscilloscope "maison" open source.

Préparation du projet

Cahier des charges

Choix techniques : matériel et logiciel

  • Matériel :
    • Microcontrôleur STM32.
    • Ecran LCD
    • Générateur basses fréquences
  • Logiciel/Language:
    • Langage C

Liste des tâches à effectuer

  • Analyser et définir des différents composants nécessaires
  • Programmer le CAN pour récupérer et stocker la valeur de l'amplitude à un temps donné
  • Programmer l'écran LCD pour visualiser un signal
  • Mettre en place une interface pour modifier l'échelle du signal.

Calendrier prévisionnel

Réalisation du Projet

Prologue

Avant tout, nous allons voir comment fonctionne un oscilloscope. Lorsque les oscilloscope numériques n'existaient pas, un oscilloscope fonctionnait avec un canon à électrons qui envoyait un faisceau d'électrons sur deux plaques horizontales qui déviaient le faisceau en fonction de la tension d'entrée. Par la suite, cette méthode n'était plus utilisée et on a changé les oscilloscope par des oscilloscopes numériques. Pour résumer le fonctionnement, un signal d'entrée va être traité par un convertisseur analogique-numérique. Lorsque l'information est convertie, elle est stockée puis ensuite envoyée sur un écran lorsqu'il y a assez de points à afficher.

Semaine 1

Pour commencer, il nous faut réaliser un travail de documentation afin de trouver les composants nécessaires à la réalisation du projet. Premièrement, ce qu'on peut voir c'est que le projet est faisable de différentes manières et des personnes ont partagé leur travail sur internet. Le projet peut se faire à base d'un circuit logique programmable ou d'un microcontrôleur. On a par exemple un utilisateur du site Instructables.com qui a réalisé un mini oscilloscope à base d'un stm32 et d'un écran lcd. Il nous explique qu'il a utilisé le CAN du microcontrôleur pour convertir avec une vitesse de conversion de 1us par échantillon. Il a décidé de fiare un affichage sur un écran lcd avec une résolution de 160x128px.


Pour commencer le projet, nous allons voir les différentes manières de réaliser un oscilloscope. Il existe plusieurs façons de le réaliser comme par exemple à l'aide d'un FPGA ou d'un microcontrôleur STM32. En amont de la partie intelligente de l'oscilloscope, nous avons au moins un convertisseur Analogique/numérique afin d'envoyer la tension mesurée sur le FPGA ou microcontrôleur. Nous avons ensuite un écran LCD qui va permettre d'afficher le signal.

Schéma de fonctionnement avec Arduino

Notre choix de microcontrôleur et de carte de développement s'arrête sur un des deux choix, la NUCLEO F401RE et la NUCLEO F412ZG. Ceux-ci seront tous les deux ouverts à la programmation, disposent déjà d'un ADC et peuvent être équipé d'un écran LCD. Le problème du F401RE est qu'il ne peut gérer qu'une seule channel de l'oscilloscope. Cela veut dire que notre microcontrôleur STM32F401 ne peut réaliser qu'une seule conversion analogique/numérique à la fois.

Semaine 2

Semaine 3 et 4

On a pu remarquer que le CAN du stm32 n'était pas assez rapide comparé à ce que nous voulions. Nous avons donc commencé à nous orienter sur un module externe qui fasse la conversion, le stm32 traite l'information et la transfère dans une RAM et réutilise l'information pour l'afficher sur l'ordinateur via la connection USB. Nous avons donc commencé à chercher un module CAN et une SRAM à relier au stm32. Nous sommes parti au départ sur des modules externes pour carte de développement, mais il y avait peu de modules intéressants. Donc nous avons dû partir sur des circuits intégrés directement. Nous avons choisi un CAN 8bits ayant une vitesse de 50Mech/s. Concernant la RAM, nous avons trouvé une SRAM de 8x1 Mbit, ce qui devrait être largement suffisant pour stocker tous les points nécessaire à l'affichage. En attendant les composants nous avons continué de voir la programmation sur stm32

Semaine 5

Lors de cette semaine nous nous sommes consacré à la réalisation du circuit imprimé qui allait recevoir les deux composants commandé. Nous avons tout d'abord créé un nouveau projet sur fritzing. Le CAN sera relié à un connecteur 1x6 en entrée et 1x9 en sortie. En complément, nous allons avoir 2 capacités de 1uF et une résistance de 25 ohms qui seront utilisés pour le pin 2 et le pin 6. Le problème sur fritzing, c'est qu'il est difficile de trouver le modèle du CAN et de la RAM pour le routage de la carte. Par contre, on peut créer nos propres composants à partir du circuit intégré déjà existant sur Fritzing. Celui-ci peut être modifié pour être au format du boitier du CAN, qui est du SSOP. Le problème est en revanche venu pour la SRAM. En effet, nous avons un format TSOP-II qui n'est pas disponible et il n'y a pas possibilité de trouver un format similaire. Il faut donc trouver une alternative pour pouvoir faire le pcb et trouver les modèles nécessaires pour les composants commandés. Nous avons remarqué que les modèles de composants pouvaient être utilisé sur le logiciel Kicad qui est lui aussi un logiciel de conception électronique. Nous avons ainsi recommencé le schéma de câblage en commençant par le CAN. Cependant, pour le schéma de câblage de la RAM, il est surement incorrect compte tenu d'une mauvaise compréhension de la datasheet.

Documents Rendus

Liens Utiles