O que é o chip NRF51822 BLE?

O nRF51822 é um SoC potente, flexível e multiprotocolo, ideal para aplicações sem fio Bluetooth de baixa energia e 2,4 GHz de energia ultrabaixa. Ele é construído em uma CPU ARM® Cortex™ M0 de 32 bits com 256 kB de flash + 16 kB de RAM. O transceptor de 2,4 GHz integrado suporta Bluetooth de baixa energia e operação de 2,4 GHz, sendo que o modo de 2,4 GHz é compatível sem fios com a família de produtos nRF24L da Nordic Semiconductor.

Características do NRF51822

  • Dispositivo multiprotocolo de 2,4 GHz, de alta flexibilidade e chip único;
  • Núcleo de CPU ARM Cortex M0 de 32 bits;
  • 256 KB de memória flash e 16 KB de RAM;
  • Suporta a pilha de protocolos Bluetooth Low Energy S110;
  • O S110 requer 80 kB de espaço de memória;
  • Segurança de thread e proteção de tempo de execução;
  • API orientada a eventos;
  • Compatível com a série nRF24L sem fios;
  • 3 taxas de dados (2 Mbps/1 Mbps/250 kbps);
  • Potência de saída de +4 dBm;
  • Sensibilidade de -92,5 dBm, Bluetooth de baixa energia;
  • Mapeamento de E/S configurável para E/S analógica e digital;
  • Sistema PPI para maximizar a eficiência energética das aplicações e simplificar o código;
  • Sistema de gerenciamento de energia flexível com gerenciamento automático de energia para cada produto periférico;

Pinagem do nRF51822

A pinagem do nRF51822 consiste em 36 pinos, e cada pino tem uma função específica. Os pinos podem ser divididos em quatro categorias principais: GPIO, ADC, I2C e PWM. Os pinos GPIO podem ser usados para E/S digital e podem ser configurados como entrada ou saída. Os pinos ADC podem ser usados para entrada analógica, e os pinos I2C e PWM podem ser usados para comunicação e controle PWM.

83853322 c9d08e80 a71d 11ea 8fd2 7abbc8d507dd

Além dos pinos mencionados acima, o nRF51822 também possui dois pinos de reinicialização, dois pinos Chip Enable, dois pinos VTREF, quatro pinos de alimentação e alguns outros pinos. Os pinos de reinicialização são usados para reinicializar o dispositivo, os pinos Chip Enable são usados para ativar o dispositivo e os pinos VTREF são usados para tensão de referência analógica.

Como programar o NRF51822?

Programar o NRF51822 ble é uma tarefa um pouco complexa. Abaixo estão os passos a seguir.

Ambiente de construção e uso de GPIO

Passo 1. Ferramentas de desenvolvimento

MDK Microcontroller Development Kit
MDK Microcontroller Development Kit
v12.2.0 NRF51 SDK Development Kits
v12.2.0: kits de desenvolvimento do SDK NRF51

Etapa 2. Criação do ambiente de desenvolvimento

Crie uma nova pasta, onde o componente é o arquivo descompactado do pacote compactado do SDK. Dentro do arquivo de configuração está o arquivo sdk_config.h, que é copiado dos exemplos no SDK. Users é a pasta onde o projeto MDK é armazenado.

Create a new folder nRF51822 development

Abra o MDK e o instalador do pacote. Em seguida, procure e selecione o chip nRF51822 para instalar os pacotes necessários.

install packs for nRF51822 in MDK
Instalar pacotes para nRF51822 no MDK

Conforme mostrado na figura, selecione o arquivo CORE e o arquivo Startup.

Select the CORE and Startup in software component for nRF51822
Selecionar CORE e Startup nos componentes de software para nRF51822

Passo 3. Escrevendo o programa GPIO

Há uma introdução detalhada ao GPIO no arquivo de biblioteca nrf_gpio.h, e várias funções principais estão listadas abaixo.

				
					//input Output
typedef enum
{
     NRF_GPIO_PIN_DIR_INPUT = GPIO_PIN_CNF_DIR_Input, ///< Input.
     NRF_GPIO_PIN_DIR_OUTPUT = GPIO_PIN_CNF_DIR_Output ///< Output.
} nrf_gpio_pin_dir_t;

// pull up and pull down
typedef enum
{
     NRF_GPIO_PIN_NOPULL = GPIO_PIN_CNF_PULL_Disabled, ///< Pin pull-up resistor disabled.
     NRF_GPIO_PIN_PULLDOWN = GPIO_PIN_CNF_PULL_Pulldown, ///< Pin pull-down resistor enabled.
     NRF_GPIO_PIN_PULLUP = GPIO_PIN_CNF_PULL_Pullup, ///< Pin pull-up resistor enabled.
} nrf_gpio_pin_pull_t;

//Input and output initialization configuration
void nrf_gpio_cfg_output(uint32_t pin_number);
void nrf_gpio_cfg_input(uint32_t pin_number, nrf_gpio_pin_pull_t pull_config);

//Output high and low/flip level
void nrf_gpio_pin_set(uint32_t pin_number);
void nrf_gpio_pin_clear(uint32_t pin_number);
void nrf_gpio_pin_toggle(uint32_t pin_number);

// read input and output levels
uint32_t nrf_gpio_pin_read(uint32_t pin_number);
uint32_t nrf_gpio_pin_out_read(uint32_t pin_number);
				
			

Em seguida, precisamos definir a localização do LED no pino. De acordo com o diagrama esquemático do nRF51822, o pino P0.07 está conectado ao LED.

				
					#include "nrf_delay.h"
#include "nrf_gpio.h"

#define LED 7

int main(){
  
   nrf_gpio_cfg_output(LED);
  
   nrf_gpio_pin_clear(LED); //Output low level
  
   while (1) {
    

      
     nrf_gpio_pin_toggle(LED); // flip level
    
     nrf_delay_ms(1000);
    
    
   }
}
				
			

Depois de escrever os códigos acima, você verá que há um erro de compilação porque o caminho do arquivo de cabeçalho não foi encontrado. Portanto, devemos importar o caminho do arquivo de cabeçalho, conforme mostrado abaixo:

Setup compiler include paths
Configurar os caminhos de inclusão do compilador

Em seguida, defina a macro, conforme mostrado abaixo:

Setting macro definition for nRF51822 and compile
Definir as macros para nRF51822 e compilar

Passo 4. Baixe o programa

Conecte a placa de desenvolvimento e o PC pelo método SW do J-Link e abra o nRFgo Studio.

  • Clique em nRF5x Programming;
  • Clique em Erase all (Apagar tudo) para limpar a memória;
  • Selecione o arquivo hex;
  • Programe o nRF5x e faça o download.
Executing nRF5x Programming in nRFgo Studio
Executar “nRF5x Programming” no nRFgo Studio

Aplicações do nRF51822

  • Aplicação Bluetooth Smart;
  • Acessórios para telemóveis;
  • Periféricos para computadores;
  • Eletrodomésticos inteligentes: sensores de fitness e saúde;
  • Controladores para jogos eletrônicos;
  • Sistemas de aproximação e alerta de segurança;
  • Controle doméstico/industrial e aquisição de dados;
  • Rastreamento RF inteligente e interação social;
  • Controles remotos para TVs, decodificadores e sistemas de mídia;

NRF51822 vs NRF51802

Além disso, para o chip NRF51802 da mesma série que o NRF51822, a capacidade da RAM FLASH desses dois chips é a mesma. A diferença é que existem pequenas diferenças na sensibilidade, consumo de energia, corrente em standby e tempo de ativação interna. Os dados abrangentes exibidos pelo 51822 são melhores. Normalmente, os dois modelos são intercambiáveis.

Atualmente, nossa empresa realizou a análise reversa, descriptografia e otimização da análise dos chips Bluetooth NRF51822 e NRF51802.

Verificações técnicas para programação do nRF51822 e inicialização de placas BLE

Antes de usar programação do nRF51822 e inicialização de placas BLE em PCB, firmware, reparo ou validação, confirme os detalhes que normalmente determinam se o projeto funciona de forma confiável.

Checklist de projeto e diagnóstico

ÁreaO que verificarPor que importa
Acesso à programaçãoDisponibilize SWDIO, SWCLK, reinicialização, VDD e terra com tensão estável no dispositivoPlacas BLE são difíceis de recuperar sem acesso de depuração
Layout de RFRevise o casamento da antena, o afastamento do terra, os capacitores de carga do cristal e a área de exclusãoO firmware não pode compensar um layout de RF ruim
Pilha de firmwareCompatibilize SoftDevice, versão do SDK, carregador de inicialização e organização da memóriaProjetos BLE da Nordic dependem de uma pilha compatível e do posicionamento na flash

Compartilhar em:

Rolar para cima

Instant Quote

Cotação instantânea