🛠 Console série UART2 à 1,5 Mbaud : debugger U-Boot et récupérer une carte briquée
Objetivos
Cuando la tarjeta no arranca (overlay fallido, actualización interrumpida, eMMC corrupta), la consola serie es el hilo de Ariadna. En la ZERO 3W, se encuentra en UART2_M0, pines 8 (TX) / 10 (RX) del conector de 40 pines, a 1500000 baudios 8N1 — y es TAMBIÉN la consola U-Boot por defecto. Este tutorial cubre el cableado USB-TTL, la observación de la cadena de arranque, la interrupción de U-Boot, la trampa documentada de la activación de UART2 como UART de aplicación (una entrada parásita puede impedir el arranque) con su solución oficial, y la recuperación final mediante MaskROM + Rockusb.
Material
- 1 Radxa ZERO 3W con el conector de 40 pines SOLDADO (los SKUs básicos no lo incluyen — tenga en cuenta el soldador)
- 1 adaptador USB-TTL ajustado a 3,3 V (FT232/CP210x con selector 1,8/3,3 V)
- 3 cables: TX del adaptador -> pin 10 (RX de la tarjeta), RX del adaptador -> pin 8 (TX de la tarjeta), GND -> GND
- NUNCA conectar el Vcc del adaptador a la tarjeta (se alimenta por USB-C 1)
- PC con Linux con picocom/minicom y rkdeveloptool para la recuperación
1) Escuchar el arranque
sudo picocom -b 1500000 /dev/ttyUSB0 # ou : sudo minicom -D /dev/ttyUSB0 -b 1500000
Conecte la alimentación: debe ver BootROM y luego U-Boot (consola por defecto en UART2_M0 a 1,5 Mbaud), el kernel, y luego el login. Una pantalla de caracteres extraños = velocidad de transmisión incorrecta (el reflejo nº 1 es 115200 heredado de otras tarjetas — aquí es 1 500 000).
2) Interrumpir U-Boot
Pulse una tecla durante la cuenta atrás: aterrizará en la consola U-Boot (=>). Comandos de diagnóstico sin riesgo: version, mmc info, mmc list, printenv. Evite cualquier escritura (mmc write, mw) sin saber exactamente lo que está haciendo.
3) La trampa documentada: UART2 como UART de aplicación
Radxa advierte (página hardware-interface): activar UART2_M0 como puerto serie normal mediante los overlays rsetup expone el pin de entrada a señales que pueden ser interpretadas por la consola U-Boot — las entradas parásitas pueden interrumpir el arranque y el dispositivo puede no volver a arrancar. La solución oficial pasa por la configuración de U-Boot:
sudo nano /etc/default/u-boot # retirer la console série de la ligne de boot U-Boot
sudo u-boot-update # regenre extlinux/uEnv avec la nouvelle config
sudo reboot
> NO VERIFICADO: el contenido exacto de la línea a modificar en /etc/default/u-boot según la revisión — siga la advertencia de la página hardware-interface oficial; la ficha fuente confirma la existencia del binomio /etc/default/u-boot + u-boot-update como solución alternativa.
4) Último recurso: MaskROM + Rockusb
# Carte eteinte : maintenir le bouton MaskROM, brancher USB-C 1 vers le PC, relacher
lsusb | grep -i 2207 # le RK3566 est en mode Rockusb (vendor 2207)
sudo rkdeveloptool ld # detection BootROM/eMMC
sudo rkdeveloptool wl 0 system.img # reecrit l'image complete sur l'eMMC
sudo rkdeveloptool rd # redemarre
Verificación esperada
La cadena completa BootROM -> U-Boot -> kernel -> login desfila por la pantalla serie. Tras la solución para UART2, el arranque ya no se interrumpe nunca por un cable suelto en el pin 10. Tras la recuperación Rockusb, la tarjeta arranca de nuevo con una imagen nueva.
Errores frecuentes
- Velocidad de transmisión 115200 por reflejo: aquí la consola está a 1 500 000 8N1 — todo lo demás es ruido.
- TX/RX no cruzados: no se muestra nada aunque la masa sea correcta — invierta los dos cables de datos.
- Adaptador a 5 V o Vcc conectado a la tarjeta: lógica de 3,3 V (máximo absoluto 3,63 V) — riesgo real de daño.
- Activar el overlay UART2 sin aplicar la solución U-Boot: es exactamente el escenario de tarjeta «bloqueada por un cable» descrito en la documentación.
- Confiar únicamente en el LED: sin consola serie, un fallo de arranque temprano (DTB inválido) es invisible — mantenga el cable USB-TTL en el kit de herramientas.
- Olvidar que el conector no está soldado en los SKUs básicos: verificar antes de pedir los cables.
- Escribir en el dispositivo mmc equivocado en U-Boot: un
mmc writemal dirigido puede sobrescribir el bootloader — diagnostique primero con mmc info.
Otros tutoriales para esta placa
- Premiers pas avec la Radxa ZERO 3W : flasher Radxa OS et démarrer
- Wi-Fi 6 et Bluetooth 5.4 : se connecter, choisir l'antenne, connaître sa révision
- GPIO avec libgpiod : faire clignoter une LED et lire un bouton
- Installer le système sur l'eMMC : rkdeveloptool, MaskROM et gain de fiabilité
- Caméra MIPI CSI : brancher une Raspberry Pi Camera (OV5647/IMX219) sur la ZERO 3W
- Noyau mainline avec Armbian : vérifier le device tree, ajouter un overlay, lire le SARADC
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash