🛠 Gestión avanzada de E/S en Romu: Pads de depuración y periféricos internos

Placa de desarrollo USB compacta Bitmerse Romu (RP2354A) · avance · Apprenez à exploiter les pads de débug et les composants internes de la carte Romu pour créer des interfaces homme-machine personnalisées sans GPIO externes.

Objectifs

Este tutorial tiene como objetivo dominar la gestión de Entradas/Salidas en la placa Romu de Bitmerse, que carece de pines GPIO externos estándar. Aprenderás a interactuar con los pads de depuración para el depuración serie, a controlar el LED RGB integrado para la retroalimentación visual y a leer el estado de los botones físicos. Estas habilidades son esenciales para desarrollar periféricos HID complejos como teclados macro o controladores MIDI, donde la retroalimentación local es crucial a pesar de la extrema compacidad (15,5 x 12 mm) de la placa basada en RP2354A.

Matériel nécessaire

Étapes

  1. Identificación de los pads de depuración: En la cara inferior o lateral de la Romu, localiza los pads marcados TX/RX o SWD. A diferencia de las placas clásicas, no puedes soldar conectores estándar sin riesgo de dañar el chip. Usa pinzas de cocodrilo finas o sondas pogo para acceder temporalmente a estos pads para la depuración serie (UART) o por cable (SWD).

``python import machine import time # Ejemplo genérico, verificar pines específicos de Romu led_r = machine.PWM(machine.Pin(25)) # Verificar pin exacto led_r.freq(1000) for duty in range(0, 1024, 10): led_r.duty_u16(duty) time.sleep(0.01) ``

  1. Configuración del LED RGB: El LED RGB está cableado directamente a los GPIO internos del RP2354A. En tu código, identifica los pines correspondientes (a menudo GP25 para el LED de usuario estándar, pero verifica el esquema específico de Romu). Para un control avanzado, usa PWM (Modulación por Ancho de Pulso) para variar la intensidad y crear degradados de color.

``python button = machine.Pin(20, machine.Pin.IN, machine.Pin.PULL_UP) # Pin a confirmar while True: if button.value() == 0: print("Botón presionado") time.sleep(0.2) # Anti-rebote simple ``

  1. Lectura de botones físicos: Los botones suelen estar cableados con resistencia de pull-up o pull-down interna. Configura los GPIO asociados como entradas. Para evitar el rebote (debounce), implementa un filtro de software simple o usa interrupciones de hardware si están disponibles en el RP2354A.
  1. Interacción con los pads para depuración: Para enviar registros serie sin bloquear el USB principal (usado para HID/MIDI), configura la UART en los pads de depuración. Esto permite monitorear el estado interno del microcontrolador mientras la placa funciona como periférico USB.

Vérification

Pour aller plus loin

Explora la arquitectura híbrida del RP2354A moviendo las tareas de lectura de botones a los núcleos RISC-V para liberar los núcleos Arm para la gestión compleja de USB HID. Considera añadir componentes externos soldados directamente en los pads si la extensión es absolutamente necesaria, respetando las restricciones térmicas de la placa ultra-compacta.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales