Ayer, junto con el anuncio de Raspberry Pi de su nuevo $12 Sonda de depuración, recibí una por correo (en la imagen de arriba).

La sonda de depuración funciona con un RP2040 y le permite conectarse desde USB a UART (serie) o SWD (Serial Wire Debug), perfecto para depurar la mayoría de los dispositivos integrados.

UART es útil para conectarse a la consola de un dispositivo cuando no tiene una pantalla o otros medios para controlarlo, y puede encontrar puertos UART/serie/consola en casi cualquier dispositivo con un procesador o microcontrolador.

SWD es útil cuando se depuran SoC ARM, como el RP2040 usado en Raspberry Pi Pico. También lo he usado en el pasado al actualizar el firmware en mi Turing Pi 2, que estaba usando otro chip ARM para ejecutar su BMC o Board Management Controller.

Tradicionalmente, podía encontrar adaptadores USB a UART con diferentes niveles de soporte para un par de dólares hasta decenas de dólares, pero mirando en mi contenedor UART, creo que cubro algunos de los adaptadores sin marca más populares que muchos nerds de la electrónica podrían tener por ahí:

La Debug Probe agrega SWD y tiene un puerto separado para eso, por lo que también compite con dispositivos SWD como esta imitación del SEGGER J-Link BASE Debugger, ¡cuesta $500!

El SEGGER EDU puede ser comprado para uso educativo y no comercial por $ 70, pero sigue siendo un precio bastante elevado para ingresar al juego de depuración de SWD.

Entonces, para un total de $ 12 para Pi’s Debug Probe, ¿qué obtienes?

Lo que obtienes dentro y sobre la caja

Muchas personas preguntan”¿por qué comprarías Raspberry Pi cuando hay miles de placas de imitación en el extranjero que son la mitad de precio?”

Bien, abramos la sonda de depuración y le mostraré una buena razón: debajo de la tapa, verá una ilustración simple que explica el propósito de los accesorios incluidos y el pinout para los cables de conexión incluidos.

Es esta adición caprichosa y simple lo que hace que trabajar con productos Pi sea mucho más agradable. Muchos otros dispositivos vienen en una bolsa antiestática o simplemente se arrojan en una bolsa de plástico sellada. Y, a menudo, confía en las publicaciones de blog o las notas en la parte inferior de la página de un producto de Adafruit para comenzar a usarlo.

Si me dirijo a Página de producto de Debug Probe hay imágenes detalladas y documentación propia completa y fácil de digerir.

Pero después de abrir esas solapas de documentación, hay la sonda de depuración, en su lindo y pequeño estuche translúcido que se ensambla a presión:

Y dejando eso de lado, los cables están perfectamente empaquetados debajo:

Es un poco molesto que Pi se quede con micro USB en esta placa:

USB-C ahora es bastante estándar en una variedad de dispositivos integrados, por lo que tener otro dispositivo que requiera colgarse de un cable micro USB es un poco molesto. Tal vez hagan una v2 con USB-C una vez que superen cualquier suministro masivo de puertos y cables micro USB que tengan disponibles. Al menos son consistentes en su uso en los productos’integrados’y de menor potencia (Pico, Zero, Debug Probe y Keyboard).

Depuración de UART en serie

Desde que No estoy configurado para depurar nada en particular en un Pico actualmente, y algunas de mis otras placas basadas en ARM están empaquetadas en este momento, quería probar rápidamente la sonda en una Raspberry Pi, solo comprobando si puedo ver su consola salida a través de UART (consulte mi artículo anterior que profundiza más en la depuración de UART/serial en Raspberry Pi).

Conecté la caja a los pines apropiados en Pi 4: negro a GND, Naranja a GPIO 14/pin 8 (UART TX y amarillo a GPIO 15/pin 10 (UART RX):

Luego conecté la sonda al puerto USB de mi Mac y ejecuté lsusb, y vio:

Bus 002 Dispositivo 001: ID 2e8a:000c 2e8a Debug Probe (CMSIS-DAP) Serial: E6616407E330212C

Una buena primera señal. Debug Probe tiene un LED rojo brillante que se enciende cuando está encendido, lo cual es un buen toque:

También miré dentro de/dev y encontré el dispositivo/dev/tty.usbmodem2102. Abrí CoolTerm y configuré el puerto en usbmodem2102 y la velocidad en baudios en 115200. Luego, después de asegurarme de que Pi tenía enable_uart=1 configurado en su archivo/boot/config.txt, reinicié la Pi y vi CoolTerm:

¡Funciona!

Para facilitar un poco el trabajo sobre la conexión en serie, También configuré el’Modo sin formato’para el modo de terminal de CoolTerm, deshabilité’Local Echo’y configuré la configuración de Emulación de la tecla Intro en’CR’para no obtener líneas duplicadas al presionar Intro.

Depuración de un Pico

Como mencioné anteriormente, no tengo ningún proyecto Pico activo al que pueda acceder con SWD y no tuve tiempo de configurar una demostración; confío en que la documentación de Raspberry Pi es sólido.

Pero quería señalar una diferencia de hardware entre Pico y Pico W:

El Pico Los encabezados están ubicados en el borde de la placa, mientras que los encabezados del Pico W están ubicados hacia el medio, muy cerca del chip RP2040.

Raspberry Pi vende la versión que he ilustrado, o variedades’H’con presoldado Encabezados JST: consulte las imágenes 2 y 4 de esta serie del sitio web de Pi:

Si tiene la versión sin los encabezados, podría ser más fácil soldar algunos encabezados macho y luego usar el adaptador de clavija hembra. Aunque es posible que encuentre un encabezado de orificio pasante JST, puede soldar los pines en las placas que no son H.

Conclusión

Además del SEGGER J-Link, hay otros dispositivos capaces de SWD, al menos, eso no arruinará el banco:

Black Magic Probe ($75): Este es probablemente lo más parecido a Debug Probe, en espíritu. Es un poco caro, pero le brinda JTAG además de SWD, y tiene una gran cantidad de soporte probado para varios SoC: Debug Probe es compatible oficialmente con dispositivos Pi como Pico, no todo bajo el sol. SAMD11C SWD Programmer Stick (OSHW): este es un dispositivo de hardware de código abierto que puede construir por su cuenta, si así que elige Programador y depurador SWD ($15): solo SWD, pero no obstante es una pequeña alternativa ordenada.

Al final, estoy feliz de tirar esta sonda de depuración a mi papelera con mis otras sondas; el hecho de que se ejecute en un RP2040 significa que el firmware se mantendrá y actualizará con el tiempo. ¡Y es probable que se resuelvan muchos errores de compatibilidad, por lo que Debug Probe obtendrá mucho rendimiento por un dispositivo de $12!

Dado que pasé por alto la compatibilidad con SWD, ni siquiera mencioné el software actual lado usando OpenOCD.

Para obtener más información sobre SWD y OpenOCD, consulte estos artículos:

By Maxwell Gaven

Ich habe 7 Jahre im IT-Bereich gearbeitet. Es macht Spaß, den stetigen Wandel im IT-Bereich zu beobachten. IT ist mein Job, Hobby und Leben.