U-BLOX NINA B302 e ARDUINO
O objetivo deste BLOG é demonstrar como é possível utilizar a IDE do Arduino para programar o módulo U-BLOX NINA B3. Foi utilizado o módulo NINA B302 (opencpu) para o teste.
1) Baixe e instale a última versão da IDE do Arduino.
https://www.arduino.cc/en/Main/Software
2) Crie uma pasta "portable" dentro da pasta Arduino
2) Crie uma pasta "portable" dentro da pasta Arduino
3) Execute a IDE do Arduino e click em files-->preferences
Aguarde alguns minutos para instalação do SDK.
6) Selecione em Ferramentas-->placa o módulo "Adafruity NRF52840DK PCA10056"
7) Crie um Sketch novo e copie o programa abaixo
// the setup function runs once when you press reset or power the board
void setup() {
pinMode(3, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000);
digitalWrite(3, LOW); // turn the LED off by making the voltage LOW
delay(1000);
}
Neste caso, foi escolhido o pino GPIO_16 do NINA, que tem pino do processador correspondente à P0.3
8) Você pode alterar o mapa PCA1006 para ser compatível com NINA B302, alterando dois arquivos
....\Arduino\Portable\packages\adafruit\hardware\nrf52\0.9.3\variants\pca10056
variant.h e variant.cpp
9) Compile
9) Diferente do NINA B1, o B302 tem uma USB a qual permite que você possa criar um COM virtual e copiar o programa via DFU (NRFPROG), isto graças ao bootloader da Adafruit
Um cabo USB foi soldado em D+, D-, GND e VBUS do NINA B302
Instale os drivers da Adafruit
10) Com seu gravador SEGGER J-TAG, será necessário gravar o BOOTLOADER da Adafruit
Voce pode baixar o Bootloader pelo caminho (Arduino)
....Arduino\Portable\packages\adafruit\hardware\nrf52\0.9.3\bootloader\pca10056
11) Conecte a USB no seu PC e os drivers serão instalados. Uma COM virtual aparecerá, na figura abaixo, apareceu COM55
12) Seleciona a COM no Arduino e transfira o programa
Resete o NINA B302 e verás o LED alterando de estado a cada 1000ms!
Atenção (DICAS):
O BOOTLOADER da Adafruity também criará uma COM VIRTUAL para Debug do comando print, printl, write, etc;
Comente a linha abaixo, senão o programa ficará num LOOP infinito até que você abra a COM VIRTUAL.
//while ( !Serial ) delay(10); // for nrf52840 with native usb
Uma COM VIRTUAL é criada para UPLOAD, mas não é a mesma para DEBUG, ou seja, durante UPLOAD é usada uma COM, após a execução do programa é criada outra COM VIRTUAL.
Comente a linha abaixo, senão o programa ficará num LOOP infinito até que você abra a COM VIRTUAL.
//while ( !Serial ) delay(10); // for nrf52840 with native usb
Uma COM VIRTUAL é criada para UPLOAD, mas não é a mesma para DEBUG, ou seja, durante UPLOAD é usada uma COM, após a execução do programa é criada outra COM VIRTUAL.
FONTES:
https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/introductionhttps://www.u-blox.com/sites/default/files/NINA-B1_SIM_%28UBX-15026175%29.pdf