He buscado por todas partes (de hecho, he pasado los últimos meses tratando de encontrar una respuesta). Tal vez no estoy haciendo las preguntas correctas, o estoy mirando la respuesta a la cara, no estoy seguro. He estado demasiado nervioso para preguntar, pero estoy al final de mi juicio, así que aquí va.
Estoy creando un proyecto que, debido a las limitaciones de tamaño, debe ser muy pequeño. Eso significa una pequeña MCU y una pequeña interfaz de programación. También es de código abierto, por lo 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 es necesario).
Este artículo que encontré parece indicarme 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 y programar cualquier MCU ARM que incluya una interfaz SWD?
Específicamente (si es relevante), estoy buscando integrar el módulo SiP SiLabs BGM121 en mi proyecto y estoy tratando de descubrir cómo lo programaría. Ni siquiera me importa necesariamente la depuración en este punto, solo trato de encontrar una solución económica. También entre el SiLabs CP2102 y el FTDI FT2232H, ¿cuál es más probable que funcione?
La interfaz ARM SWD es 'genérica' en el sentido de que 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 se asignan a la memoria. Aunque estos están estandarizados en cierto sentido, para cualquier cadena de herramientas de depuración a menudo se requiere un grado de personalización (en el lado del software). Por ejemplo, una nueva CPU tendrá un nuevo valor de código de identificación 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 final USB que 'depura'. Hacer esto último es lo que hacen casi todas las placas de desarrollo con una interfaz de depuración integrada, en la línea de SWDAP y el software DAPLink . A menudo, estas placas de desarrollo están configuradas para que pueda dividir las señales SWD y usarlas para depurar su propio hardware de destino en un diseño de 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, era complicado acceder a la documentación del protocolo SWD, y esto parece haber generado cierto grado de confusión cuando se trata de sondas genéricas. Las antiguas interfaces JTAG anteriores a CoreSight también eran mucho más específicas para dispositivos, con un controlador TAP implementado dentro de la CPU.
Muy bien, después de investigar más, creo que he encontrado una solución relativamente barata, una placa de desarrollo stm32 se puede actualizar 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 readbear mk20 está ejecutando un chip stm32, han lanzado el firmware, que necesita cambiar una línea para que sea compatible con el cristal de 8 mhz (Detallado en la publicación del foro vinculada a continuación). De lo contrario cambia el cristal por uno de 16 mhz.
chris stratton
David Schallock
Sean Houlihane
David Schallock
Sean Houlihane