Что такое чип NRF51822 BLE?

nRF51822 — это мощный, гибкий, многопротокольный SoC, идеально подходящий для беспроводных приложений Bluetooth с низким энергопотреблением и 2,4 ГГц с ультранизким энергопотреблением. Он построен на базе 32-разрядного процессора ARM® Cortex™ M0 с 256 кБ флэш-памяти + 16 кБ ОЗУ. Встроенный приемопередатчик 2,4 ГГц поддерживает работу в режимах Bluetooth Low Energy и 2,4 ГГц, причем режим 2,4 ГГц совместим с продуктами семейства nRF24L компании Nordic Semiconductor.

Особенности NRF51822

  • Одночиповое, высокогибкое, многопротокольное устройство 2,4 ГГц;
  • 32-разрядное ядро процессора ARM Cortex M0;
  • 256 КБ флэш-памяти, 16 КБ ОЗУ;
  • Поддержка стека протоколов S110 Bluetooth Low Energy;
  • S110 требует 80 кБ памяти;
  • Безопасность потоков и защита во время выполнения;
  • API, управляемый событиями;
  • Беспроводная совместимость с серией nRF24L;
  • 3 скорости передачи данных (2 Мбит/с, 1 Мбит/с, 250 кбит/с);
  • Выходная мощность +4 дБм;
  • Чувствительность -92,5 дБм, Bluetooth с низким энергопотреблением;
  • Настраиваемое отображение входов/выходов для аналоговых и цифровых входов/выходов;
  • Система PPI для максимальной энергоэффективности приложений и упрощения кода;
  • Гибкая система управления энергопотреблением с автоматическим управлением энергопотреблением для каждого периферийного устройства;

Распиновка nRF51822

Распиновка nRF51822 состоит из 36 выводов, каждый из которых имеет определенную функцию. Выводы можно разделить на четыре основные категории: GPIO, ADC, I2C и PWM. Выводы GPIO могут использоваться для цифрового ввода-вывода и могут быть настроены как вход или выход. Контакты ADC могут использоваться для аналогового ввода, а контакты I2C и PWM — для связи и управления PWM.

83853322 c9d08e80 a71d 11ea 8fd2 7abbc8d507dd

Помимо вышеупомянутых выводов, nRF51822 также имеет два вывода сброса, два вывода Chip Enable, два вывода VTREF, четыре вывода питания и несколько других выводов. Выводы сброса используются для сброса устройства, выводы Chip Enable — для активации устройства, а выводы VTREF — для аналогового опорного напряжения.

Как запрограммировать NRF51822?

Программирование NRF51822 ble — это немного сложная задача, ниже приведены шаги.

Среда разработки и использование GPIO

Шаг 1. Инструменты разработки

MDK Microcontroller Development Kit
MDK Microcontroller Development Kit
v12.2.0 NRF51 SDK Development Kits
v12.2.0: комплекты разработки SDK NRF51

Шаг 2. Создание среды разработки

Создайте новую папку, где component — это распакованный файл сжатого пакета SDK. Внутри файла config находится файл sdk_config.h, который копируется из примеров в SDK. Users — это папка, в которой хранится проект MDK.

Create a new folder nRF51822 development

Откройте MDK и установщик пакетов. Затем найдите и выберите чип nRF51822, чтобы установить необходимые пакеты.

install packs for nRF51822 in MDK
Установка пакетов для nRF51822 в MDK

Как показано на рисунке, выберите файл CORE и файл Startup.

Select the CORE and Startup in software component for nRF51822
Выбор CORE и Startup в программных компонентах для nRF51822

Шаг 3. Написание программы GPIO

Подробное введение в GPIO находится в файле библиотеки nrf_gpio.h, а несколько основных функций перечислены ниже.

				
					//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);
				
			

Далее нам нужно определить расположение светодиода на выводе. Согласно схеме nRF51822, вывод P0.07 подключен к светодиоду.

				
					#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);
    
    
   }
}
				
			

После написания вышеуказанных кодов вы обнаружите ошибку компиляции, поскольку путь к файлу заголовка не найден. Поэтому мы должны импортировать путь к файлу заголовка, как показано ниже:

Setup compiler include paths
Настройка путей включения компилятора

Затем установите определение макроса, как показано ниже:

Setting macro definition for nRF51822 and compile
Настройка определений макросов для nRF51822 и компиляция

Шаг 4. Загрузите программу

Подключите плату разработчика и ПК с помощью программного обеспечения J-Link и откройте nRFgo Studio.

  • Нажмите «Программирование nRF5x»;
  • Нажмите «Erase all» (Стереть все), чтобы очистить память;
  • Выберите файл hex;
  • Запрограммируйте nRF5x и загрузите.
Executing nRF5x Programming in nRFgo Studio
Выполнение «nRF5x Programming» в nRFgo Studio

Применение nRF51822

  • Приложение Bluetooth Smart;
  • Аксессуары для мобильных телефонов;
  • Компьютерная периферия;
  • Умная бытовая техника: датчики для фитнеса и здравоохранения;
  • Контроллеры для электронных игр;
  • Системы подхода и оповещения о безопасности;
  • Управление и сбор данных для дома/промышленности;
  • Интеллектуальное отслеживание по радиочастотам и социальное взаимодействие;
  • Пульты дистанционного управления для телевизоров, приставок и мультимедийных систем;

Программирование nRF51822 и запуск платы BLE

Перед применением этих рекомендаций при проектировании платы, разработке прошивки, ремонте или проверке устройства уточните конструктивные детали, определяющие надёжность.

Проверка проектирования и диагностики

ОбластьЧто проверитьЗачем это важно
Доступ для программированияОбеспечьте доступ к SWDIO, SWCLK, сбросу, VDD и земле при стабильном целевом напряженииПлаты BLE трудно восстановить без доступа к отладке
Радиочастотная топологияПроверьте согласование антенны, зазор до земли, нагрузочные конденсаторы кварца и запретную областьПрошивка не может компенсировать неудачную радиочастотную топологию
Программный стекСогласуйте SoftDevice, версию SDK, загрузчик и карту памятиПроекты Nordic BLE зависят от совместимости стека и размещения во флеш-памяти

NRF51822 против NRF51802

Кроме того, для чипа NRF51802 той же серии, что и NRF51822, объем FLASH RAM этих двух чипов одинаков. Разница заключается в небольших различиях в чувствительности, энергопотреблении, токе в режиме ожидания и времени внутреннего пробуждения. Комплексные данные, отображаемые 51822, лучше. Обычно эти две модели взаимозаменяемы.

В настоящее время наша компания осуществила обратный анализ, дешифрование и оптимизацию анализа чипов Bluetooth NRF51822 и NRF51802.

Поделиться:

Прокрутить вверх

Instant Quote

Мгновенный расчет