Hé! Vous semblez être en United States, souhaitez-vous utiliser notre site English ?
Switch to English site
Skip to main content

Déboguer le protocole de communication SPI avec Analog Discovery

FR4TSOAIKRNIQLQ.LARGE_%281%29__fd4dc72524db2cbf1d56b7bff11e8a90c7bc8975.jpg

Communication SPI

L’interface périphérique série (SPI) est une spécification d'interface de communication série synchrone duplex utilisée pour la communication à courte distance, principalement dans les systèmes embarqués. Elle est couramment utilisée pour la communication avec la mémoire flash, les capteurs, les horloges en temps réel (RTC), les convertisseurs analogiques-numériques, et bien d’autres. La SPI peut également prendre en charge plusieurs dispositifs esclaves, mais il faudrait ajouter un signal de sélection d'esclave (SS) supplémentaire. Vous pouvez découvrir le fonctionnement du SPI sur le site de Digilent learn materials.

Le protocole de communication SPI utilise quatre broches de communication ainsi qu'une broche d'alimentation et une broche de terre. Il y a généralement un appareil « maître » et un appareil « esclave » qui communiquent entre eux. Le « maître » sélectionnera un de ses « esclaves » avec sa ligne de communication de sélection d'esclave (SS) pour indiquer à l'« esclave » qu'il va communiquer avec lui. Le maître et l'esclave communiqueront alors simultanément sur les lignes de données MOSI (Master Out Slave In) et MISO (Master In Slave Out). Le maître et l'esclave s'envoient tous deux un bit avant l'envoi des données réelles pour s'assurer que le SPI fonctionne. Les données peuvent être envoyées à partir du bit le plus significatif (MSB) ou du bit le moins significatif (LSB).

Pour lancer la communication, le dispositif maître doit amener la ligne de sélection de la puce (CS) à un état de basse tension et maintenir cet état de basse tension pendant toute la session de communication. Le dispositif maître et le dispositif esclave s'envoient tous deux un bit pour que la communication SPI fonctionne. Les données peuvent alors être transférées simultanément, un bit à la fois, entre les deux dispositifs. La plate-forme du microcontrôleur commande la durée du transfert de données. 

En général, le protocole SPI transfère un bit de données sur le front descendant du signal de l'horloge série (SCK). Les données doivent être placées sur la ligne de données avant le front descendant de l'horloge série (SCK). La ligne d'horloge série (SCK) doit également être à un état de haute tension avant de « tomber » à un état de basse tension (c'est-à-dire avant le front descendant). Cela peut être fait avec un microcontrôleur en changeant l'état de tension de la ligne de données avant de faire passer le signal d'horloge à un état de basse tension.

Le cycle de changement de la valeur des bits (tension) sur la ligne de données et d'impulsion de la ligne d'horloge série (SCK) se poursuivra jusqu'à ce que tous les bits nécessaires soient transférés. La ligne de sélection de la puce (CS) sera amenée à un état de haute tension. Ensuite, le microcontrôleur sait que la communication est terminée et se prépare pour une autre session.

Un diagramme de la communication SPI est illustré ci-dessous.

spi_signals_3bfdcbb5b2f86ad265e29e4ed428f3dd86f21b55.png

 

Diagramme temporel SPI de Digilent learn materials

Déboguer la communication SPI

Digilent Analog Discovery 2 (134-6480) est un instrument multifonctionnel qui permet de mesurer, visualiser, générer, enregistrer et contrôler des circuits à signaux mixtes de toutes sortes. Il y a 16 canaux pour les entrées ou sorties numériques. Vous pouvez accéder à son analyseur logique, via Digilent Waveforms, un logiciel multi-instruments permettant de déboguer la communication SPI.

Il existe des exemples de projets pour vous montrer comment le faire. Dans le projet, vous utilisez le Digilent Pmod MIC3 (maître) et le Digilent Basys 3 (esclave) pour créer la communication SPI. Une fois que le matériel est correctement configuré, vous pouvez déboguer la communication SPI avec Analog Discovery 2.  

Set_up2_27787002cc8d222b0dab05f9cce94334004dccb5.jpg

Par exemple, vous pouvez créer des signaux individuels comprenant les protocoles CS, SCK, MOSI, MISO et SCK et SPI dans l'analyseur logique en même temps pour examiner chaque signal dans la communication. 

SPI_setup_83d70011fcf3afef48948352396a35a71cedfd90.jpg

Ajouter le protocole SPI

Digital_aef8890b234d85e0229a2636ed396044749efa90.jpg

Ajouter le signal numérique

Vous pouvez utiliser l'analyseur logique dans Waveforms pour visualiser la communication SPI.

Logic_74892d3d824eefac2f727e7547b87e6cd4f91f3a.jpg

Diagramme de temps dans l'analyseur logique

Le tutoriel étape par étape de ce projet est disponible sur la  Page Digilent Project.

awong n'a pas encore rempli le champs " à propos de moi" ...