Puis-je utiliser le programmateur ST-Link pour les puces non ST?


12

Puis-je programmer toutes sortes de puces programmables SWD (ARM-MCU) avec ST-Link?


"Le ST-LINK / V2 est un débogueur et programmeur en circuit pour les familles de microcontrôleurs STM8 et STM32." Je ne pense pas que vous puissiez le faire immédiatement, mais cela devrait être réalisable en théorie. Quelqu'un a réussi à le connecter à un MCU LPC ici: lpcware.com/content/forum/…
Fluffy

1
Peut-être dans certains cas si vous utilisez quelque chose comme openocd plutôt que le logiciel ST. Si vous rencontrez des difficultés, il existe des implémentations CMSIS-DAP open source que vous pouvez flasher dessus, qui sont plus universelles en plaçant le logiciel hôte dans un contrôle plus fin des détails.
Chris Stratton

Ce n'est pas ce que vous avez demandé, mais il existe également des débogueurs qui couvrent plusieurs cibles telles que les micro débogueurs PE.
mkeith

2
J'utilise le lien ST pour programmer lpc1549, cela fonctionne.
user2425240

Réponses:


6

Vous pouvez également flasher le st-link et le convertir en une sonde Black Magic . La même image convertira également une pilule bleue en BMP.

J'ai fait les deux. La pilule bleue a l'avantage que le pont usb-rs232 que les exportations BMP sont facilement disponibles.

Le BMP prend en charge une gamme de puces à inclure, sans s'y limiter:
ST Microelectronics STM32F0, STM32F1, STM32F3, STM32F2, STM32F4, STM32F7, STM32L0, STM32L1, STM32L4
Atmel SAM3N, SAM3X, SAM3S, SAM3U, SAM4S, SAM4
Nordic nRF51, nRF52 (C'est pourquoi j'utilise le BMP)

Le BMP est open source, peut être utilisé pour la programmation commerciale et le matériel peut être bon marché (le "vrai" BMP coûte environ 60 $, un pack de 5 pilules bleues d'Amazon coûtait moins de 20 $).


4

Pour compléter la réponse existante; certaines puces ne fonctionnent pas correctement avec ST-LINK et OpenOCD.

En particulier, si votre cible appartient à la famille de microcontrôleurs Atmel SAMD21, vous risquez de rencontrer des problèmes étranges, où le processeur est détecté, mais toute tentative d'effacement des secteurs flash échoue avec une erreur.

La raison est plutôt impliquée , pour citer:

AFAIK le problème est en demi-mot (16 bits) écrit dans le registre NVMCTRL-> CTRLA. STLink n'implémente pas l'accès à la mémoire d'un demi-mot et OpenOCD émule comme des opérations sur deux octets. Malheureusement, le registre CTRLA comprend une clé et une commande qui doivent être écrites atomiquement. Si STLink écrit deux octets, le contrôleur NVM définit le bit PROGE dans STATUS: "Une commande non valide et / ou un mot clé incorrect a été / ont été écrits dans le registre de commandes NVM"

La solution consiste à recompiler OpenOCD avec des correctifs de code. Pas drôle.

Cependant, si cela ne vous dérange pas de flasher votre ST-Link (via un autre ST-Link), vous pouvez le convertir en un adaptateur CMSIS-DAP , qui fonctionne très bien avec le SAMD et devrait également fonctionner avec STM32 et d'autres Cortex-M chips.


1

Oui, je crois que c'est possible, même si je ne l'ai pas essayé. Vous violeriez probablement le contrat de licence ST si vous essayiez des appareils de programmation autres que ceux de ST

À titre d'exemple, Segger (l'un des leaders du marché des débogueurs et des programmeurs) prend en charge la conversion de votre ST-Link en J-link (écrasant essentiellement la puce ST-Link avec le code Segger). Ceci est également réversible, donc si vous souhaitez restaurer votre appareil ST-link à sa forme d'origine, vous pouvez.

Il existe cependant plusieurs versions de ST-Link. Jetez un œil aux liens suivants qui fournissent plus d'informations et un guide sur la façon de procéder.

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


1
J'ai utilisé l'en-tête stlink sur les cartes de nucléo et de découverte sur la plupart des principales marques de cortex-m ... et celles sur lesquelles je ne pouvais pas le faire fonctionner étaient des problèmes pour configurer openocd et non le stlink.
old_timer

1
Faire clignoter un ST-Link sur un J-Link ne fonctionnera (et ne sera légal) que sur une carte Nucleo ou Discovery et uniquement pour une utilisation avec le MCU ciblé. Lisez les termes de la licence Seggar, ils sont assez restrictifs. Pour autant que je sache, le clignotant Seggar ne fonctionnera même pas sur un ST-Link autonome.
GB - AE7OO

1

Oui c'est possible. j'utilise stlink v2 (original, ainsi que des clones de type clé USB chinois) avec Coocox IDE. Coocox a également une application de programmation autonome - CoFlash , qui pourrait être utilisée pour programmer beaucoup de puces. J'ai de l'expérience avec seulement deux séries: LPC176x et LPC175x, via l'interface SWD. Et je n'ai aucun problème avec ces puces. Je n'ai pas non plus apporté de modifications ou de mises à jour spécifiques aux programmeurs (sauf que le lien st d'origine nécessitait le niveau de haute tension à TVCC (PIN1), sinon, il ne permettait pas de programmer la puce, donc je me suis connecté directement broche 19 (3.3vcc) à la broche 1 sur stlink v2).


0

Un STLink V2 / V2.1 ou V3 avec un micrologiciel récent peut également être utilisé avec la plate-forme Blackmagic pc-stlinkv2 hébergée sur PC. Compilez avec "make PROBE_HOST = pc-stlinkv2", démarrez le serveur de débogage avec "blackmagic_stlinkv2" et connectez-vous à: 2000 dans gdb ou chargez directement les binaires avec "blackmagic_stlinkv2". Cela fonctionne avec toutes les cibles que BMP connaît. Cependant, V3 nie activement travailler sur des cibles non ST, tandis que V2 s'en fiche.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.