Je suis un développeur de logiciels professionnel habitué au luxe des débogueurs intégrés. Depuis un moment maintenant, j'expérimente avec la plate-forme Arduino. Cependant, je trouve que tenter d'interfacer avec des composants comme un capteur de température numérique Dallas DS1820, c'est comme tâtonner dans le noir.
En supposant un budget approximatif de 200 $ environ, quel type d'outils existe-t-il pour m'aider à visualiser ce qui se passe? J'ai regardé le Link Instruments MSO-19, mais honnêtement, je ne sais pas grand-chose sur la différence entre un oscilloscope et un analyseur logique.
Comment puis-je savoir que l'appareil que j'achète sera capable de mesurer les types de composants (simples) que j'utilise?
la source
The soul of a new machine
Tracy Kidder dit (en paraphrasant) que les hommes des cavernes ont utilisé un oscilloscope pour voir pourquoi le feu ne brûlerait pas. :-)ce n'est qu'un ajout à la réponse de penjuin car il ne rentre pas dans un commentaire et sa réponse est généralement correcte. Je veux juste clarifier une implication dans sa réponse.
Soyez très prudent en choisissant un appareil de mesure en fonction de sa bande passante / taux d'échantillonnage. Un appareil avec un taux d'échantillonnage de 25 MHz ne peut pas échantillonner avec précision un signal d'horloge numérique de 25 MHz, même pas à proximité.
Si vous prenez un signal d'horloge numérique à 25 MHz et l'introduisez dans un o-scope avec une bande passante de 25 MHz, vous verrez quelque chose près d'une onde sinusoïdale. Un oscilloscope avec un taux d'échantillonnage de 25 MHz afficherait probablement un niveau continu car, par Nyquist, le signal de fréquence le plus élevé qu'un tel oscilloscope pourrait échantillonner serait de 12,5 MHz.
Une onde carrée contient sa fréquence fondamentale qui est sa fréquence d'horloge, pour cet exemple 25mhz. Il contient également de grandes harmoniques impaires qui donnent sa forme carrée, pour regarder un signal d'horloge numérique de 25 MHz avec précision, vous devrez non seulement regarder 25 MHz, mais 75, 125, 175, 225, etc. Jusqu'où vous devez aller est en hausse à la précision souhaitée ou jusqu'à la vitesse de balayage de l'émetteur-récepteur.
Bien que cela soit légèrement moins important pour un analyseur logique, c'est toujours très important. L'analyseur logique recherche un «haut» et un «bas» au-dessus ou en dessous d'un certain seuil. Si ce qui apparaît est une onde sinusoïdale, vous verrez des états haut et bas artificiellement courts et des espaces artificiellement longs entre les bits. Cela peut dépendre quelque peu de l'architecture de l'analyseur.
Cela peut rendre impossible le diagnostic des problèmes liés aux différents modes de transmission. Par exemple, SPI a 4 modes différents basés sur des données valides sur les fronts d'horloge montants ou descendants et également sur la polarité des données (est élevé à 1 ou 0?). D'autres protocoles de transmission ont également ce problème (I2S et formats audio associés par exemple). Si vous ne pouvez pas identifier avec précision quand les transitions de bord ont lieu, il est presque impossible de déterminer si le bus agit conformément aux spécifications.
En général, vous avez besoin de taux de bande passante / d'échantillonnage beaucoup plus élevés que votre taux de données cible prévu. Si vous souhaitez échantillonner un bus I2C de 40 kHz, un analyseur logique avec une fréquence d'échantillonnage de 100 MHz est plus que suffisant. Si vous devez échantillonner un bus SPI de 25 MHz, vous devez disposer d'un oscilloscope / analyseur avec une bande passante beaucoup plus élevée, quelque chose près de 500 MHz si vous avez besoin d'une réelle précision, ainsi que d'une fréquence d'échantillonnage qui permet de mesurer dans cette plage de fréquences.
Ainsi, le penjuin de l'appareil recommandé avec un taux d'échantillonnage de 24 MHz ne peut probablement fournir qu'une mesure précise des signaux numériques inférieurs à ~ 2 MHz avec une vitesse de balayage appréciable par rapport à ce taux de données.
la source
Si vous prévoyez de travailler principalement sur des circuits numériques, l'analyseur logique est ce que vous voulez. Les oscilloscopes excellent à montrer un nombre relativement faible (par exemple, 2-4) de signaux analogiques dans les moindres détails, tandis que les analyseurs logiques, car ils se préoccupent principalement de haut contre bas ont généralement beaucoup plus d'entrées.
Vous pouvez certainement utiliser un O-scope comme analyseur logique, mais l'avantage avec ce dernier est qu'il est plus facile d'avoir une vue d'ensemble en pouvant regarder des dizaines de signaux simultanément.
la source
Il existe de bonnes réponses à cette question similaire: Analyseur logique pour débutants?
la source
En ce qui concerne les analyseurs logiques, j'ai écrit une comparaison de base des analyseurs (relativement) peu coûteux:
Comparaison des analyseurs logiques sur PC
Une chose à noter sur la vitesse d'échantillonnage, une règle de base est que vous avez généralement besoin d'au moins 4x votre débit de données afin d'obtenir une lecture précise, et jusqu'à 10x, c'est mieux. Donc, si vous voulez surveiller un signal à 8 MHz (que vous pouvez facilement générer à partir d'un AVR bon marché en SPI par exemple), vous voudriez un analyseur de taux d'échantillonnage de 32 à 80 MHz. Cela s'applique uniquement lors de la capture en mode «asynchrone». Si vous effectuez une capture en mode «synchrone» (par exemple avec un signal d'horloge), votre taux d'échantillonnage n'a besoin que de correspondre au taux du signal d'horloge. Ainsi, par exemple dans ce cas, un échantillonnage synchrone à 8 MHz serait suffisant pour capturer un signal SPI à 8 MHz (car il a un signal d'horloge dédié).
la source
Je possède un MSO-19 et je l'aime beaucoup. Je souhaite qu'il ait plus d'un canal analogique, mais il fonctionne à la fois comme un oscilloscope et un analyseur logique. Pour le prix, je pense que c'est une belle pièce d'équipement (et fonctionne bien dans VMWare sur OS X). L'o'scope m'a aidé à voir ce qui se passe réellement dans une partie du circuit et ne vous montre pas seulement l'état haut / bas d'une ligne numérique, comme le fait un analyseur logique. C'est un voltmètre beaucoup plus précis (et répondant plus rapidement) que votre multimètre standard. Ce serait vraiment bien s'il pouvait décoder des données série, au lieu de simplement I2C et SPI…
la source
Cette réponse ne vous est probablement pas très utile en utilisant ardunio mais est une réponse à la question générale.
J'utilise beaucoup les fonctions d'analyseur logique de mon pickit2. De toute évidence, il est destiné à la programmation des PIC, mais il dispose également d'un mode d'analyseur logique à 3 canaux que j'utilise tout le temps pour regarder les signaux numériques. Je l'utilise toujours pour cela même si j'utilise Cortex-M3 pour mes projets en cours. De toute évidence, c'est un outil extrêmement primitif par rapport au bon équipement, mais je le trouve quand même incroyablement utile
Je l'ai utilisé pour déboguer les circuits I2C et les signaux de sortie TV aussi, par exemple, voir mon article ici
la source
C'est assez cool et vraiment pas cher: http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75
Il a un taux d'échantillonnage décent et vous pouvez prendre en charge un projet HW ouvert et cool. Il semble qu'il soit encore dans une sorte de phase bêta, donc ce n'est peut-être pas la meilleure chose si vous voulez simplement brancher quelque chose et le faire fonctionner.
la source