Projet à faire avec un FPGA (tang nano 20k) et un esp32 : Le but global est de pouvoir se connecter à l'esp32 et ensuite de pouvoir communiquer avec le pc (ou autre appareil connecté en USB au FPGA) l'esp 32 agis comme esclave pour le FPGA et sert uniquement de portail wifi, le FPGA quand à lui, fera le lien entre les appareils en wifi et le périphérique USB [ PC via USB-C ] ←→ [ FPGA (Tang Nano 20K) ] ←→ [ ESP32 ] ←→ [ Clients en Wi-Fi ] Rôles des composants FPGA (Tang Nano 20K) : - Gère l’interface UART avec l’ESP32 - Gère la communication USB avec le PC - Fait le routage bidirectionnel des données (une sorte de mux / buffer intelligent) ESP32 : - Crée un réseau Wi-Fi local - Écoute via une connexion série (UART) avec le FPGA - Reçoit des commandes du FPGA et envoie les données des clients Wi-Fi PC (ou autre appareil USB) : - Peut recevoir/envoyer des données (par exemple, un terminal série ou un logiciel personnalisé) Architecture [ PC via USB ] │ ┌───────▼────────┐ │ uart_usb │ <— UART avec le PC └──────┬─────────┘ │ ▼ ┌──────────────┐ │ uart_core │ <— Routeur/contrôleur central └────┬────┬────┘ │ │ ┌─────────────┘ └────────────┐ ▼ ▼ [uart_wifi] [user_logic] (capteur, LEDs, etc.) <— UART avec ESP32 (comporte les modules fonctionnels) uart_usb Interface UART vers le PC (via USB-UART) Peut utiliser un convertisseur USB-UART sur uart_rx_pc / uart_tx_pc Fournit : rx_data, rx_valid, rx_ready tx_data, tx_valid, tx_ready uart_wifi UART avec l'ESP32 Même interface que uart_usb, mais sur uart_rx_esp / uart_tx_esp Sert à communiquer avec le monde Wi-Fi uart_core Module central de routage UART C’est lui qui gère la logique : Tu peux le coder comme un FSM maître ou un router Il fait par exemple : Lecture des commandes depuis le PC → envoie à ESP32 Réception d’une réponse de l’ESP32 → envoie au PC uart_rx_pc UART RX depuis le PC uart_tx_pc UART TX vers le PC uart_rx_esp UART RX depuis ESP32 uart_tx_esp UART TX vers ESP32 fifo_rx_pc_to_esp Données du PC à transférer à l’ESP fifo_rx_esp_to_pc Données de l’ESP à transférer au PC link_manager Logique de contrôle des transferts entre buffers et UART status_led Gère les LEDs de statut