Что такое чип 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.

Помимо вышеупомянутых выводов, nRF51822 также имеет два вывода сброса, два вывода Chip Enable, два вывода VTREF, четыре вывода питания и несколько других выводов. Выводы сброса используются для сброса устройства, выводы Chip Enable — для активации устройства, а выводы VTREF — для аналогового опорного напряжения.
Как запрограммировать NRF51822?
Программирование NRF51822 ble — это немного сложная задача, ниже приведены шаги.
Среда разработки и использование GPIO
Шаг 1. Инструменты разработки
Требуются следующие инструменты:


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

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

Шаг 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);
}
}
После написания вышеуказанных кодов вы обнаружите ошибку компиляции, поскольку путь к файлу заголовка не найден. Поэтому мы должны импортировать путь к файлу заголовка, как показано ниже:

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

Шаг 4. Загрузите программу
Подключите плату разработчика и ПК с помощью программного обеспечения J-Link и откройте nRFgo Studio.
- Нажмите «Программирование nRF5x»;
- Нажмите «Erase all» (Стереть все), чтобы очистить память;
- Выберите файл hex;
- Запрограммируйте nRF5x и загрузите.

Применение nRF51822
- Приложение Bluetooth Smart;
- Аксессуары для мобильных телефонов;
- Компьютерная периферия;
- Умная бытовая техника: датчики для фитнеса и здравоохранения;
- Контроллеры для электронных игр;
- Системы подхода и оповещения о безопасности;
- Управление и сбор данных для дома/промышленности;
- Интеллектуальное отслеживание по радиочастотам и социальное взаимодействие;
- Пульты дистанционного управления для телевизоров, приставок и мультимедийных систем;
NRF51822 против NRF51802
Кроме того, для чипа NRF51802 той же серии, что и NRF51822, объем FLASH RAM этих двух чипов одинаков. Разница заключается в небольших различиях в чувствительности, энергопотреблении, токе в режиме ожидания и времени внутреннего пробуждения. Комплексные данные, отображаемые 51822, лучше. Обычно эти две модели взаимозаменяемы.
В настоящее время наша компания осуществила обратный анализ, дешифрование и оптимизацию анализа чипов Bluetooth NRF51822 и NRF51802.




