quarta-feira, 29 de dezembro de 2021

SEGGER STUDIO PARA PROGRAMAÇÃO DO NINA B112/B302 - PARA INICIANTES - BLE (Bluetooth Low Energy)

SEGGER STUDIO PARA PROGRAMAÇÃO DO NINA B112/B302 - PARA INICIANTES - BLE (Bluetooth Low Energy)


O objetivo deste BLOG é dar uma ideia geral de programação do NINA B112 (opencpu) e NINA B302 com a ferramenta SEGGER STUDIO. O material é da Sumair's Embedded Engineering, a qual disponibilizou vídeos de programação para iniciantes do NR52832 e NRF52840 no Youtube, os quais são os cores dos módulos NINA B112 (opencpu) e NINA B302. Os vídeos pouparão horas de trabalho no entendimento dos códigos exemplos em C disponibilizados pelos SDK da NORDIC.

Finalmente um CURSO para iniciantes que está em constante evolução, BLE (Bluetooth Low Energy)


Ajude SUMAIR pelo PAYPAL

If you like my work & want me to keep on making more tutorials on these devices, please do support me. You can make a one time donation or buy me a coffee :p on my PayPal Account:
PAYPAL: PayPal.Me
just click on this link to proceed, thanks :)

Sumair

terça-feira, 28 de dezembro de 2021

SEGGER STUDIO PARA PROGRAMAÇÃO DO NINA B112/B302 - PARA INICIANTES

 SEGGER STUDIO PARA PROGRAMAÇÃO DO NINA B112/B302 - PARA INICIANTES


O objetivo deste BLOG é dar uma ideia geral de programação do NINA B112 (opencpu) e NINA B302 com a ferramenta SEGGER STUDIO. O material é da Sumair's Embedded Engineering, a qual disponibilizou vídeos de programação para iniciantes do NR52832 e NRF52840 no Youtube, os quais são os cores dos módulos NINA B112 (opencpu) e NINA B302. Os vídeos pouparão horas de trabalho no entendimento dos códigos exemplos em C disponibilizados pelos SDK da NORDIC.

Finalmente um CURSO para iniciantes que está em constante evolução, abordando GPIOS, SPI, I2C, SERIAL, TIMER, PWM, ADC.


Ajude SUMAIR pelo PAYPAL

If you like my work & want me to keep on making more tutorials on these devices, please do support me. You can make a one time donation or buy me a coffee :p on my PayPal Account:
PAYPAL: PayPal.Me
just click on this link to proceed, thanks :)

Sumair

quinta-feira, 4 de novembro de 2021

NINA B302 sendo programado via RT-THREAD (Hello World)

NINA B302 sendo programado via RT-THREAD (Hello World)

O objetivo deste BLOG é demonstrar de forma resumida como é possível fazer com que o módulo NINA B302 possa se programado no RT-THREAD via pacote Platformio.

Tenha em mãos os seu gravador SEGGER J-LINK.


Caso estejas utilzando o EVK, o mesmo já vem com o gravador J-LINK EMBARCADO.

Prefácio

Um Ambiente de Desenvolvimento Integrado (IDE) é um aplicativo de software que fornece um ambiente de programação para agilizar o desenvolvimento e depuração de software. Em vez de realizar todas as etapas necessárias para fazer um programa executável ou gerar um firmware binário como tarefas individuais não relacionadas, os IDEs trazem todas as ferramentas necessárias para um aplicativo e espaço de trabalho. Cada uma das ferramentas tem consciência do ambiente e funcionam em harmonia para fornecer uma experiência de desenvolvedor muito boa fora da caixa, tanto para desenvolvedores novatos quanto para os experientes.

Mundo sem IDEs

Sem IDEs, os desenvolvedores precisam usar um editor, compilador e vinculador instalado em sua máquina de desenvolvimento para criar arquivos de código, compilá-los e vinculá-los. Isso às vezes pode ser opressor para novos desenvolvedores que primeiro precisam instalar e configurar todos os conjuntos de ferramentas necessários e manter uma guia de vários comandos para gerar os binários executáveis ​​para atualizar os dispositivos, especialmente no mundo do desenvolvimento de sistemas embarcados.

RT-THREAD

Desenvolvimento de IoT para microcontroladores. Ele inclui funções completas de desenvolvimento, compilação e depuração, tem grande suporte para chips da série NORDIC via Platformio e suporte completo para depuração DOP-Link J-Link DO ST-Link.

Passo 1 Instalação

A versão mais recente do RT-Thread Studio é o 2.0, que suporta o sistema operacional Windows 10 x64. O link de download do RT-Thread Studio é

https://realthread-ide.rt-thread.org/Global/RT-Thread-Studio-setup-x86_64-latest.exe , Depois de baixar o software, clique duas vezes para instalar

Para executar o Studio pela primeira vez, você precisa se cadastrar e fazer login na sua conta pessoal. Clique em Se inscrever para registrar uma conta e você pode fazer login

Após o login bem-sucedido, você pode ver a página de boas-vindas do software



Passo 2 Instalar pacote  PLATFORMIO
Feche a página de boas-vindas, você pode ver o gerente de projeto e a visualização de desenvolvimento C/C++, aqui instalamos alguns pacotes de recursos necessários para apoiar o desenvolvimento do U-BLOX NINA B302, as etapas de instalação:

1. Clique no ícone do gerenciador SDK
2. Selecione a versão PlatformIO 5.0.3.12
3. Clique no botão Instalar pacote para executar a instalação

2. Acenda o LED com a estrutura Arduino

Passo 0 Criar projeto NRF52840_MDK Arduino

Clique no botão Criar projeto no canto superior esquerdo do IDE para criar um novo projeto. Aqui escolhemos criar o Projeto Geral e optar por usar a plataforma PlatformIO. Os passos são os seguintes:

+ Criar Projeto Geral

+ Selecionar base no PlatformIO

+ Pesquisar NRF52840 (compatível com U-BLOX NINA B302)

+ Selecione NRF52840_DK

Aguarde





Passo 1 Adicionar código de piscar LED

PS:Para compatibilizar NRF52840_DK com U-BLOX NINA B302, em

C:\Users\Usuario\.platformio\packages\framework-arduinonordicnrf5\variants\nRF52DK

Altere variant.cpp para

/* Copyright (c) 2014-2015 Arduino LLC. All right reserved. Copyright (c) 2016 Sandeep Mistry All right reserved. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "variant.h" const uint32_t g_ADigitalPinMap[] = { // D0 .. D13 29, // D0 is P0.29 (UART RX) 45, // D1 is P1.13 (UART TX) 44, // D2 is P1.12 (NFC2) 31, // D3 is P0.31 (LED1) 13, // D4 is P0.13 (LED2) 11, // D5 is P0.11 9, // D6 is P0.09 10, // D7 is P0.10 (Button) 41, // D8 is P1.09 12, // D9 is P0.12 14, // D10 is P0.14 15, // D11 is P0.15 32, // D12 is P1.00 7, // D13 is P0.07 // D14 .. D21 (aka A0 .. A5) 4, // D14 is P0.04 (A0) 30, // D15 is P0.30 (A1) 5, // D16 is P0.05 (A2) 2, // D17 is P0.02 (A3) 28, // D18 is P0.28 (A4) 3, // D19 is P0.03 (A5) // D20 .. D21 (aka I2C pins) 16, // D20 is P0.16 (SDA) 24, // D21 is P0.24 (SCL) // QSPI pins (not exposed via any header / test point) 19, // D22 is P0.19 (QSPI CLK) 17, // D23 is P0.17 (QSPI CS) 20, // D24 is P0.20 (QSPI Data 0) 21, // D25 is P0.21 (QSPI Data 1) 22, // D26 is P0.22 (QSPI Data 2) 26, // D27 is P0.23 (QSPI Data 3) 40, // D28 is P1.08 - IO34 41, // D29 is P1.01 - IO35 44, // D30 is P1.02 - IO36 45, // D31 is P1.03 - IO37 42, // D32 is P1.10 - IO38 43, // D33 is P1.11 - IO39 47, // D34 is P1.15 - IO40 46, // D35 is P1.14 - IO41 26, // D36 is P0.26 - IO42 6, // D37 is P0.6 - IO43 27, // D38 is P0.27 - IO44 };
variant.h para

/* Copyright (c) 2014-2015 Arduino LLC. All right reserved. Copyright (c) 2016 Sandeep Mistry All right reserved. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _VARIANT_NRF52_DK_ #define _VARIANT_NRF52_DK_ /** Master clock frequency */ #define VARIANT_MCK (64000000ul) //#define USE_LFXO // Board uses 32khz crystal for LF /*---------------------------------------------------------------------------- * Headers *----------------------------------------------------------------------------*/ #include "WVariant.h" #ifdef __cplusplus extern "C" { #endif // __cplusplus // Number of pins defined in PinDescription array #define PINS_COUNT (40) #define NUM_DIGITAL_PINS (34) #define NUM_ANALOG_INPUTS (6) #define NUM_ANALOG_OUTPUTS (0) // LEDs #define PIN_LED1 (3) #define PIN_LED2 (4) #define LED_BUILTIN PIN_LED1 #define LED_CONN PIN_LED2 #define LED_RED PIN_LED1 #define LED_BLUE PIN_LED2 #define LED_STATE_ON 1 // State when LED is litted /* * Buttons */ #define PIN_BUTTON1 (7) /* * Analog pins */ #define PIN_A0 (14) #define PIN_A1 (15) #define PIN_A2 (16) #define PIN_A3 (17) #define PIN_A4 (18) #define PIN_A5 (19) #define D0 (0) #define D1 (1) #define D2 (2) #define D3 (3) #define D4 (4) #define D5 (5) #define D6 (6) #define D7 (7) #define D8 (8) #define D9 (9) #define D10 (10) #define D11 (11) #define D12 (12) #define D13 (13) static const uint8_t A0 = PIN_A0 ; static const uint8_t A1 = PIN_A1 ; static const uint8_t A2 = PIN_A2 ; static const uint8_t A3 = PIN_A3 ; static const uint8_t A4 = PIN_A4 ; static const uint8_t A5 = PIN_A5 ; #define ADC_RESOLUTION 14 #define PIN_NFC1 (31) #define PIN_NFC2 (2) #define PIN_SERIAL_RX (0) #define PIN_SERIAL_TX (1) /* * SPI Interfaces */ #define SPI_INTERFACES_COUNT 1 #define PIN_SPI_MISO (22) //24 original #define PIN_SPI_MOSI (23) //25 original #define PIN_SPI_SCK (24) //26 original static const uint8_t SS = (13); static const uint8_t MOSI = PIN_SPI_MOSI; static const uint8_t MISO = PIN_SPI_MISO; static const uint8_t SCK = PIN_SPI_SCK; /* * Wire Interfaces */ #define WIRE_INTERFACES_COUNT 1 #define PIN_WIRE_SDA (20) #define PIN_WIRE_SCL (21) // QSPI Pins #define PIN_QSPI_SCK 22 #define PIN_QSPI_CS 23 #define PIN_QSPI_IO0 24 #define PIN_QSPI_IO1 25 #define PIN_QSPI_IO2 26 #define PIN_QSPI_IO3 27 // On-board QSPI Flash #define EXTERNAL_FLASH_DEVICES GD25Q16C #define EXTERNAL_FLASH_USE_QSPI #ifdef __cplusplus } #endif /*---------------------------------------------------------------------------- * Arduino objects - C++ only *----------------------------------------------------------------------------*/ #endif

O projeto NRF52840_DK criado é um projeto vazio. Adicione o código piscando do LED no src/main.cpp para perceber o piscar do LED.

#include <Arduino.h> void setup() { // write your initialization code here pinMode(LED_BUILTIN, OUTPUT); // set LED pin as output mode (P0.31) IO20 Serial.begin(115200); // set Serial baudrate to 115200 bps } void loop() { // write your code here digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(100); // wait for 100 millisecond digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(100); // wait for 100 millisecond Serial.print("hello world!\r\n"); }










Passo 2 Construir projeto NRF52840_DK
Depois de adicionar o código piscando LED na principal.cpp e salvá-lo, clique no ícone de construção de martelo pequeno para compilar o projeto 


Passo 3 Download
Vincule o cabo Mini USB à placa de desenvolvimento, clique no botão de download na barra de ferramentas e, em seguida, o programa pode ser baixado 


Depois que o download estiver concluído, você pode ver que o LED verde começa a piscar, o IDE integra um terminal portuário serial, abre o terminal portuário serial, conecta-se à porta serial, você pode ver a mensagem "Hello world"




Passo 4 Debug 
O RT-Thread Studio suporta simulação on-line. Clique no botão depuração na barra de ferramentas para entrar na interface de depuração. A simulação de depuração suporta operações de depuração em etapa única, suspensão e outras operações de depuração  



Testes

Foi realizada a conexão dos pinos IO22 e IO23 no emulador de erminal 



Questões: suporte@smartcore.com.br

Outras referências

NINA-B3 data sheet (u-blox.com)

NINA-B3 system integration manual (u-blox.com)

Light up your LED in 30 seconds with NUCLEO-F411RE and IDE RT-Thread Studio

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.

Mais detalhes em www.smartcore.com.br 

domingo, 31 de outubro de 2021

NINA B302 sendo programado via SEGGER STUDIO (Serial to BLE - NUS)

NINA B302 sendo programado via SEGGER STUDIO (Serial to BLE - NUS)

O objetivo deste BLOG é demonstrar de forma resumida como é possível fazer com que o módulo NINA B302 possa se programado na plataforma Visual Segger Studio;

Atualmente tem-se utilizado muito o SEGGER STUDIO, tenha em mãos os seu gravador SEGGER J-LINK.


Caso estejas utilzando o EVK, o mesmo já vem com o gravador J-LINK EMBARCADO.

Prefácio

Um Ambiente de Desenvolvimento Integrado (IDE) é um aplicativo de software que fornece um ambiente de programação para agilizar o desenvolvimento e depuração de software. Em vez de realizar todas as etapas necessárias para fazer um programa executável ou gerar um firmware binário como tarefas individuais não relacionadas, os IDEs trazem todas as ferramentas necessárias para um aplicativo e espaço de trabalho. Cada uma das ferramentas tem consciência do ambiente e funcionam em harmonia para fornecer uma experiência de desenvolvedor muito boa fora da caixa, tanto para desenvolvedores novatos quanto para os experientes.

Mundo sem IDEs

Sem IDEs, os desenvolvedores precisam usar um editor, compilador e vinculador instalado em sua máquina de desenvolvimento para criar arquivos de código, compilá-los e vinculá-los. Isso às vezes pode ser opressor para novos desenvolvedores que primeiro precisam instalar e configurar todos os conjuntos de ferramentas necessários e manter uma guia de vários comandos para gerar os binários executáveis ​​para atualizar os dispositivos, especialmente no mundo do desenvolvimento de sistemas embarcados.

Segger Studio

Segger Embedded Studio (SES)  : Completamente livre de licença, sem limitações de tamanho de código, sem restrições de qualquer natureza. SEGGER e Nordic Semiconductor assinaram um  acordo no final de 2017 que autoriza os desenvolvedores a usar o Embedded Studio com chips nRF5x nórdicos para usos comerciais e não comerciais. O SDK nRF5 já contém exemplos prontos desenvolvidos em SES. Embedded Studio é uma solução multifuncional completa para gerenciar, construir, testar e implantar aplicativos integrados. Ele oferece suporte a tudo, desde um poderoso gerenciador de projetos e editor de código-fonte, incluindo compiladores C/C ++ baseados em GCC, bem como CLANG/LLVM e um depurador integrado com janelas de informações de depuração avançadas e integração J-Link direta, até recursos de controle de versão para implantação automática de aplicativo acabado. O SES é compatível com Windows, Linux e OSX.

Escolhendo SDK

O nRF5 SDK contém uma ampla seleção de drivers, bibliotecas, arquivos de definição de placa, pilhas de protocolo de comunicação, como  SoftDevices  para BLE e um grande conjunto de exemplos para dispositivos Nordic Semiconductor e placas de desenvolvimento. O SDK deve ser baixado, pois será a base para o desenvolvimento do seu firmware direcionado aos dispositivos nRF5.

A escolha da versão do SDK dependerá fortemente da placa de desenvolvimento que você está usando. Lembre-se de que nem sempre será o mais recente. A versão mais recente do SDK nRF5 no momento em que este post foi escrito é a v15.0.0. 

Explorando o SDK nRF5

Depois de identificar a versão correta do SDK que combina com sua placa de desenvolvimento ou dispositivo (Explicado na etapa anterior), siga as etapas a seguir para obter uma visão resumida do que vem no SDK.
1. Baixe o arquivo .zip da versão adequada do SDK aqui no  site

nRF5 SDK v15.0.0 Download
Download SDK v15.0.0 for nRF52 series
Na captura de tela acima, estamos assumindo um desenvolvimento voltado para os chips da série nRF52, como os hospedados nas placas de desenvolvimento nRF52840-DK ou nRF52-DK.
2. Crie uma pasta chamada  nordic_semi  em seu disco local (é preferível colocá-la o mais próximo possível do diretório raiz e evitar caminhos que contenham espaços em branco).
Extract_nRF5SDK
Extract the archived file of the nRF5 SDK locally.
3. Depois que a extração for concluída, navegue dentro do SDK:
SDK_top_level
nRF5 SDK v 15.0.0 Top Level Directory Content
Os diretórios contêm o seguinte:
A.  components  : esta é a pasta principal dentro do SKD. Ele contém APIs de protocolos de comunicação (IEEE 802.15.4, ANT, BLE, etc.), arquivos de definição de placas, camada de abstração de drivers, um grande conjunto de bibliotecas muito poderosas (56), arquivos binários de softdevices e arquivos de configuração de conjuntos de ferramentas.

components directory inside the nRF5 SDK
B.  config  : Esta pasta contém um  arquivo sdk_config.h genérico  que tem todas as opções de configuração estática disponíveis para cada dispositivo compatível (para o nRF5 v 15.0.0 é apenas a série nRF52). Ele também contém um genérico arquivos vinculador para Studio Segger incorporado  flash_placement.xml  e ARM GCC  generic_gcc_nrf52.ld  . Esses arquivos de vinculador contêm informações sobre as seções de memória presentes nos SoCs suportados.

config directory inside the nRF5 SDK


Snapshot of the content of sdk_config and flash_placement
O arquivo de cabeçalho de configuração do SDK  sdk_config.h  ajuda a gerenciar a configuração estática de um firmware que é construído em cima do SDK nRF5. Todos os projetos devem conter um    arquivo sdk_config.h no qual apenas os módulos usados ​​estão habilitados. O arquivo de configuração consiste na parte de configuração dos módulos SDK, que é comum para todos os projetos, e uma seção de configuração específica do aplicativo.
C.  documentação  : como o nome sugere, os links de documentação do SDK são colocados aqui. O local mais recomendado para documentação quando se trata de chips nRF5x nórdicos é o centro de informações Nordic Semi  http://infocenter.nordicsemi.com/  . O que você tem neste diretório é apenas um link para ele.

nRF5 SDK documentation directory
D.  exemplos  : Pronto para implantação, um rico conjunto de exemplos bem escritos.

nRF5 SDK examples directory
Os exemplos abrangem muitos tópicos:
  • Exemplos de redes de área pessoal sem fio IEEE 802.15.4 LR-WPAN .
  • Exemplos ANT (protocolo sem fio propiciatório de curto alcance).
  • Exemplos de Bluetooth de baixa energia (função central, função periférica, ambas e DFU).
  • Exemplos criptográficos.
  • Exemplos de atualização de firmware de dispositivo (DFU).
  • Exemplos do modo de teste direto (DTM).
  • Exemplos de Internet das coisas (IoT).
  • Exemplos de protocolos proprietários nórdicos (Gazell, Enhanced ShockBurst)
  • Exemplos de Near Field Communication (NFC).
  • Exemplos de periféricos de hardware (UART, I2C, Timers, PWM, etc.)
Nem todos os exemplos estão disponíveis para todos os kits de desenvolvimento. Abra o arquivo leia-me dentro do diretório de exemplos e veja quais exemplos são suportados por quais placas.

nRF5 SDK examples compatibility matrix
Uma observação importante a lembrar sobre os exemplos nRF5 SDK, cada pasta de exemplo tem várias subpastas separadas, que são para as diferentes placas de desenvolvimento com suporte. Veja a imagem abaixo como um exemplo

UART hardware peripheral example directory layout
Dentro de cada diretório de projeto de placa (ex: pca10056), você encontrará subdiretórios de projeto para os IDEs suportados.
E.  external  : arquivos de código-fonte para bibliotecas de terceiros, pilhas de protocolo e utilitários (Lwip, FatFs, cJson, etc ...)

nRF5 SDK external directory
E.  external_tools  : O CMSIS Configuration Wizard é enviado aqui. O Assistente de configuração fornece um método amigável para ativar / desativar módulos (bibliotecas, drivers, dispositivos de software, recursos) do arquivo de configuração do SDK  sdk_config.h sem a necessidade de fazer isso manualmente. Você precisa ter o Java instalado em sua máquina para usar o Assistente de configuração CMSIS.

CMSIS Configuration Wizard available in the external_tools subdirectory of the SDK


CMSIS Configuration Wizard

Instalaçao Segger Studio

Estas são as etapas necessárias para baixar, instalar, configurar, licenciar e testar o SEGGER Embedded Studio para dispositivos Nordic nRF5x e placas de desenvolvimento. SEGGER Embedded Studio (SES) é um poderoso ambiente de desenvolvimento integrado C/C ++ completo para microcontroladores e microprocessadores ARM e Cortex. Ele vem com conjuntos de ferramentas GCC e Clang / LLVM (compiladores cruzados C/C ++, linkers, montadores, utilitários de imagem, etc.) e bibliotecas padrão C/C ++ que foram especificamente adaptadas para sistemas embarcados. O SES é multiplataforma e roda em Windows, Mac OS e Linux. As duas principais vantagens de escolher SES em vez de outros IDEs padrão, como Keil e IAR, é que a SEGGER e a Nordic Semiconductor assinaram um  acordo no final de 2017, que dá aos desenvolvedores o direito de usar o Segger Embedded Studio com chips Nordic nRF5x para usos comerciais e não comerciais gratuitamente. A segunda razão é que todos os exemplos do Nordic nRF5 SDK têm suporte a projetos SES, o que simplifica significativamente o processo de configuração, prototipagem e teste do projeto. 

SEGGER Embedded Studio Logo

Configurando as ferramentas

1. Baixe Nordic nRF5 SDK  :  selecionar a versão de SDK certa para seu dispositivo ou kit de desenvolvimento. Neste laboratório, estamos assumindo que a placa de desenvolvimento nRF52840-DK (ID da placa: PCA10056) está sendo usada.
a. Baixe o arquivo .zip da versão adequada do SDK aqui no  site (nRF5 SDK downloads - nordicsemi.com )


Download SDK v15.0.0 for nRF52 series
b.Crie uma pasta chamada  nordic_semi  em seu disco local (é preferível colocá-la o mais próximo possível do diretório raiz e evite caminhos que contenham espaços em branco) e extraia o arquivo .zip-archive.

Extract the archived file of the nRF5 SDK locally.
Com isso, o nRF5 SDK foi baixado e está pronto para ser usado pelo Seeger Embedded Studio.
2. Baixe o Segger Embedded Studio (SES):  Vá para  https://www.segger.com/  e, no  menu Downloads,   escolha  Embedded Studio  conforme mostrado na captura de tela abaixo.

Download Segger Embedded Studio
Na página Downloads do Embedded Studio, selecione Embedded Studio para ARM e, em seguida, selecione o download adequado ao seu sistema operacional. SES é compatível com Windows, macOS e Linux. (O exemplo aqui assume uma máquina Windows)

Select Embedded Studio for ARM
3.Instale o Segger Embedded Studio (SES): Assim  que o download for concluído, execute o arquivo do instalador como administrador e siga as etapas básicas de instalação, conforme mostrado nas capturas de tela abaixo.

Run SES installer as admin

SES Install – Welcome Page

SES Install – License Agreement
Selecione seu caminho de instalação preferido ou deixe as opções padrão como estão

SES Install – Select Installation Path

SES Install – Files association
Certifique-se de  instalar o driver de dispositivo J-Link  para poder programar as placas de desenvolvimento.

SES Install – J-Link device driver

SES Install – Ready to install window
A instalação começará. Demorará alguns minutos para terminar. Assim que a instalação for concluída, a seguinte janela aparecerá. Certifique-se de que a opção Iniciar SEGGER Embedded Studio para ARM x.xxx esteja marcada e clique em Avançar.

SES Install – Start SES window
O Segger Embedded Studio será aberto com um exemplo de programa hello world.  Deixe o programa aberto,  pois na próxima etapa solicitaremos a licença gratuita para placas e dispositivos de desenvolvimento Nordic Semiconductor.
4.Licença Segger Embedded Studio (SES) para dispositivos nórdicos:  SEGGER e Nordic Semiconductor assinaram um  acordo  no final de 2017 que autoriza os desenvolvedores a usarem Segger Embedded Studio com chips nRF5x nórdicos para usos comerciais e não comerciais gratuitamente.
a. No SES, clique com o botão direito na  solução 'Hello'  e selecione  Build.

SES Build Project
b. Uma mensagem indicando que nenhuma licença comercial foi encontrada aparecerá. Clique em Activate Your Free License  como mostrado na imagem abaixo.

Activate your free license
c. A janela de solicitação de licença será exibida a seguir. Você precisa inserir seu nome, sobrenome, nome da empresa e um endereço de e-mail válido, pois a licença será enviada a você por e-mail como texto (chave de ativação). A janela de solicitação de licença vinculará automaticamente a licença ao endereço MAC de sua máquina.

Request License Window
d. A mensagem de confirmação de ativação é exibida indicando que a chave de ativação foi enviada para o e-mail especificado.

Enter Activation Key Window
e. Agora você deve verificar seu e-mail para obter a chave de ativação, que é uma sequência de texto que você precisa copiar e colar na caixa de ativação e, em seguida, clicar em  Instalar licença .

Install License Window
O processo de construção começará e agora você tem um SES licenciado para dispositivos Nordic Semiconductor.
5. Instale o pacote de suporte de CPU nRF:  Os pacotes de suporte de CPU nRF incluem todos os arquivos de suporte necessários para criar um novo projeto completo do zero. Inclui arquivos de inicialização, mapas de memória, inicialização da CPU, etc…. Para instalar o Pacote de Suporte para os dispositivos Nordic Semiconductor no SES, selecione Ferramentas> Gerenciador de Pacotes ...

Access Package Manager
A verificação de atualização do Gerenciador de pacotes aparecerá, clique em  Sim  para baixar os pacotes mais recentes.

Segger Package Manager – Check for Updates
Após o término do download, digite  Nordic  na barra de pesquisa do Gerenciador de Pacotes.

Search for nRF CPU Support Package
Clique com o botão direito do mouse em  nRF CPU Support Package  , selecione  Install Selected Packages  e clique em  Next.

Install nRF CPU Support Package
Clique   em Avançar na   janela Resumo . Em seguida, clique em  Concluir  quando a instalação for concluída.

Support Package Installation Summary Window
6. Configure o CMSIS Configuration Wizard no SES:  O CMSIS Configuration Wizard é um pequeno utilitário desenvolvido em Java que simplifica o processo de ativação e desativação de módulos no arquivo de configuração SDK  sdk_config.h . Para usar este utilitário com o SES, você precisa registrá-lo como uma ferramenta externa. Para fazer isso, abra o SES, clique em  Arquivo >  Abrir pasta do Studio >  Configuração de ferramentas externas  .

External Tools Configuration

Com isso, o SES está configurado e pronto para ser usado para desenvolver firmware para os dispositivos nRF5x Nordic Semiconductor e placas de desenvolvimento. No próximo parágrafo, iniciaremos nosso primeiro programa em SES. O parágrafo a seguir mostra as etapas necessárias para executar os exemplos oferecidos nos próximos laboratórios.
Exemplo Serial para BLE
Abra o arquivo SES que se encontrar em
C:\SDK16\examples\ble_peripheral\ble_app_uart\pca10056\s140\ses

Para compatibilizar a aplicação com o pinos utilizados para TXD e RXD no U-BLOX NINA B302, serão necessárias algumas alterações.

/**@brief Function for initializing the UART module. */ /**@snippet [UART Initialization] */ static void uart_init(void) { uint32_t err_code; app_uart_comm_params_t const comm_params = { .rx_pin_no = RX_PIN_NUMBER, .tx_pin_no = TX_PIN_NUMBER, .rts_pin_no = RTS_PIN_NUMBER, .cts_pin_no = CTS_PIN_NUMBER, .flow_control = APP_UART_FLOW_CONTROL_DISABLED, .use_parity = false, #if defined (UART_PRESENT) .baud_rate = NRF_UART_BAUDRATE_115200 #else .baud_rate = NRF_UARTE_BAUDRATE_115200 #endif };









NINA-B3 system integration manual (u-blox.com)

Parte 2.2 (Open CPU), sobre CUSTOM_BOARD até 2.2.1.4

#define RX_PIN_NUMBER NRF_GPIO_PIN_MAP(0,29)
#define TX_PIN_NUMBER NRF_GPIO_PIN_MAP(1,13)

Compilando e Debugando e Gravando



Terminal Burro em TXD e RXD e BLE FRUIT

Testes

Foi realizada a conexão dos pinos IO22 e IO23 no emulador de erminal 










Pareado

Testes efetuados também com Celular antigo






Questões: suporte@smartcore.com.br

Outras referências

NINA-B3 data sheet (u-blox.com)

NINA-B3 system integration manual (u-blox.com)

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.

Mais detalhes em www.smartcore.com.br