🛠 Utiliser le port USB-A hôte pour la lecture de clés USB

Adafruit Metro ESP32-P4 Hydra · avance · Exploitez la puissance du bus USB High-Speed 480 Mbps de la Metro ESP32-P4 Hydra pour accéder à des clés de stockage externes.

Objectifs

Ce tutoriel avancé vise à maîtriser l'interface USB Host High-Speed disponible sur la carte Adafruit Metro ESP32-P4 Hydra. Contrairement aux microcontrôleurs classiques limités au USB Full-Speed, cette carte offre un débit de 480 Mbps, permettant une lecture rapide de données volumineuses. L'objectif est de configurer le bus USB, de monter un système de fichiers sur une clé USB via l'USB Mass Storage Class (MSC), et de lire des fichiers texte ou binaires.

Matériel nécessaire

Étapes

Ouvrez Arduino IDE et assurez-vous que le gestionnaire de cartes inclut le support ESP32-P4. Installez la bibliothèque Adafruit TinyUSB via le gestionnaire de bibliothèques. Notez que le port USB-C sert au débogage (UART), tandis que le port USB-A est dédié au mode Host.

  1. Préparation de l'environnement

Insérez la clé USB FAT32 dans le port USB-A de la carte. Assurez-vous que l'alimentation est suffisante (via USB-C ou jack DC) car le bus USB peut demander jusqu'à 500 mA. Le contrôle logiciel de l'alimentation est géré par le code.

  1. Configuration matérielle

Créez un nouveau croquis. Incluez les bibliothèques nécessaires : ```cpp #include "Adafruit_TinyUSB.h" #include "SdFat.h"

  1. Écriture du code

#define CFG_TUD_HOST_MSC 1

// Définition du pin de contrôle d'alimentation USB si nécessaire selon le schéma // const int USB_VBUS_PIN = 4; `` Dans setup(), initialisez l'USB Host : ``cpp void setup() { Serial.begin(115200); while (!Serial) delay(10);

usbh_msc_init(); Serial.println("USB Host MSC Initialized"); } `` Dans loop(), vérifiez la présence du périphérique et montez le volume : `cpp void loop() { if (usbh_msc_connected()) { // Logique de montage FatFs et lecture de fichiers // Exemple simplifié d'affichage du nom du fichier Serial.println("USB Drive Detected"); } delay(500); } ` *Note : Les appels exacts dépendent de la version de TinyUSB pour ESP-IDF. Consultez les exemples usbh_msc` de la bibliothèque.*

Sélectionnez la carte "Adafruit Metro ESP32-P4" dans le menu. Compilez et téléversez via le port USB-C. Ouvrez le moniteur série à 115200 bauds.

  1. Compilation et Téléversement

Vérification

Après le démarrage, le moniteur série doit afficher le message d'initialisation. Insérez une clé USB contenant un fichier test.txt. Si le périphérique est détecté, le message "USB Drive Detected" (ou équivalent selon votre code de lecture) s'affiche. Vous pouvez étendre le code pour lire le contenu du fichier et l'imprimer sur la console série, confirmant ainsi la transmission de données à travers le bus High-Speed.

Pour aller plus loin

Explorez le transfert de fichiers vers la PSRAM externe (16 Mo) pour traiter de gros datasets. Vous pouvez également développer un serveur Web qui affiche le contenu de la clé USB via le coprocesseur ESP32-C6, combinant ainsi stockage physique rapide et interface réseau sans fil.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels