🛠 Utiliser l'USB OTG comme stockage de masse

HPMicro HPM5100 : Microcontrôleur RISC-V 400 MHz avec analogique intégré · debutant · Apprenez à configurer le HPM5100 pour qu'il soit reconnu comme une clé USB par votre ordinateur.

Objectifs

Ce tutoriel vous guide pour transformer votre carte HPM5100 en une clé USB de stockage de masse. Bien que la puce intègre 1 Mo de flash et 416 Ko de SRAM, nous simulerons un espace de stockage accessible via l'interface USB 2.0 OTG. C'est une introduction idéale pour comprendre la communication USB et le périphérique TinyUSB inclus dans le SDK HPMicro. Vous apprendrez à initialiser le contrôleur USB et à gérer les échanges de données simples.

Matériel nécessaire

Étapes

  1. Préparation de l'environnement : Installez le SDK HPMicro et configurez votre outil de compilation (Make ou CMake). Assurez-vous que la variable d'environnement pointe vers le dossier racine du SDK.
  1. Accéder à l'exemple : Naviguez vers le dossier des exemples USB dans le SDK. L'exemple de stockage de masse se trouve généralement dans examples/usb/device/msc. Ouvrez le fichier principal main.c pour comprendre la structure.
  1. Configuration du code : Dans le fichier de configuration, activez l'interface USB Device. Le HPM5100 possède un PHY USB intégré, donc aucun composant externe n'est requis pour la couche physique. Définissez la taille du 'disque' virtuel. Par exemple, utilisez une partie de la SRAM ou un buffer static en mémoire pour simuler le stockage.
  1. Compilation : Lancez la compilation avec la commande suivante :
make BOARD=hpm5100evk

Si vous utilisez CMake :

cmake -B build -DBOARD=hpm5100evk
make -C build
  1. Flashage : Connectez la carte à l'ordinateur via USB. Utilisez l'outil de flashage du SDK (souvent hpm_manufactory ou via GDB) pour charger le binaire sur la puce.
./tools/openocd/openocd -f board/hpm5100.cfg -c "program build/hpm5100evk.elf verify reset exit"
  1. Test : Débranchez et rebranchez le câble USB. Votre ordinateur devrait détecter un nouveau périphérique de stockage amovible.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels