Analyseur logique OpenLogicSniffer

Théorie en bref

L’un des outils pouvant aider lors du développement de cartes électroniques est l’analyseur logique. Contrairement à l’oscilloscope qui vous donne une tension en fonction du temps, l’analyseur logique sert  à visualiser des états de signaux digitaux en fonction du temps. Un exemple, vous voulez observer les signaux échangé sur un bus SPI ou I2C entre votre microprocesseur et un capteur. Vous pouvez utiliser votre oscilloscope pour observer les 4 lignes CLK, MOSI, MISO et CS. Mais un oscilloscope 4 traces coûte un bras. C’est là qu’entre en action l’analyseur logique. Je n’ai pas dis de ne pas utiliser votre oscilloscope. Vous pouvez observer d’autre chose intéressante comme le temps de monté, le bruit, etc. L’analyseur complète vos possibilités de mesures et simplifie ainsi votre développement en pouvant facilement analyser le comportement de votre système.

L’openlogic sniffer en détail

Open logic sniffer

Analyseur logique open source

Développé par l’équipe de Dangerous Prototype, le design de l’open logic snifffer est un design hardware open source. Ce design est basé sur FPGA (Spartan 3E de Xilinx). Un  PIC 18F24J50 sert de pont entre l’usb du PC et la FPGA.Vous pouvez donc obtenir le schéma, l’implentation sur le PCB, le firmware de la FPGA ainsi que le firmware du PIC. Attention néanmoins, les mises à jours firmware peuvent briquer votre hardware si vous ne suivez pas scrupuleusement les recommandations.

La table ci-dessous résume les avantages/inconvénients de cette solutions.

Avantages Inconvénients
  • Solution complètement open source
  • USB alimentation + transfert données + mise à jours des firmwares
  • Prix 50$
  • 32 canaux dont 16 bufferisés et tolérant le 5V
  • 100MHz d’échantillonnage pour 16 canaux (50MHZ pour 32)
  • 16k de mémoire pour 8 canaux, 8k pour 16 canaux et 4 pour 32 canaux
  • trigger interne ou externe
  • Tailles des sondes (cf photo ci-dessous)
  • Quantité de mémoire faible
Sondes openlogic sniffer

Sondes openlogic sniffer

Pour les sondes, on ne peut pas se connecter directement sur un IC. Mais de petites sondes coûtent un bras.

En ce qui concerne la partie software sur le PC il est recommandé d’utiliser SUMP, une interface pour analyseur logique aussi en open source. Pour ceux sur Debian, il existe des paquets dans la branche expérimental. Des collègues l’utilisent sous MacOs ou Windows avec succès.

L’utilisation

Une fois les pinces connectées sur par exemple les deux lignes d’une bus i2c, SDA et SCL, branchez le sur votre pc avec un câble USB. Lancer le programme SUMP et observer les signaux comme représenté ci dessous:

Capture d'une transaction sur i2c

Capture d’une transaction sur i2c

Pour arriver à ce résultat il aura fallu configurer l’acquisition. J’ai choisi  un échantillonnage à 5MHz pour l’I2C c’est largement suffisant. J’ai activé le trigger simple. Il suffit que les signaux correspondent à un état donné et choisi pour que l’acquisition commence. Dans cet exemple le trigger s’active quand les deux ligne sont à zéro. En effet dans le bus I2C les lignes sont au repos à l’état haut. Donc deux états bas veux bien dire que la communication a bien commencé par un START. Le trigger affiche 25% du signal avant celui-ci et 75% après comme illustré ci-dessous:

Configuration de la capture

Configuration de la capture

Vous allez me dire : « oulala ça va être dur de trouver une erreur dans ce flux de données ». Avez-vous déjà décodé à la main des trames de bus i2c ou spi? C’est long, fastidieux et le risque d’erreur est non nul. L’avantage de SUMP est l’intégration d’analyseur de bus. L’analyseur peut lui même identifier le type de signal. Dans mon exemple SDA est sur la ligne 0 et SCL la ligne 1. Je ne donne à l’analyseur que les lignes à analyser et il se débrouillent.

Analyseur de trames i2c

Analyseur de trames i2c

 

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.