Posso programar todos os tipos de chips programáveis por SWD (ARM-MCUs) com ST-Link?
Posso programar todos os tipos de chips programáveis por SWD (ARM-MCUs) com ST-Link?
Respostas:
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).
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.
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
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).
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.