forked from tanchou/Verilog
3.2 KiB
3.2 KiB
Projet FPGA (Tang Nano 20K) + ESP32
Objectif global
Le but est de pouvoir se connecter à l’ESP32 via Wi-Fi, et de communiquer avec un PC (ou autre appareil USB connecté au FPGA).
L’ESP32 agit comme esclave pour le FPGA et sert uniquement de portail Wi-Fi.
Le FPGA fait le lien entre les appareils Wi-Fi et le périphérique USB.
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 (mux / buffer intelligent)
ESP32
- Crée un réseau Wi-Fi local
- Écoute via une connexion UART avec le FPGA
- Reçoit les commandes du FPGA et envoie les données des clients Wi-Fi
PC (ou autre appareil USB)
- Envoie et reçoit des données (via terminal série ou logiciel personnalisé)
Architecture
[ PC via USB ]
│
┌───────▼────────┐
│ uart_usb │ <— UART avec le PC
└──────┬─────────┘
│
▼
┌──────────────┐
│ uart_core │ <— Routeur/contrôleur central
└────┬────┬────┘
│ │
┌─────────────┘ └────────────┐
▼ ▼
[uart_wifi] [user_logic] (LEDs)
<— UART avec ESP32 (comporte les modules fonctionnels)
Détails des modules
uart_usb
- Interface UART vers le PC (via USB-UART)
- Peut utiliser un convertisseur USB-UART via
uart_rx_pc
/uart_tx_pc
- Fournit :
rx_data
,rx_valid
,rx_ready
tx_data
,tx_valid
,tx_ready
uart_wifi
- Interface UART avec l’ESP32
- Même interface que
uart_usb
, mais avecuart_rx_esp
/uart_tx_esp
- Sert à la communication Wi-Fi
uart_core
- Module central de routage UART
- Gère la logique de communication :
- Lecture des commandes depuis le PC → envoie à l’ESP32
- Réception de réponse de l’ESP32 → envoie au PC
- Peut être codé comme une FSM maître ou un router simple
Signaux principaux
Signal | Description |
---|---|
uart_rx_pc |
UART RX depuis le PC |
uart_tx_pc |
UART TX vers le PC |
uart_rx_esp |
UART RX depuis l’ESP32 |
uart_tx_esp |
UART TX vers l’ESP32 |
fifo_rx_pc_to_esp |
Données du PC à transférer à l’ESP32 |
fifo_rx_esp_to_pc |
Données de l’ESP32 à transférer au PC |
link_manager |
Logique de contrôle des transferts entre buffers/UART |
status_led |
Gestion des LEDs de statut |