MISO non câblé
L’écran ne renvoie pas de données utiles : seul le sens ESP32 vers écran (MOSI) est utilisé. La broche MISO du SPI reste libre.
Écran TFT SPI (ST7789)
Fiche de référence de l'écran TFT SPI à contrôleur ST7789 utilisé pour afficher le Pong : caractéristiques, brochage et bibliothèque.
L’écran TFT de l’atelier est un petit afficheur couleur piloté par un contrôleur ST7789 (parfois ILI9341 selon les modèles), relié à la XIAO ESP32S3 par le bus SPI. C’est la surface d’affichage du Pong puis du Snake.
Le SPI est choisi ici pour sa vitesse : dessiner une image à ~60 images/seconde demande un débit qu’un bus lent (I2C) ne fournirait pas. Voir le concept Les bus de communication.
| Élément | Valeur |
|---|---|
| Contrôleur | ST7789 (ou ILI9341) |
| Résolution typique | 240 × 240 ou 240 × 320 px |
| Couleurs | 16 bits (65 536 couleurs, RGB565) |
| Interface | SPI (écriture seule côté ESP32) |
| Tension | 3,3 V (logique et alimentation) |
| Broche écran | Rôle | Broche XIAO ESP32S3 (atelier) |
|---|---|---|
| VCC | Alimentation 3,3 V | 3V3 |
| GND | Masse | GND |
| SCL / SCK | Horloge SPI | D9 (GPIO8) |
| SDA / MOSI | Données CPU vers écran | D10 (GPIO9) |
| CS | Chip Select (sélection de l’écran) | GND (sélection permanente) |
| DC | Commande / donnée | D8 (GPIO7) |
| RST / RESET | Reset matériel | D7 (GPIO44) |
| BLK / LED | Rétroéclairage | 3V3 direct |
Sur l’écran, les broches SPI sont souvent sérigraphiées SCL et SDA comme un bus I2C : il s’agit bien de l’horloge et des données SPI.
Le module de l’atelier a un connecteur de 14 broches, dans l’ordre : VCC, GND, CS, RESET, DC, SDI (MOSI), SCK, LED, SDO (MISO), puis les cinq broches de la dalle tactile (T_CLK, T_CS, T_DIN, T_DO, T_IRQ), non utilisées. Vérifiez toujours cet ordre sur la sérigraphie de votre module : il varie d’un fabricant à l’autre.
L’écran se pilote avec la bibliothèque Adafruit ST7735 and ST7789 (adafruit/Adafruit ST7735 and ST7789 Library dans PlatformIO), qui s’appuie sur Adafruit GFX pour le dessin. Aucun fichier de configuration : les broches sont passées dans le code.
Adafruit_ST7789 tft(&SPI, -1, D8, D7); // CS (aucun), DC, RESET
SPI.begin(D9, -1, D10, -1); // SCK, MISO (aucun), MOSI, CS
tft.init(240, 320, SPI_MODE3); // mode 3 : CS relié à GND
Le CS étant relié en permanence à GND, l’écran doit être initialisé en SPI mode 3 (horloge à l’état haut au repos). La mise en place complète est détaillée dans le tutoriel Écran SPI et game loop.