LogiP : Analyseur logique portable (Portable logic analzer)

English version follows

Lors de mon parcours collégial, j'ai eu à réaliser un projet de fin d'études. Lors de ce projet, mon équipier et moi avons jetés les bases d'une itération 1 d'une Analyseur logique portable, basé sur un coeur 8051, d'un FPGA et d'un FIFO.

Le 8051 : CY7C68013A, de Cypress Semiconductor
Le FPGA : Un ancien modèle de Xilinx, 10 000 portes logiques.
LE FIFO : SN74V293, FIFO 64K avec flags E,H,F, etc.

Le système, quoique complet, ne fonctionnait pas à la hauteur de nos attentes : le 16K maximum de RAM du CY7C68013A nous limitait dans l'implantation d'une interface graphique complète en plus de limiter les ressources disponibles au code.
Ensuite, il y avait des erreurs de synchronisation entre le FPGA et le FIFO pour la gestion de la fréquence d'échantillonnage et la gestion des “triggers” sur les canaux.
Finalement, le CY7C68013A, quoique cadencé à 48MHz, était beaucoup trop lent pour gérer aisément une interface graphique : son bus parallèle offrait une vitesse d'écriture maximale d'environ 10MHz.

Pour l'itération #2, je me base actuellement sur 1 seul “chip” pour le contrôle complet des fonctions de l'analyseur : le PIC18F46K22. La raison de ce choix est purement pratique, ayant réalisé un PCB pour un projet antérieur possédant un connecteur pour l'écran LCD, le PIC18F46K22 s'est avéré efficace dans la gestion du programme de l'analyseur. Voici les étapes de conception :

1 : Côté matériel

20160314_191838.jpg

20160314_191905.jpg

20160314_191934.jpg

Sur les 3 images précédentes, l'allure du circuit imprimé monté avec et sans l'écran TFT. C'est un PCB très rudimentaire réalisé sur une machine LPKF (trous de perçage non plaqués donc tous soudés) réalisé pour le projet de la S1 (voir autre post du blogue sur ce projet de contrôleur sans-fil, encore complètement personnel). On voit le PIC18F46K22 bien installé au centre, un “toggle switch” pour l'alimentation (USB, 5V 500mA) ainsi que différents connecteurs aux alentours de la carte : la majeure partie d'entres-eux permettent la connexion de périphériques UART (VCC, TX, RX, GND), I2C (VCC, SDA, SCL, GND), ICSP (MCLR, VCC, GND, ICSPDAT, ICSPCLK). Le connecteur 11 broches permet de connecteur divers périphériques d'entrées/sorties, comme les entrées d'un Analyseur Logique!

2 : Côté logiciel

20160314_192013.jpg

20160314_192052.jpg

20160314_192135.jpg

L'analyseur fonctionne comme un analyseur conventionnel : il permet de sélectionner un trigger sur un canal (front up/down ou un tension fixe 0/5v), d'afficher les formes d'ondes reçues après une analyse, de modifier la couleur des formes d'ondes pour chaque canal, de sélectionner le type de signal sur un canal (UART, SPI, I2C, CAN(version beta), OneWire). De plus, un analyseur de protocole permet d'afficher les valeurs recues/envoyées sur les bus de communication.

Actuellement, ce projet est en redesign pour construire l'itération 3 basé sur un dsPIC, permettant l'analyse mathématique de signaux analogiques. Plus de détails à venir!

 
6
Kudos
 
6
Kudos

Now read this

Machine Sherbrooke, Jeux de Génie 2019

C'est avec beaucoup de détermination et de café que l'équipe machine de l'Université de Sherbrooke a participé à l'élaboration de la machine robotique en vue de la compétition machine des 29e Jeux de Génie, présentés à Magog. L'ensemble... Continue →