Pico rend l’analyseur logique performant

Un projet de microcontrôleur assez courant consiste à créer une forme d’analyseur logique. En théorie, cela devrait être assez simple : saisissez des entrées numériques, stockez-les et affichez-les. Mais, bien sûr, le diable est dans les détails. Tout d’abord, vous voulez saisir les données rapidement, mais vous devez également examiner le déclencheur en temps réel, ce qui est difficile à faire dans un logiciel. Vous pouvez également avoir besoin d’un circuit de conditionnement d’entrée, sauf si vous êtes satisfait des caractéristiques d’entrée du microcontrôleur. Enfin, vous avez besoin d’un moyen de vider les données pour analyse. [Gusmanb] a résolu tous ces problèmes avec un analyseur simple construit autour du Raspberry Pi Pico.

Sur les extrémités avant et arrière, il y a une carte optionnelle qui effectue une conversion de niveau rapide. Si cela ne vous dérange pas de mesurer des entrées de 3,3 V, vous pouvez renoncer à la carte. Du côté de la sortie, il existe un logiciel personnalisé pour afficher les résultats. Ce qui est vraiment intéressant, cependant, c’est ce qu’il y a entre les deux.

Le PCB simple est complètement facultatif.

Le Pico saisit 24 bits de données à 100 MHz et fournit des déclencheurs de front et de motif. C’est impressionnant car vous devez regarder les données au fur et à mesure que vous les stockez et cela consomme quelques cycles d’instructions si vous essayez de le faire dans un logiciel, ce qui fait chuter votre fréquence d’horloge maximale. Alors, comment ce projet le gère-t-il ?

Il utilise les unités PIO du Pico qui sont des processeurs auxiliaires dédiés qui ne sont pas très puissants, mais ils sont très rapides et déterministes. Deux instructions PIO suffisent pour gérer le travail pour des cas simples. Cependant, il y a deux PIO et chacun a quatre machines d’état distinctes. Cela demande encore du travail, mais c’est plus facile que d’essayer de faire fonctionner un processeur à quelques gigahertz pour obtenir le même effet. Le mode de déclenchement rapide, en particulier, abuse du PIO pour obtenir une vitesse maximale et peut même fonctionner jusqu’à 200 MHz avec certaines limitations.

Si vous voulez l’essayer, vous ne pouvez utiliser rien de plus qu’un Pico et un cavalier tant que vous n’avez pas besoin de la conversion de niveau. La page du projet mentionne que le logiciel personnalisé évite d’utiliser le logiciel OpenBench, que nous obtenons, mais nous aurions peut-être opté pour les pilotes Sigrok pour éviter d’avoir à réinventer trop de roues. L’auteur mentionne qu’il était plus facile de rouler votre propre code que de se conformer à un protocole de pilote et nous comprenons cela aussi. Pourtant, le logiciel a l’air sympa et dispose même d’un analyseur de protocole SPI. Tout est open source, donc si vous voulez d’autres protocoles avant que l’auteur n’y accède, vous pouvez toujours le faire vous-même.

Si vous voulez un Pico et un Sigrok, nous avons couvert un projet qui fait exactement cela. La plupart des analyseurs logiques que nous utilisons de nos jours sont intégrés à nos conceptions FPGA.