Oscilloscope-MUXSCOPE
- Détails
- Catégorie : Projets intel MAX10
- Publication : vendredi 28 juillet 2023 18:02
- Écrit par Super Utilisateur
- Affichages : 1068
Le projet MUXSCOPE vise à développer un mini‑système d’acquisition fonctionnant comme un oscilloscope compact. La vidéo ci‑dessous illustre la capture des données issues de l’ADC LTC1420A. Notre interface graphique affiche les données brutes, avec une légère décimation pour faciliter la visualisation. Un générateur Picoscope série 2000 est utilisé pour produire les signaux de test à différentes fréquences (sinus, carré, sin(x)/x, triangle, gaussien, bruit blanc).
Pourquoi un oscilloscope ?
L’oscilloscope est un instrument de mesure incontournable, utilisé aussi bien par les étudiants que par les professionnels de l’électronique. Il intervient à chaque étape clé : développement, mise au point, diagnostic et maintenance des systèmes électroniques. Sa capacité à visualiser les signaux en temps réel en fait un outil essentiel pour comprendre et analyser le comportement d’un circuit.
Étudier l’architecture d’un oscilloscope numérique constitue également un excellent support d’apprentissage. Cela permet d’aborder de manière concrète les notions fondamentales de l’acquisition de données, du traitement du signal et de l’informatique embarquée. C’est un terrain idéal pour développer une compréhension complète de la chaîne de mesure, depuis le capteur jusqu’à l’affichage.
La figure ci-dessous représente l'architecture système retenue pour ce projet :

1. Introduction
Les logiciels embarqués interviennent dans une grande variété de secteurs techniques — automobile, aéronautique, multimédia et bien d’autres — ce qui implique que les compétences d’un ingénieur ne peuvent se limiter à la maîtrise d’un seul langage de programmation. La diversité des environnements, des contraintes et des architectures exige une compréhension globale des systèmes, allant de l’électronique au traitement du signal, en passant par les protocoles de communication et l’intégration matérielle.
L'objectif de ce projet :
SoC FPGA intel MAX10
- Vous débutez dans le monde du FPGA ? Pas d’inquiétude. Ce projet est conçu pour vous accompagner pas à pas dans la découverte des bases de l’électronique numérique, au travers d’un parcours progressif et structuré.
Goto On-board programming
- Langage C, VHDL- AHDL, C++
Développement
- Vous serez peut‑être amené à travailler pour la première fois sur un FPGA SoC, ce qui constitue une excellente occasion de mettre en pratique plusieurs compétences complémentaires. Ce projet vous permettra d’utiliser le langage C pour la partie logicielle embarquée, le VHDL pour la logique programmable, ainsi que le C++, le PHP et le Python pour le développement de l’application GUI et des outils associés.
2. Architecture modulaire proposée
L’architecture retenue s’appuie sur plusieurs modules électroniques disponibles dans le commerce, complétés par une carte d’interface développée par AUPAZE Technologies. Cet ensemble constitue une base simple, modulaire et parfaitement adaptée aux phases de prototypage comme à l’apprentissage de la chaîne d’acquisition numérique.
Les éléments utilisés sont :
-
Module ADC LTC1420CGN (prototype) — utilisé pour les premières expérimentations autour de l’acquisition haute résolution.
-
Carte d’interface breadboard — conçue pour faciliter le prototypage, les tests rapides et l’interconnexion des différents modules.
-
Module FPGA BeMicro Max10 — cœur logique du système, assurant le traitement numérique et la gestion des flux de données.
-
Module UM232H FTDI — interface de communication haute vitesse entre le FPGA et l’ordinateur hôte, permettant le transfert et la visualisation des données.
Cette architecture modulaire offre une grande souplesse pour l’évolution du projet et constitue un support idéal pour comprendre les interactions entre électronique analogique, logique programmable et communication numérique.

La version stabilisée du projet intègre désormais l’ensemble des éléments validés lors de la phase de prototypage. Elle regroupe les fonctionnalités essentielles, les choix techniques consolidés et les améliorations issues des premiers tests :
-
Elle comprend :
-
La carte d’extension MUXSCOPE‑LTC1420A, équipée d’un ADC LTC1420CGN et d’un DAC 16 bits DAC5683. Un multiplexeur a été ajouté afin de sélectionner différentes sources de tension appliquées à l’entrée de l’ADC.
-
Une carte d’interface générique, destinée à accueillir les cartes d’extension actuelles et futures.
-
Le module FPGA BeMicro Max10, cœur logique du système.
-
Le module UM232H FTDI, assurant la communication haute vitesse entre le FPGA et l’ordinateur hôte.
Cette architecture constitue une base robuste et évolutive pour la suite du développement, tout en offrant un support pédagogique complet pour l’étude de la chaîne d’acquisition numérique.

-
2.1 ADC LTC1420 @10Ms/s
Le FPGA MAX 10 intègre un ADC fonctionnant à 1 Ms/s, mais nous avons choisi d’utiliser un ADC externe afin de bénéficier d’un taux d’échantillonnage plus élevé, porté à 10 Ms/s. Cette approche reflète les pratiques courantes en électronique embarquée, où les FPGA sont souvent utilisés pour interfacer des capteurs à haut débit, en raison des contraintes temps réel et du volume important de données à traiter.
L’ADC LTC1420 dispose d’une interface parallèle, ce qui constitue un excellent terrain d’apprentissage. Vous serez amené à manipuler des composants fondamentaux de l’électronique numérique — bascule D, registres à décalage, multiplexeurs — pour construire votre chaîne d’acquisition et concevoir vos machines à états. Cette mise en pratique permet de comprendre concrètement comment s’articulent les blocs logiques au sein d’un système d’acquisition performant.
2.2. Carte BeMicroMax10

2.3 Le module FTDI UM232H
Ce module est utilisé pour établir un moyen de communication à haut débit (40Mbytes/s) avec le module BeMicroMax10.

3. Architecture logicielle
La figure ci-dessous représente l'architecture logicielle retenue pour le développement des différents firmwares.

4. Soc FPGA
Les ressources du module BeMicroMax10 seront configurées et utilisées pour réaliser la chaîne d'acquisition du signal analogique.
- Interfaçage du module ADC
- Acquisition du signal numérisé par l'ADC au débit de 10Ms/s
- Interface du module USB FTDI
- Gestion du module d'acquisition et transfert des données au PC.
5. Application graphique et contrôle du système
Le développement d’une application graphique permet de visualiser le signal numérisé et d’interagir directement avec le système d’acquisition. Cette interface offre la possibilité d’implémenter des fonctions logicielles destinées à contrôler le fonctionnement du module FPGA, mais aussi à gérer l’affichage et l’analyse des résultats.
Les fonctionnalités actuellement disponibles sont :
-
Décimation des données avant l’affichage des échantillons bruts, afin d’optimiser la lisibilité.
-
Trigger logiciel sur front montant, permettant de synchroniser l’affichage des courbes.
-
Contrôle de la base de temps, pour ajuster la fenêtre d’observation.
-
Réglage de l’échelle de tension, afin d’adapter l’affichage aux amplitudes mesurées.
-
Commande Start/Stop pour lancer ou interrompre l’acquisition.
-
Pause de l’acquisition, utile pour analyser une forme d’onde figée.
-
Relecture des pages d’acquisition, permettant de naviguer dans les données enregistrées.
Cette interface constitue un outil complet pour explorer la chaîne d’acquisition, comprendre le comportement du système et expérimenter différentes configurations en temps réel.
5. Protocole d’interface ouvert et extensible
Le système repose sur un protocole d’interface volontairement simple et entièrement ouvert, conçu pour être facilement compris, réutilisé et étendu. Cette approche permet à chacun de développer ses propres outils logiciels, d’ajouter des fonctionnalités spécifiques ou de créer des drivers personnalisés adaptés à des besoins particuliers.
Le protocole se caractérise par :
-
Une structure de trames minimaliste, facile à analyser et à reproduire.
-
Des commandes explicites, permettant de piloter le FPGA, configurer l’acquisition ou interroger l’état du système.
-
Une documentation claire, facilitant l’intégration dans n’importe quel environnement logiciel.
-
Une compatibilité naturelle avec plusieurs langages (C, Python, C++, PHP…), ce qui ouvre la voie à des interfaces graphiques, des scripts d’automatisation ou des outils de diagnostic avancés.
Cette ouverture fait du MUXSCOPE non seulement un outil pédagogique, mais aussi une plateforme évolutive sur laquelle chacun peut bâtir ses propres extensions logicielles.