🛠 Uso del puerto USB-A host para lectura de unidades 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.

Objetivos

Este tutorial avanzado tiene como objetivo dominar la interfaz de Host USB de Alta Velocidad disponible en la placa Adafruit Metro ESP32-P4 Hydra. A diferencia de los microcontroladores clásicos limitados a USB Full-Speed, esta placa ofrece un rendimiento de 480 Mbps, permitiendo una lectura rápida de grandes volúmenes de datos. El objetivo es configurar el bus USB, montar un sistema de archivos en una memoria USB mediante la clase de almacenamiento masivo USB (MSC) y leer archivos de texto o binarios.

Material necesario

Pasos

Abra Arduino IDE y asegúrese de que el administrador de placas incluye soporte para ESP32-P4. Instale la librería Adafruit TinyUSB a través del gestor de librerías. Tenga en cuenta que el puerto USB-C es para depuración (UART), mientras que el puerto USB-A está dedicado al modo Host.

  1. Preparación del entorno

Inserte la memoria USB FAT32 en el puerto USB-A de la placa. Asegúrese de que el suministro de energía sea suficiente (vía USB-C o conector DC) ya que el bus USB puede demandar hasta 500 mA. El control de energía se gestiona por software.

  1. Configuración del hardware

Cree un nuevo sketch. Incluya las librerías necesarias: ```cpp #include "Adafruit_TinyUSB.h" #include "SdFat.h"

  1. Escritura del código

#define CFG_TUD_HOST_MSC 1

// Define USB power control pin if required by schematic // const int USB_VBUS_PIN = 4; `` En setup(), inicialice el Host USB: ``cpp void setup() { Serial.begin(115200); while (!Serial) delay(10);

usbh_msc_init(); Serial.println("USB Host MSC Initialized"); } `` En loop(), verifique la presencia del dispositivo y monte el volumen: `cpp void loop() { if (usbh_msc_connected()) { // Lógica de montaje FatFs y lectura de archivos // Ejemplo simplificado de impresión del nombre del archivo Serial.println("USB Drive Detected"); } delay(500); } ` *Nota: Las llamadas exactas dependen de la versión de TinyUSB para ESP-IDF. Consulte los ejemplos usbh_msc` de la librería.*

Seleccione "Adafruit Metro ESP32-P4" en el menú de placas. Compile y cargue a través del puerto USB-C. Abra el Monitor Serie a 115200 baudios.

  1. Compilación y carga

Verificación

Tras el arranque, el Monitor Serie debe mostrar el mensaje de inicialización. Inserte una memoria USB que contenga un archivo test.txt. Si el dispositivo es detectado, aparecerá el mensaje "USB Drive Detected" (o equivalente según su código de lectura). Puede ampliar el código para leer el contenido del archivo e imprimirlo en la consola, confirmando así la transmisión de datos a través del bus de Alta Velocidad.

Para ir más allá

Explore la transferencia de archivos a la PSRAM externa (16 MB) para procesar grandes conjuntos de datos. También puede desarrollar un servidor web que muestre el contenido del disco USB a través del coprocesador ESP32-C6, combinando así almacenamiento físico rápido con interfaz de red inalámbrica.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales