forked from tanchou/Verilog
Add README and project documentation for FPGA and ESP32 integration
This commit is contained in:
85
Semaine_2/Projet_esp32/Projet_esp32.md
Normal file
85
Semaine_2/Projet_esp32/Projet_esp32.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# 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 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 à 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 |
|
@@ -1,78 +0,0 @@
|
||||
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
|
15
Semaine_2/README.md
Normal file
15
Semaine_2/README.md
Normal file
@@ -0,0 +1,15 @@
|
||||
## Semaine 2
|
||||
|
||||
### Jour 6
|
||||
|
||||
**Matin :**
|
||||
- Remise en contexte
|
||||
- Réflexion sur un projet combinant FPGA (Tang Nano 20K) + ESP32 :
|
||||
- Objectif : se connecter à l’ESP32 (Wi-Fi) → communiquer avec le PC (via USB au FPGA)
|
||||
- L’ESP32 agit comme un esclave, servant uniquement de portail Wi-Fi
|
||||
- Le FPGA fait le lien entre Wi-Fi et périphériques USB
|
||||
|
||||
**Architecture prévue :**
|
||||
[ PC via USB-C ] ←→ [ FPGA (Tang Nano 20K) ] ←→ [ ESP32 ] ←→ [ Clients en Wi-Fi ]
|
||||
|
||||
**Après-midi :**
|
Reference in New Issue
Block a user