¿Puedo usar el programador ST-Link para chips que no sean ST?


12

¿Puedo programar todo tipo de chips programables por SWD (ARM-MCU) con ST-Link?


"El ST-LINK / V2 es un depurador y programador en circuito para las familias de microcontroladores STM8 y STM32". No creo que puedas hacerlo de inmediato, pero en teoría debería ser posible. Alguien logró conectarlo a un MCU LPC aquí: lpcware.com/content/forum/…
Fluffy

1
Quizás en algunos casos si usa algo como openocd en lugar del software ST. Si se encuentra con dificultades, hay implementaciones de código abierto CMSIS-DAP que podría utilizar, que son más universales al colocar el software host en un control más preciso de los detalles.
Chris Stratton el

Esto no es lo que pediste, pero también hay depuradores que cubren múltiples objetivos, como los micro depuradores de PE.
mkeith

2
Yo uso el enlace ST para programar lpc1549, funciona.
user2425240

Respuestas:


6

También puede actualizar el enlace st y convertirlo en una sonda de magia negra . La misma imagen también convertirá una píldora azul en una BMP.

He hecho las dos cosas. La píldora azul tiene la ventaja de que el puente usb-rs232 que exporta BMP está fácilmente disponible.

El BMP admite una gama de chips para incluir, entre otros:
ST Microelectronics STM32F0, STM32F1, STM32F3, STM32F2, STM32F4, STM32F7, STM32L0, STM32L1, STM32L4
Atmel SAM3N, SAM3X, SAM3S, SAM3U, SAM4S, SAM4S, D4, SAM4S, SAM4S
Nordic nRF51, nRF52 (Es por eso que uso el BMP)

El BMP es de código abierto, se puede usar para programación comercial y el hardware puede ser barato (el BMP "real" cuesta alrededor de $ 60, un paquete azul de 5 píldoras de Amazon se envió por menos de $ 20).


4

Para agregar a la respuesta existente; Se sabe que algunos chips no funcionan correctamente con ST-LINK y OpenOCD.

En particular, si su objetivo es de la familia de MCU Atmel SAMD21, es probable que encuentre problemas extraños, donde se detecta el procesador, pero cualquier intento de borrar sectores flash falla con un error.

La razón es bastante complicada , por citar:

AFAIK el problema está en la escritura de media palabra (16 bits) en el registro NVMCTRL-> CTRLA. STLink no implementa el acceso de memoria de media palabra y OpenOCD emula es como operaciones de dos bytes. Lamentablemente, el registro CTRLA se compone de una clave y un comando que deben escribirse atómicamente. Si STLink escribe dos bytes, el controlador NVM establece el bit PROGE en ESTADO: "Se escribió / se escribió un comando inválido y / o una palabra clave incorrecta en el registro de comandos NVM"

La solución consiste en recompilar OpenOCD con parches de código. No es divertido.

Sin embargo, si no le importa actualizar su ST-Link (a través de otro ST-Link), puede convertirlo en un adaptador CMSIS-DAP , que funciona bien con el SAMD y también debería funcionar con STM32 y otros Cortex-M papas fritas.


1

Sí, creo que esto es posible, aunque no lo he probado. Probablemente violaría el acuerdo de licencia de ST si intentara programar dispositivos distintos de los de ST

Como ejemplo, Segger (uno de los líderes del mercado en depuradores y programadores) admite la conversión de su ST-Link a J-link (esencialmente sobrescribiendo el chip ST-Link con el código Segger). Esto también es reversible, por lo que si desea restaurar su dispositivo ST-link a su forma original, puede hacerlo.

Sin embargo, hay varias versiones de ST-Link. Eche un vistazo a los siguientes enlaces que proporcionan más información y una guía sobre cómo hacerlo.

https://www.segger.com/jlink-st-link.html
https://www.segger.com/jlink-ob.html


1
He estado usando el encabezado stlink en nucleo y placas de descubrimiento en la mayoría de las principales marcas de cortex-m ... y las que no pude hacer funcionar fueron problemas para configurar OpenOncd, no el stlink.
old_timer

1
Destellar un ST-Link a un J-Link solo funcionará (y será legal) en una placa Nucleo o Discovery y solo para usar con el MCU objetivo. Lea los términos de la licencia de Seggar, son bastante restrictivos. Hasta donde sé, el flasheador Seggar ni siquiera funcionará en un ST-Link independiente.
GB - AE7OO

1

Si es posible. Estoy usando stlink v2 (original, así como clones de tipo de memoria USB) con Coocox IDE. Coocox también tiene una aplicación de programador independiente: CoFlash , que podría usarse para programar una gran cantidad de chips. Tengo experiencia con solo dos series: LPC176x y LPC175x, a través de la interfaz SWD. Y no tengo ningún problema con esas fichas. Tampoco he realizado cambios o actualizaciones específicas para los programadores (excepto que el enlace st original requería el nivel de alto voltaje en TVCC (PIN1), de lo contrario, no permitía programar el chip, así que conecté directamente el pin 19 (3.3vcc) al pin 1 en stlink v2).


0

También se puede utilizar un STLink V2 / V2.1 o V3 con firmware reciente con la plataforma PC-stlinkv2 de Blackmagic alojada en PC. Compile con "make PROBE_HOST = pc-stlinkv2", inicie el servidor de depuración con "blackmagic_stlinkv2" y conéctese a: 2000 en gdb o cargue directamente los archivos binarios con "blackmagic_stlinkv2". Esto funciona con todos los objetivos que BMP conoce. Sin embargo, V3 niega activamente trabajar en objetivos que no sean ST, mientras que a V2 no le importa.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.