Posso usare il programmatore ST-Link per chip non ST?


12

Posso programmare tutti i tipi di chip programmabili SWD (ARM-MCU) con ST-Link?


"ST-LINK / V2 è un debugger e programmatore in-circuit per le famiglie di microcontrollori STM8 e STM32." Non penso che tu possa immediatamente, ma dovrebbe essere realizzabile in teoria. Qualcuno è riuscito a collegarlo a un MCU LPC qui: lpcware.com/content/forum/…
Fluffy

1
Forse in alcuni casi se usi qualcosa come openocd piuttosto che il software ST. In caso di difficoltà, esistono implementazioni CMSIS-DAP open source su cui è possibile eseguire il flashing, che sono più universali ponendo il software host in un controllo più preciso dei dettagli.
Chris Stratton,

Non è quello che hai chiesto, ma ci sono anche debugger che coprono più target come i micro debugger PE.
mkeith,

2
Uso il collegamento ST per programmare lpc1549, funziona.
user2425240

Risposte:


6

È inoltre possibile eseguire il flashing dello st-link e convertirlo in una sonda di magia nera . La stessa immagine convertirà anche una pillola blu in un BMP.

Ho fatto entrambe le cose. La pillola blu ha il vantaggio che il bridge usb-rs232 esportato da BMP è facilmente disponibile.

Il BMP supporta una gamma di chip da includere ma non limitato a:
ST Microelectronics STM32F0, STM32F1, STM32F3, STM32F2, STM32F4, STM32F7, STM32L0, STM32L1, STM32L4
Atmel SAM3N, SAM3X, SAM3S, SAM3U, SAM4S, SAM4S, SAM4S, SAM4S, SAM4S, SAM4S, SAM4S
Nordic nRF51, nRF52 (Questi sono i motivi per cui utilizzo il BMP)

Il BMP è open source, può essere utilizzato per la programmazione commerciale e l'hardware può essere economico (il BMP "reale" costa circa $ 60, un pacchetto blu da 5 pillole di Amazon era spedito a meno di $ 20).


4

Aggiungere alla risposta esistente; alcuni chip non funzionano correttamente con ST-LINK e OpenOCD.

In particolare, se il tuo target proviene dalla famiglia di MCU Atmel SAMD21, è probabile che si verifichino strani problemi, in cui viene rilevato il processore, ma qualsiasi tentativo di cancellare i settori flash fallisce con un errore.

Il motivo è piuttosto coinvolto , per citare:

AFAIK il problema è in mezza parola (16 bit) scrivere nel registro NVMCTRL-> CTRLA. STLink non implementa l'accesso alla memoria di mezza parola e OpenOCD emula come operazioni a due byte. Sfortunatamente il registro CTRLA comprende da chiave e comando e deve essere scritto atomicamente. Se STLink scrive due byte, il controller NVM imposta il bit PROGE in STATUS: "Un comando non valido e / o una parola chiave errata sono stati / sono stati scritti nel registro comandi NVM"

La soluzione alternativa prevede la ricompilazione di OpenOCD con patch di codice. Non è divertente.

Tuttavia, se non ti dispiace far lampeggiare ST-Link (tramite un altro ST-Link), puoi convertirlo in un adattatore CMSIS-DAP , che funziona perfettamente con il SAMD e dovrebbe funzionare anche con STM32 e altri Cortex-M patatine fritte.


1

Sì, credo che sia possibile, anche se non l'ho provato. Probabilmente violi il contratto di licenza ST se provassi a programmare dispositivi diversi da quelli di ST

Ad esempio Segger (uno dei leader di mercato nei debugger e programmatori) supporta la conversione di ST-Link in J-link (essenzialmente sovrascrivendo il chip ST-Link con il codice Segger). Anche questo è reversibile, quindi se vuoi ripristinare il tuo dispositivo ST-link nella sua forma originale, puoi farlo.

Esistono tuttavia diverse versioni di ST-Link. Dai un'occhiata ai seguenti link che forniscono ulteriori informazioni e una guida su come farlo.

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


1
Ho usato l'intestazione stlink su nucleo e le schede di scoperta sulla maggior parte dei principali marchi cortx-m ... e quelli su cui non sono riuscito a farlo funzionare sono stati problemi a configurare openocd non lo stlink.
old_timer

1
Il flashing di un ST-Link su un J-Link funzionerà (e sarà legale) solo su una scheda Nucleo o Discovery e solo per l'utilizzo con l'MCU target. Leggi le condizioni di licenza di Seggar, sono abbastanza restrittive. Per quanto ne so, il lampeggiatore Seggar non funzionerà nemmeno su un ST-Link indipendente.
GB - AE7OO

1

Si è possibile. sto usando stlink v2 (cloni di chiavetta USB originale e cinese) con Coocox IDE. Coocox ha anche un'app programmatore standalone - CoFlash , che potrebbe essere utilizzata per programmare molti chip. Ho esperienza con solo due serie: LPC176x e LPC175x, tramite interfaccia SWD. E non ho problemi con quelle patatine. Inoltre non ho apportato modifiche o aggiornamenti specifici per i programmatori (tranne per il fatto che lo st link originale richiedeva il livello di alta tensione a TVCC (PIN1), altrimenti non permetteva di programmare il chip, quindi ho collegato direttamente il pin 19 (3.3vcc) pin 1 su stlink v2).


0

Un STLink V2 / V2.1 o V3 con firmware recente può essere utilizzato anche con la piattaforma PC-stlinkv2 Blackmagic ospitata da PC. Compilare con "make PROBE_HOST = pc-stlinkv2", avviare il server di debug con "blackmagic_stlinkv2" e connettersi a: 2000 in gdb o caricare direttamente i binari con "blackmagic_stlinkv2". Funziona con tutti gli obiettivi che BMP conosce. Tuttavia V3 nega in modo attivo di lavorare su bersagli non ST, mentre a V2 non importa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.