🛠 Usar USB OTG como almacenamiento masivo

HPMicro HPM5100: Microcontrolador RISC-V de 400 MHz con analógica integrada · debutant · Apprenez à configurer le HPM5100 pour qu'il soit reconnu comme une clé USB par votre ordinateur.

Objetivos

Este tutorial le guía para transformar su placa HPM5100 en una unidad de almacenamiento masivo USB. Aunque el chip integra 1 MB de flash y 416 KB de SRAM, simularemos un espacio de almacenamiento accesible a través de la interfaz USB 2.0 OTG. Esta es una introducción ideal para comprender la comunicación USB y el periférico TinyUSB incluido en el SDK de HPMicro. Aprenderá a inicializar el controlador USB y gestionar intercambios de datos simples.

Material Necesario

Pasos

  1. Preparación del Entorno: Instale el SDK de HPMicro y configure su herramienta de compilación (Make o CMake). Asegúrese de que la variable de entorno apunte al directorio raíz del SDK.
  1. Acceder al Ejemplo: Navegue a la carpeta de ejemplos de USB en el SDK. El ejemplo de almacenamiento masivo suele estar en examples/usb/device/msc. Abra el archivo principal main.c para entender la estructura.
  1. Configuración del Código: En el archivo de configuración, active la interfaz de dispositivo USB. El HPM5100 tiene un PHY USB integrado, por lo que no se requieren componentes externos para la capa física. Defina el tamaño del 'disco' virtual. Por ejemplo, use una parte de la SRAM o un buffer de memoria estática para simular el almacenamiento.
  1. Compilación: Ejecute la compilación con el siguiente comando:
make BOARD=hpm5100evk

Si usa CMake:

cmake -B build -DBOARD=hpm5100evk
make -C build
  1. Flasheo: Conecte la placa al ordenador vía USB. Use la herramienta de flasheo del SDK (a menudo hpm_manufactory o vía GDB) para cargar el binario en el chip.
./tools/openocd/openocd -f board/hpm5100.cfg -c "program build/hpm5100evk.elf verify reset exit"
  1. Prueba: Desconecte y vuelva a conectar el cable USB. Su ordenador debería detectar un nuevo dispositivo de almacenamiento extraíble.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales