Activité : interfaçage d'un écran OLED

Le module PmodOLEDrgb de Digilent est composé d’un petit écran OLED de 96×64 pixels avec une interface SPI. Pour l’utiliser dans votre projet, vous devez d’abord intégrer un contrôleur de bus SPI.

En plus du bus SPI, ce module possède des broches supplémentaires qui doivent être pilotées séparément. Elles correspondent à la rangée du bas (broches 7 à 10) des connecteurs Pmod de la carte Basys3.

Entité Computer

Dans le fichier Computer.vhd, complétez l’entité Computer en déclarant les ports du connecteur d’extension que vous avez choisi. Le tableau ci-dessous donne la liste des ports disponibles et leur rôle. Ils sont tous de type std_logic.

Rôle JA JB JC JXADC Mode
Data/Command pmod_a7 pmod_b7 pmod_c7 pmod_xadc7 out
Reset pmod_a8 pmod_b8 pmod_c8 pmod_xadc8 out
Vcc Enable pmod_a9 pmod_b9 pmod_c9 pmod_xadc9 out
Pmod Enable pmod_a10 pmod_b10 pmod_c10 pmod_xadc10 out

Architecture Structural

Pour ne pas compliquer inutilement l’architecture, nous allons compléter la gestion des sorties que nous avons mise en place dans l’activité Mon premier système embarqué. L’architecture gère déjà 16 bits de sortie sur le port leds_o, dont la mise à jour est activée par le signal io_valid (voir figure ci-dessous). Nous allons simplement ajouter 4 bits de sortie supplémentaires.

Virgule : ordinateur avec entrées/sorties simples, écriture

Nous avons résumé ci-dessous les signaux utilisées pour piloter la mise à jour des sorties du point de vue du processeur (remplacer pmod_X par le nom du port que vous avez choisi) :

Sorties Validation Sélection Données
leds_o(7 downto 0) io_valid core_write(0) core_wdata(7 downto 0)
leds_o(15 downto 0) io_valid core_write(1) core_wdata(15 downto 8)
pmod_X10 à pmod_X7 io_valid core_write(2) core_wdata(19 downto 16)

Complétez le schéma en ajoutant la gestion des quatre ports de sortie correspondant aux bits 7 à 10 du connecteur Pmod que vous avez choisi.

À quelle adresse faudra-t-il écrire pour déclencher une mise à jour de ces quatre ports ?

Dans le fichier Computer.vhd, complétez l’architecture en ajoutant un processus de gestion de ces ports. Ils devront être mis à '1' lors d’une réinitialisation du système.

Générer le bitstream et configurer le FPGA

Dans Vivado, générez le fichier binaire à charger dans le FPGA : Flow NavigatorProgram and DebugGenerate Bitstream.

Si ce n’est pas déjà fait, reliez le connecteur micro-USB de la carte à un port USB de votre PC et mettez la carte sous tension.

Connectez Vivado à votre carte Basys3 : Flow NavigatorProgram and DebugOpen Hardware ManagerOpen TargetAuto-connect.

Configurez le FPGA : Flow NavigatorProgram and DebugOpen Hardware ManagerProgram Device.

Si vous n’avez pas d’autre périphérique à ajouter, vous pouvez passer à la section Développement logiciel embarqué.