🛠 Exposer un stockage de masse USB (TinyUSB MSC)

Arduino Nano ESP32 · avance · Schéma : IMG-nano-esp32-avance-1-nanoesp32-tinyusb-msd.svg — La carte énumérée comme clé USB dans l'explorateur, image disque stockée dans la flash de 16 Mo.

Objetivos

Exponer un almacenamiento de masas USB (clase MSC de la pila TinyUSB del core ESP32): la tarjeta aparece como una memoria USB que contiene una imagen formateada, leída desde la flash de 16 MB. Útil para recuperar datos sin red. >

Material

Código completo

// Inspiré de l'exemple USBMassStorage du core ESP32-S3 (à valider sur Nano ESP32)
#include "FS.h"
#include "SPIFFS.h"
#include "USB.h"
#include "USBMassStorage.h"

USBMassStorage MassStorage;
const uint32_t tailleCluster = 512;
const uint32_t nbClusters = 2048;   // ~1 Mo

void setup {
  Serial.begin(115200);
  if (!SPIFFS.begin(true)) { Serial.println("SPIFFS KO"); return; }
  File img = SPIFFS.open("/disque.bin", "w+");
  if (!img) { Serial.println("image KO"); return; }
  uint8_t vide[512] = {0};
  for (uint32_t i = 0; i < nbClusters; i++) img.write(vide, tailleCluster);
  img.close;
  MassStorage.begin("/disque.bin");   // avant USB.begin
  USB.begin;                        // énumère la carte en « clé USB »
  Serial.println("MSC actif : disque.bin exposé");
}

void loop { delay(1000); }

Verificación esperada

Tras la renumeración USB, el explorador muestra un volumen extraíble respaldado por disco.bin; un archivo copiado en él persiste tras un reset. El puerto serie nativo puede desaparecer mientras la MSC ocupa el USB: prever un reset para recuperar la carga del programa.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales