Autres articles / Other articles

Communication par port SPI avec le module d'affichage MAX7219

publication: 19 février 2023 / mis à jour 20 février 2023

Read this page in english

 

Appel à collaboration

Vous développez des montages, simples ou complexes avec ESP32 et ESP32forth.

Partagez-les ici sur ce site.

ESP32forth ne pourra se développer qu'avec la collaboration active de toutes les bonnes volontés.

Vos montages peuvent aider d'autres développeurs.

Les montages des autres développeurs peuvent vous aider.

Pour proposer un article ou un montage, cliquez ici


Préambule

ESP32forth ne dispose pas de vocabulaire pour gérer le port SPI. Donc, la première opération consistera à implanter ce vocabulaire. Voir:
ESP32forth étendu.

Les mots du vocabulaire SPI sont intégrés au Glossaire.

Dans cet article, nous allons analyser l'exploitation du port SPI par couches successives.

Couche matérielle du port SPI

Dans une communication SPI, il y a toujours un Maître qui contrôle le périphérique appareils (également appelés des esclaves). Les données peuvent être envoyées et reçues simultanément. Cela signifie que le maître peut envoyer des données à un esclave et un esclave peut envoyer des données au maître en même temps.

Vous pouvez avoir plusieurs esclaves. Un esclave peut être un capteur, un écran, une carte microSD, etc., ou un autre microcontrôleur. Cela signifie que vous pouvez avoir votre ESP32 connecté à plusieurs périphériques.

La sélection d'un esclave s'effectue en mettant au niveau bas le sélecteur CS1 ou CS2. Il faudra autant de sélecteurs CS qu'il y a d'esclaves à gérer.

Répérage du port SPI sur la carte ESP32

Il y a deux ports SPI sur une carte ESP32: HSPI et VSPI. Le port SPI que nous allons gérer est celui dont les pins sont préfixés VSPI:

Avec ESP32forth, on peut donc définir les constantes pointant vers ces pins VSPI:

\ define VSPI pins 
19 constant VSPI_MISO 
23 constant VSPI_MOSI 
18 constant VSPI_SCLK 
05 constant VSPI_CS 

Pour communiquer vers le module d'affichage MAX7219, nous n'aurons besoin de câbler que les pins VSPI_MOSI, VSPI_SCLK et VSPI_CS.

Les connecteurs SPI sur le module d'affichage MAX7219

Voici la carte des connecteurs du port SPI sur le module MAX7219:

Commexion entre le module MAX7219 et la carte ESP32:

 MAX7219              ESP32
   DIN    <---->   VSPI_MOSI
   CS     <---->   VSPI_CS
   CLK    <---->   VSPI_SCLK

Les connecteurs VCC et GND sont raccordés à une alimentation extérieure:

La partie GND de cette alimentation extérieure est mise en commun avec le pin GND de la carte ESP32.

Voilà. Nous en avons terminé avec la couche physique.

Couche logicielle du port SPI

Tous les mots permettant de gérer le port SPI sont déjà disponibles dans le vocabulaire SPI.

La seule chose à définir concerne l'initialisation du port SPI:

\ define SPI port frequency 
4000000 constant SPI_FREQ 
 
\ select SPI vocabulary 
only FORTH  SPI also 
 
\ initialize SPI port 
: init.VSPI ( -- ) 
    VSPI_CS OUTPUT pinMode 
    VSPI_SCLK VSPI_MISO VSPI_MOSI VSPI_CS SPI.begin 
    SPI_FREQ SPI.setFrequency 
  ; 

Nous sommes maintenant prêts à interfacer notre module d'affichage MAX7219 à cette couche logicielle SPI.

C'est ce que nous allons analyser dans le prochain....


Legal: site web personnel sans commerce / personal site without seling