1
0
forked from tanchou/Verilog

Add README and project documentation for FPGA and ESP32 integration

This commit is contained in:
Gamenight77
2025-04-22 16:46:03 +02:00
parent 11b14ced36
commit 73cc201b6d
5 changed files with 203 additions and 234 deletions

View File

@@ -0,0 +1,85 @@
# Projet FPGA (Tang Nano 20K) + ESP32
## Objectif global
Le but est de pouvoir se connecter à lESP32 via Wi-Fi, et de communiquer avec un PC (ou autre appareil USB connecté au FPGA).
LESP32 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 linterface UART avec lESP32
- 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 lESP32
- Même interface que `uart_usb`, mais avec `uart_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 à lESP32
- Réception de réponse de lESP32 → 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 lESP32 |
| `uart_tx_esp` | UART TX vers lESP32 |
| `fifo_rx_pc_to_esp` | Données du PC à transférer à lESP32 |
| `fifo_rx_esp_to_pc` | Données de lESP32 à transférer au PC |
| `link_manager` | Logique de contrôle des transferts entre buffers/UART|
| `status_led` | Gestion des LEDs de statut |