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 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 the archived file of the nRF5 SDK locally.
3. Depois que a extração for concluída, navegue dentro do SDK:
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.
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)
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.