Posso usar o programador ST-Link para chips não ST?

12

Posso programar todos os tipos de chips programáveis ​​por SWD (ARM-MCUs) com ST-Link?

Meylis Cherkezov
fonte
"O ST-LINK / V2 é um depurador e programador em circuito para as famílias de microcontroladores STM8 e STM32." Eu não acho que você pode imediatamente, mas deve ser possível em teoria. Alguém conseguiu ligá-lo a um LPC MCU aqui: lpcware.com/content/forum/...
Fluffy
1
Talvez em alguns casos, se você usa algo como openocd, e não o software ST. Se você tiver dificuldades, existem implementações CMSIS-DAP de código aberto que podem ser atualizadas, que são mais universais, colocando o software host sob controle mais preciso dos detalhes.
Chris Stratton
Não foi isso que você pediu, mas também existem depuradores que cobrem vários destinos, como os micro-depuradores de PE.
Mkeith 5/08
2
Eu uso o link ST para programar lpc1549, ele funciona.
user2425240

Respostas:

6

Você também pode exibir o st-link e convertê-lo em uma sonda de magia negra . A mesma imagem também converterá um comprimido azul em um BMP.

Eu fiz os dois. A Blue Pill tem a vantagem de que a ponte usb-rs232 que o BMP exporta está facilmente disponível.

O BMP suporta uma variedade de chips para incluir, entre outros:
ST Microelectronics STM32F0, STM32F1, STM32F3, STM32F2, STM32F4, STM32F7, STM32L0, STM32L1, STM32L4
Atmel SAM3N, SAM3X, SAM3S, SAM3U, SAM4S, SAM4L
Nordic nRF51, nRF52 (É por isso que eu uso o BMP)

O BMP é de código aberto, pode ser usado para programação comercial e o hardware pode ser barato (o BMP "real" custa cerca de US $ 60, um pacote de pílula azul da Amazon custa menos de US $ 20).

GB - AE7OO
fonte
4

Para adicionar à resposta existente; sabe- se que alguns chips não funcionam corretamente com o ST-LINK e o OpenOCD.

Em particular, se o seu destino for da família de MCUs Atmel SAMD21, é provável que você tenha problemas estranhos, nos quais o processador é detectado, mas qualquer tentativa de apagar setores flash falha com um erro.

O motivo está bastante envolvido , para citar:

AFAIK, o problema está na gravação de meia palavra (16 bits) no registro NVMCTRL-> CTRLA. O STLink não implementa o acesso à memória de meia palavra e o OpenOCD emula como operações de dois bytes. Infelizmente, o registro CTRLA compreende da chave e do comando e deve ser escrito atomicamente. Se o STLink gravar dois bytes, o controlador NVM configurará o bit PROGE em STATUS: "Um comando inválido e / ou uma palavra-chave incorreta foi / foi gravada no registro do comando NVM"

A solução alternativa envolve recompilar o OpenOCD com patches de código. Não tem graça.

No entanto, se você não se importa de atualizar seu ST-Link (por outro ST-Link), é possível convertê-lo em um adaptador CMSIS-DAP , que funciona perfeitamente com o SAMD e também deve funcionar com o STM32 e outros Cortex-M salgadinhos.

minexew
fonte
1

Sim, acredito que isso seja possível, embora não tenha tentado. Você provavelmente violaria o contrato de licença ST, se tentasse programar dispositivos diferentes dos da ST

Como exemplo, o Segger (um dos líderes de mercado em depuradores e programadores) suporta a conversão do seu ST-Link para J-link (basicamente substituindo o chip ST-Link pelo código Segger). Isso também é reversível; portanto, se você quiser restaurar o dispositivo ST-link de volta à sua forma original, poderá.

Existem várias versões do ST-Link, no entanto. Dê uma olhada nos links a seguir, que fornecem mais informações e um guia sobre como fazer isso.

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

Peter H
fonte
1
Eu tenho usado o cabeçalho stlink nos núcleos e nas placas de descoberta na maioria das principais marcas de córtex-m ... e as que eu não consegui fazer funcionar foram problemas ao configurar o openocd, não o stlink.
old_timer
1
Transferir um ST-Link para um J-Link funcionará apenas (e será legal) em uma placa Nucleo ou Discovery e apenas para uso com o MCU alvo. Leia os termos da licença Seggar, eles são bastante restritivos. Tanto quanto eu sei, o pisca-pisca Seggar nem funciona em um ST-Link independente.
GB - AE7OO 17/03/19
1

Sim é possivel. Estou usando o stlink v2 (original, bem como clones do tipo stick USB chinês) com o Coocox IDE. A Coocox também possui um aplicativo de programador independente - o CoFlash , que pode ser usado para programar muitos chips. Tenho experiência com apenas duas séries: LPC176x e LPC175x, na interface SWD. E eu não tenho nenhum problema com esses chips. Também não fiz alterações ou atualizações específicas para os programadores (exceto que o link st original exigia o nível de alta tensão no TVCC (PIN1); caso contrário, ele não permitia programar o chip, então eu conectei diretamente o pino 19 (3.3vcc) fixar 1 no stlink v2).

janiso
fonte
0

Um STLink V2 / V2.1 ou V3 com firmware recente também pode ser usado com a plataforma pc-stlinkv2 hospedada por PC Blackmagic. Compile com "make PROBE_HOST = pc-stlinkv2", inicie o servidor de depuração com "blackmagic_stlinkv2" e conecte-se a: 2000 em gdb ou carregue binários diretamente com "blackmagic_stlinkv2". Isso funciona com todos os destinos que o BMP conhece. No entanto, a V3 nega ativamente o trabalho em destinos que não são de ST, enquanto a V2 não se importa.

UweBonnes
fonte