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

Nenhum comentário:

Postar um comentário