Programando NINA B112 com ST-LINK V2 (SWD)
Gravador de Baixo Custo.
Gravador de Baixo Custo.
O objetivo deste BLOG é demonstrar como é possível utilizar o ST-LINK V2 para programar o módulo U-BLOX NINA B112. Foi utilizado o módulo NINA B112.
Como posso então gravar um HEX pronto de terceiros para dentro do NINA B112 ? A resposta é OPENOCD + ST-LINK V2
Abaixo o roteiro para você seguir:
Configuração do driver para ST-LINK V2
Faça o download do driver do ST-LINK V2
https://os.mbed.com/teams/ST/wiki/ST-Link-Driver
Plug ST-LINK V2 na USB
Faça o download do Zadig
Iniciar o Zadig
Selecione Opções -> Listar Todos os Dispositivos
Conecte e desconecte seu dispositivo para descobrir o que muda e selecione a Interface 2 no menu suspenso do dispositivo
Clique em Substituir Driver
NOTA: Para reverter para o driver original, acesse: Gerenciador de dispositivos -> clique com o botão direito no dispositivo -> caixa de seleção para "Excluir o software do driver para este dispositivo" e clique em Desinstalar
Instale o OPENOCD
https://gnutoolchains.com/arm-eabi/openocd/
Descompacte em C:\
Dentro do diretório bin, crie um arquivo chamado openocd_nrf52.cfg e copie para dentro o seguinte texto:
#
# Nordic Semiconductor NRF52 Development Kit (nRF52832)
#
source [find interface/stlink-v2.cfg]
transport select hla_swd
source [find target/nrf52.cfg]
EXECUTE OPENOCD
Agora é hora de você abrir o prompt do D.O.S ok ?
Dentro da pasta bin, execute o seguinte comando:
Neste exemplo, foi gravado um exemplo de programa juntamente com softdevice, que implementa BLE.
Também foi testado o APP da U-BLOX que transforma o NINA B112 em um módulo BLE programado com comandos AT. Foram gravados os quatro arquivos HEX.
NINA-B11X-BOOT-SW-3.0.2-001.hex
NINA-B11X-SW-5.0.0-011.hex
s132_nrf52_6.1.0_softdevice.hex
valid_s132_nrf52_6.1.0_softdevice.hex
ARDUINO
Dúvidas:
suporte@smartcore.com.br
Referências:
https://github.com/sandeepmistry/arduino-nRF5/issues/102
https://www.u-blox.com/sites/default/files/NINA-B1_SIM_%28UBX-15026175%29.pdf
http://openocd.org/doc/pdf/openocd.pdf
Sobre a SMARTCORE
Como posso então gravar um HEX pronto de terceiros para dentro do NINA B112 ? A resposta é OPENOCD + ST-LINK V2
O preço Médio deste gravador é de 25 a 30 reais.
Configuração do driver para ST-LINK V2
Faça o download do driver do ST-LINK V2
https://os.mbed.com/teams/ST/wiki/ST-Link-Driver
Plug ST-LINK V2 na USB
Faça o download do Zadig
Iniciar o Zadig
Selecione Opções -> Listar Todos os Dispositivos
Conecte e desconecte seu dispositivo para descobrir o que muda e selecione a Interface 2 no menu suspenso do dispositivo
Clique em Substituir Driver
NOTA: Para reverter para o driver original, acesse: Gerenciador de dispositivos -> clique com o botão direito no dispositivo -> caixa de seleção para "Excluir o software do driver para este dispositivo" e clique em Desinstalar
Instale o OPENOCD
https://gnutoolchains.com/arm-eabi/openocd/
Descompacte em C:\
Dentro do diretório bin, crie um arquivo chamado openocd_nrf52.cfg e copie para dentro o seguinte texto:
#
# Nordic Semiconductor NRF52 Development Kit (nRF52832)
#
source [find interface/stlink-v2.cfg]
transport select hla_swd
source [find target/nrf52.cfg]
EXECUTE OPENOCD
Agora é hora de você abrir o prompt do D.O.S ok ?
Dentro da pasta bin, execute o seguinte comando:
openocd -d2 -f openocd_nrf52.cfg
Ele vai abrir um servidor que escutará na porta 4444 e aceitar comandos por esta porta TCP.
Para acessar esta porta, execute TELNET localhost 4444, então abra mais um prompt do D.O.S
Abaixo alguns comandos;
reset init
reset halt
nrf51 mass_erase
set WORKAREASIZE 0x4000
program c:/openOCD/bin/s132_nrf52_2.0.1_softdevice.hex verify
program c:/openOCD/bin/led_switch.ino.hex verify
reset run
exit
Neste exemplo, foi gravado um exemplo de programa juntamente com softdevice, que implementa BLE.
Também foi testado o APP da U-BLOX que transforma o NINA B112 em um módulo BLE programado com comandos AT. Foram gravados os quatro arquivos HEX.
NINA-B11X-BOOT-SW-3.0.2-001.hex
NINA-B11X-SW-5.0.0-011.hex
s132_nrf52_6.1.0_softdevice.hex
valid_s132_nrf52_6.1.0_softdevice.hex
ARDUINO
O ARDUINO para NRF5 (sandeepmistry) também faz uso do Openocd para transferência de programas, neste caso, você não necessita se preocupar com a instalação do Openocd, apenas com o ZADIG.
Mas como regra, não esqueça de gravar o BOOTLOADER e então selecionar o STLINK-V2 no menu do Arduino.
Mais imagens com com uso do OPENOCD
suporte@smartcore.com.br
Referências:
https://github.com/sandeepmistry/arduino-nRF5/issues/102
https://www.u-blox.com/sites/default/files/NINA-B1_SIM_%28UBX-15026175%29.pdf
http://openocd.org/doc/pdf/openocd.pdf