
Olá Habr!
Neste artigo, mostrarei como modificar o ST-Link V2 para o ST-Link V2.1.
Talvez para alguns não seja novidade, mas não encontrei nenhuma informação especial sobre esse assunto na internet.
Quem se importa - peço um gato.
Prefácio
Aconteceu que eu estou cansado dos fios extras.
Depois de pensar um pouco, lembrei que nas placas Nucleo e Discovery - o ST-Link combina SWD e VCP (Virtual Com Port).
A primeira coisa que veio à mente foi comprar o mais barato dessas placas, tentar despejar o firmware ignorando a proteção e preenchê-lo com o programador da China ou criar uma nova placa.
No entanto, eles me pediram um link para o GitHub com um gerenciador de inicialização já estendido; no final, acabou o que aconteceu.
Começando a trabalhar
A modificação só pode ser feita na versão do software para Windows; a versão do software de plataforma cruzada se recusa a atualizar o dispositivo!
Existem várias opções de modificação, e algumas delas não podem ser feitas se o chip não for adequado (não há memória suficiente).
Por exemplo, a modificação do STM32 + MSD + VCP só pode ser feita se o chip for STM32F1xxCBxx, no entanto, ele possui um análogo do STM32 + Audio, que fornecerá o STM32 + VCP (em princípio, é o que precisamos).
Você precisará de:
- ferro de solda;
- Multímetro com provérbio;
- PC com Windows (pode passar pelo Wine, ainda não experimentou);
-
Arquivo com o software e bootloader necessário (PASS: QWK2tn + fM.EdjX6z).
- clone chinês ST-Link V2;
- Adaptador USB-UART ou um segundo ST-Link.
Nós revelamos ...
Placas e chips são todos diferentes Firmware
Existem duas maneiras - USB-UART (um pouco mais complicado) ou o segundo ST-Link.
USB UART
1) Pelo mostrador, encontramos o resistor conectado ao
BOOT0 .
Fazemos um jumper do lado desse resistor, que está conectado ao
BOOT0 a
3.3v .
O PA9 (TX) pode ser conectado ao LED ou ao resistor próximo a ele, como chamamos.
Solda
UART para
PA9 (
TX ) e
PA10 (
RX ).
Eu fiz assim:

Também soldamos alimentos.
Piscando o carregador de inicialização Protected-2-1-Bootloader.bin usando o
demonstrador do carregador STM32 Flash .
Depois de piscar, solde o jumper,
PA9 e
PA10 (deixe
PA10 se quisermos
gerar SWO ).
ST-Link
Existem 4 pinos nas placas, em alguns casos eles já estão marcados; caso contrário, são chamados em relação ao
PA13 (
SWDIO ) e
PA14 (
SWCLK ), soldados pelo segundo
ST-Link .

Também soldamos alimentos.
Instalamos o STM32 ST-LINK Utility V4.3 a partir do arquivo morto, removemos a proteção contra gravação e atualizamos o carregador de inicialização Protected-2-1-Bootloader.bin.
Para remover a proteção no programa
STM32 ST-LINK Utility , clique em
Destino> Bytes de opção , alterne
Proteção contra leitura para
Desativado e clique em
Aplicar .
Atualização para o ST-Link V2.1
Após o firmware, conectamos o ST-Link costurado (já quase V2.1) ao PC.
No programa
STM32 ST-LINK Utility V4.3, clique em
ST-LINK> Atualização de firmware .
Clique em
Dispositivo Ligue - obter uma lista de possíveis modificações:

Selecionamos a modificação necessária, no meu caso
STM32 + MSD + VCP , clique em
Sim >>>> .
Estamos aguardando a atualização ser concluída ...

Lucro!
A parte final
Como o SWIM e o RST não funcionam após essa modificação, eu os corto.
Também cortei os 5V e 3.3V duplicados.
Acontece que 4 pinos livres.
Neles, soldo a fiação do chip:
PA10 -> SWO
PB0 -> NRST
PA3 -> RX
PA2 -> TXSaída tudo para o conector principal, para os pinos livres restantes.
O resultado foi uma pinagem:

Meu dispositivo após modificação Não se esqueça de lavar a placa após a solda!
Como resultado, em um PC, o dispositivo é definido da seguinte maneira:


Não tenho idéia de qual é o volume de uma unidade flash virtual (nesse caso, o F103C8 foi conectado ao ST-Link V2.1).
Se você enviar um arquivo de firmware para ele, o programador piscará o chip sem programas.
Verificando VCP:

Obrigado pela atenção!
Ao copiar, deixe um link para a fonte.
Em caso de dúvidas, entre em contato nos comentários, como eu puder - vou ajudar.