¿Es SWD con un chip FTDI una solución de programador universal?

1

He buscado alto y bajo (de hecho, he pasado los últimos meses intentando encontrar una respuesta). Tal vez no esté haciendo las preguntas correctas, o estoy mirando fijamente la respuesta, no estoy seguro. He estado demasiado nerviosa para preguntar, pero estoy en un apuro, así que aquí va.

Estoy creando un proyecto que, debido a limitaciones de tamaño, debe ser muy pequeño. Eso significa pequeño MCU y pequeña interfaz de programación. También es de código abierto, así que me gustaría mantener la interfaz de programación lo más barata y simple posible (también como estudiante no quiero gastar mucho si no tengo que hacerlo).

Este artículo Lo que encontré me parece indicar la posibilidad de una solución universal. Esos chips FTDI son mucho más baratos que cualquier otro programador JTAG (legítimo). En términos generales (para la posteridad), ¿podrán interactuar con y programar cualquier MCU ARM que incluya una interfaz SWD?

Específicamente (si es relevante), busco integrar el módulo SiP de BGM121 de SiLabs en mi proyecto y estoy tratando de averiguar cómo lo programaría. En este punto, ni siquiera me importa necesariamente la depuración, solo trato de encontrar una solución barata. También entre el SiLabs CP2102 y el FTDI FT2232H, ¿cuál es más probable que funcione?

    
pregunta David Schallock

2 respuestas

1

La interfaz SWD de ARM es 'genérica' porque el protocolo de interfaz no se preocupa por el hardware de destino. Entonces, suponiendo que su dispositivo de programación funcione con el voltaje correcto, sí, puede funcionar con cualquier hardware.

Detrás de la interfaz SWD, los registros que controlan la depuración en el SoC están asignados a la memoria. Aunque estos están estandarizados en cierto sentido, para cualquier cadena de herramientas de depuración a menudo se requerirá un grado de personalización (en el lado del software). Por ejemplo, una nueva CPU tendrá un nuevo valor de código de ID, y tal vez algunos registros de control de arquitectura adicionales.

Básicamente, tiene la opción de implementar el protocolo SWD en el software de su PC, y usar una interfaz de USB a pines, o implementar el protocolo en un microcontrolador y presentar un punto de conexión USB que "hace depuración". Hacer lo último es lo que hacen casi todos los paneles de desarrollo con una interfaz de depuración incorporada, en la línea de SWDAP y el software DAPLink . A menudo, estas placas de desarrollo están configuradas para que pueda separar las señales SWD y usarlas para depurar su propio hardware de destino en el diseño de un producto final.

Si elige no implementar DAPLink, es posible que esté más limitado en las cadenas de herramientas que admiten su interfaz.

En el pasado, la documentación del protocolo SWD ha sido complicada para obtener acceso, y esto parece haber dejado un cierto grado de confusión cuando se trata de sondas genéricas. Las antiguas interfaces JTAG anteriores al CoreSight también eran mucho más específicas del dispositivo, con un controlador TAP implementado dentro de la CPU.

    
respondido por el Sean Houlihane
1

Bien, después de más investigación, creo que he encontrado una solución relativamente barata, una placa de desarrollo stm32 puede flashearse con el firmware DAPLINK, pero no creo que el firmware oficial de github funcione de forma nativa. Pero descubrí que la placa daplink_usb incluida con el lector de lectura mk20 está ejecutando un chip stm32, han lanzado el firmware, que necesita una línea modificada para que sea compatible con el cristal de 8 mhz (detallado en la publicación del foro vinculado a continuación). De lo contrario cambiar el cristal con un 16 mhz uno.

Buen recurso de foro aquí .

Horquilla de Github de Redbear

    
respondido por el David Schallock

Lea otras preguntas en las etiquetas