🛠 Configuración avanzada de la placa Romu
Objetivos
Este tutorial tiene como objetivo dominar la inicialización de hardware y software de la placa Romu de Bitmerse. A diferencia de las placas estándar, la ausencia de pines GPIO externos requiere un enfoque específico. Aprenderás a aprovechar el conector USB Tipo-A nativo para la carga de código y la depuración, aprovechando la arquitectura híbrida RP2354A (Cortex-M33 y RISC-V). El objetivo es validar la cadena de compilación y el arranque seguro en este formato ultra compacto de 15,5 x 12 mm.
Materiales Necesarios
- Una placa Bitmerse Romu.
- Un ordenador con puerto USB-A estándar (o adaptador USB-C a A).
- Un entorno de desarrollo compatible con Raspberry Pi Pico (SDK C/C++ o MicroPython).
- Una herramienta de conversión de formato (ej:
uf2conv.py) si es necesaria para el modo bootloader. - Un terminal serie (como PuTTY o el IDE de Arduino/Raspberry Pi Pico).
Pasos
Instala el SDK de Raspberry Pi Pico. La Romu utiliza el RP2354A; asegúrate de que tu cadena de herramientas sea compatible con este chip específico. Configura las variables de entorno para apuntar a las herramientas de compilación ARM y RISC-V si apuntas a ambos núcleos.
- Preparación del Entorno
Dado que no hay un botón de reinicio externo visible, el método estándar para entrar en modo bootloader (para flashear nuevo firmware) implica mantener presionado el botón de boot (si está presente o a través de los pads de depuración según la revisión) al insertarlo en el puerto USB. De lo contrario, la primera conexión a un PC limpio puede requerir un procedimiento de recuperación específico a través de la interfaz USB DFU si falta el firmware predeterminado.
- Acceso al Modo BOOTSEL
Crea un proyecto minimalista. Dada la naturaleza HID/USB, compila un ejemplo simple que haga parpadear el LED RGB. Nota que sin GPIO, la salida se realiza a través del LED integrado o comandos USB. ``bash cmake -DPICO_BOARD=romu .. make ``
- Compilación del Firmware de Prueba
Inserta la placa directamente en un puerto USB-A. Si está en modo BOOTSEL, aparece una unidad de almacenamiento masivo. Copia el archivo .uf2 generado a esta unidad. La placa se reinicia automáticamente.
- Flasheo vía USB
Abre un terminal serie en el puerto COM/VCP asociado. Envía un comando simple para verificar que el microcontrolador responde, confirmando que la interfaz USB se enumera correctamente como dispositivo serie o HID según tu configuración.
- Verificación Serie
Verificación
El LED RGB debe iluminarse según el patrón definido en tu código. El puerto serie debe mostrar mensajes de inicio. Si la placa es reconocida como dispositivo USB pero el LED no reacciona, verifica los pines internos del LED en el esquema eléctrico (no proporcionado aquí, consulta la documentación de Bitmerse).
Para Ir Más Allá
Explora la activación de Arm TrustZone para asegurar tus aplicaciones de autenticación. Prueba los pads de depuración con un adaptador JTAG/SWD adecuado para control de bajo nivel.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
romu-rgb-led-pwm.inoC/C++ (Pico SDK)romu-hid-keyboard-macro.inoC/C++ (TinyUSB)romu-internal-flash-storage.inoC/C++ (Pico SDK)romu-midi-controller.inoC/C++ (TinyUSB)romu-secure-boot-check.inoC/C++ (Pico SDK)romu-hid-custom-keyboard.inoC++ (Arduino)