Kann ich den ST-Link-Programmierer für Nicht-ST-Chips verwenden?

12

Kann ich mit ST-Link alle Arten von SWD-programmierbaren Chips (ARM-MCUs) programmieren?

Meylis Cherkezov
quelle
"Der ST-LINK / V2 ist ein In-Circuit-Debugger und Programmierer für die STM8- und STM32-Mikrocontrollerfamilien." Ich denke nicht, dass Sie sofort können, aber es sollte theoretisch erreichbar sein. Jemand hat es geschafft, es hier mit einer LPC-MCU zu verbinden: lpcware.com/content/forum/…
Fluffy
1
Vielleicht in einigen Fällen, wenn Sie etwas wie openocd anstelle der ST-Software verwenden. Wenn Sie auf Schwierigkeiten stoßen, gibt es Open-Source-CMSIS-DAP-Implementierungen, auf die Sie flashen können. Diese sind universeller, indem Sie die Host-Software einer genaueren Kontrolle über die Details unterziehen.
Chris Stratton
Dies haben Sie nicht gefragt, aber es gibt auch Debugger, die mehrere Ziele abdecken, z. B. die PE-Mikro-Debugger.
Mkeith
2
Ich benutze ST Link, um lpc1549 zu programmieren, es funktioniert.
user2425240

Antworten:

6

Sie können den st-Link auch flashen und in eine Black Magic Probe konvertieren . Das gleiche Bild wandelt auch eine blaue Pille in ein BMP um.

Ich habe beides getan. Die Blaue Pille hat den Vorteil, dass die USB-RS232-Brücke, die der BMP exportiert, leicht verfügbar ist.

Das BMP unterstützt eine Reihe von Chips, einschließlich, aber nicht beschränkt auf:
ST Microelectronics STM32F0, STM32F1, STM32F3, STM32F2, STM32F4, STM32F7, STM32L0, STM32L1, STM32L4
Atmel SAM3N, SAM3X, SAM3S, SAM3U, SAM4S, SAM4S, SAM4S, SAM4S, SAM4S
Nordic nRF51, nRF52 (Deshalb benutze ich das BMP)

Das BMP ist Open Source, kann für kommerzielle Programmierung verwendet werden und die Hardware kann billig sein (Das "echte" BMP kostet etwa 60 US-Dollar, ein blaues Pillen-5er-Pack von Amazon wurde für weniger als 20 US-Dollar ausgeliefert).

GB - AE7OO
quelle
4

Zur vorhandenen Antwort hinzufügen; Es ist bekannt, dass einige Chips mit ST-LINK und OpenOCD nicht richtig funktionieren.

Insbesondere wenn Ihr Ziel aus der Atmel SAMD21-MCU-Familie stammt, treten wahrscheinlich seltsame Probleme auf, bei denen der Prozessor erkannt wird. Versuche, Flash-Sektoren zu löschen, schlagen jedoch mit einem Fehler fehl.

Der Grund ist eher involviert , um zu zitieren:

AFAIK das Problem ist in Halbwort (16-Bit) in NVMCTRL-> CTRLA-Register schreiben. STLink implementiert keinen Halbwortspeicherzugriff und OpenOCD emuliert als Zwei-Byte-Operationen. Leider besteht das CTRLA-Register aus Schlüssel und Befehl und muss atomar geschrieben werden. Wenn STLink zwei Bytes schreibt, setzt der NVM-Controller das PROGE-Bit in STATUS: "Ein ungültiger Befehl und / oder ein falsches Schlüsselwort wurden / wurden in das NVM-Befehlsregister geschrieben."

Die Problemumgehung umfasst das Neukompilieren von OpenOCD mit Code-Patches. Kein Spaß.

Wenn es Ihnen jedoch nichts ausmacht, Ihren ST-Link (über einen anderen ST-Link) zu flashen , können Sie ihn in einen CMSIS-DAP-Adapter konvertieren , der mit SAMD einwandfrei funktioniert und auch mit STM32 und anderen Cortex-M funktionieren sollte Chips.

Minexew
quelle
1

Ja, ich glaube, das ist möglich, obwohl ich es nicht ausprobiert habe. Sie würden wahrscheinlich gegen die ST-Lizenzvereinbarung verstoßen, wenn Sie versuchen würden, andere Geräte als die von ST zu programmieren

Als Beispiel unterstützt Segger (einer der Marktführer bei Debuggern und Programmierern) die Konvertierung Ihres ST-Link in J-Link (im Wesentlichen das Überschreiben des ST-Link-Chips mit dem Segger-Code). Dies ist auch umkehrbar. Wenn Sie also Ihr ST-Link-Gerät wieder in seiner ursprünglichen Form wiederherstellen möchten, können Sie dies tun.

Es gibt jedoch mehrere Versionen von ST-Link. Schauen Sie sich die folgenden Links an, die weitere Informationen und eine Anleitung dazu enthalten.

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

Peter H.
quelle
1
Ich habe den Stlink-Header auf Nucleo- und Discovery-Boards der meisten großen Cortex-M-Marken verwendet ... und diejenigen, an denen ich ihn nicht zum Laufen bringen konnte, waren Probleme, Openocd zu konfigurieren, nicht der Stlink.
old_timer
1
Das Flashen eines ST-Links zu einem J-Link funktioniert nur (und ist legal) auf einem Nucleo- oder Discovery-Board und nur zur Verwendung mit der Ziel-MCU. Lesen Sie die Seggar-Lizenzbedingungen, sie sind recht restriktiv. Soweit ich weiß, funktioniert der Seggar-Blinker nicht einmal mit einem eigenständigen ST-Link.
GB - AE7OO
1

Ja es ist möglich. Ich verwende stlink v2 (Original- sowie chinesische USB-Stick-Klone) mit Coocox IDE. Coocox hat auch eine eigenständige Programmierer-App - CoFlash , mit der viele Chips programmiert werden können. Ich habe Erfahrung mit nur zwei Serien: LPC176x und LPC175x über SWD-Schnittstelle. Und ich habe keine Probleme mit diesen Chips. Ich habe auch keine spezifischen Änderungen oder Aktualisierungen für die Programmierer vorgenommen (außer dass die ursprüngliche ST-Verbindung den Hochspannungspegel bei TVCC (PIN1) erforderte, andernfalls konnte der Chip nicht programmiert werden, also habe ich Pin 19 (3,3 Vcc) direkt angeschlossen. an Pin 1 an stlink v2).

Janiso
quelle
0

Ein STLink V2 / V2.1 oder V3 mit aktueller Firmware kann auch mit der PC-gehosteten Blackmagic pc-stlinkv2-Plattform verwendet werden. Kompilieren Sie mit "make PROBE_HOST = pc-stlinkv2", starten Sie den Debug-Server mit "blackmagic_stlinkv2" und stellen Sie eine Verbindung zu: 2000 in gdb her oder laden Sie Binärdateien direkt mit "blackmagic_stlinkv2". Dies funktioniert mit allen Zielen, die BMP kennt. V3 lehnt jedoch aktiv die Arbeit an Nicht-ST-Zielen ab, während es V2 egal ist.

UweBonnes
quelle