Перейти к содержанию

nRF24L01+ — радиотрансивер Nordic на 2,4 ГГц с интерфейсом SPI

nRF24L01+ — радиотрансивер Nordic Semiconductor, на котором собраны самые распространённые недорогие радиомодули для Arduino: готовый протокол с подтверждением и повтором пакетов, ток в единицы микроампер во сне и интерфейс SPI. Разбираем по спецификации Nordic питание и уровни, токи в режимах, скорости и каналы, протокол Enhanced ShockBurst и ограничения, о которых чаще всего забывают.

Обновлено Редакция GAW

nRF24L01+ (Nordic Semiconductor, Норвегия) — однокристальный приёмопередатчик для диапазона 2,4 ГГц с частотной модуляцией GFSK. Микроконтроллер управляет им по SPI и выводу CE, а протокол канального уровня — адресация, контрольная сумма, подтверждение и повтор пакетов — выполняется в самой микросхеме (Nordic называет его Enhanced ShockBurst). Готовые модули с печатной антенной или разъёмом под внешнюю антенну выпускают сторонние производители; их назначение выводов нужно сверять по документации модуля, а ниже — данные самой микросхемы.

Коротко

  • Радио — 2400–2525 МГц, шаг 1 МГц; 250 кбит/с, 1 и 2 Мбит/с; мощность до 0 дБм; чувствительность до −94 дБм.
  • Питание — 1,9–3,6 В; входы до 5,25 В при питании 2,7–3,3 В.
  • Ток — передача 11,3 мА (0 дБм), приём 13,5 мА (2 Мбит/с), ожидание 26 мкА, выключение 900 нА.
  • Протокол — пакеты до 32 байт, 6 каналов приёма, CRC, подтверждение и до 15 повторов.
  • Корпус — QFN-20 4 × 4 мм; кварц 16 МГц ±60 ppm; SPI до 10 Мбит/с.

Выводы микросхемы

Вывод QFN-20ОбозначениеНазначение
1CEвключение приёма или передачи
2CSNвыбор SPI, активный низкий
3, 4, 5SCK, MOSI, MISOSPI; MISO в третьем состоянии, пока CSN высокий
6IRQпрерывание, активный низкий, источники маскируются
7, 15, 18VDDпитание 1,9–3,6 В
8, 14, 17, 20VSSобщий провод
9, 10XC2, XC1кварц 16 МГц
11VDD_PAвыход питания усилителя мощности около 1,8 В — к цепи антенны
12, 13ANT1, ANT2выход к согласующей цепи антенны
16IREFрезистор 22 кОм на землю
19DVDDвыход внутреннего питания цифровой части — только для развязки

Питание и уровни

ПараметрЗначение
Питание VDD1,9–3,6 В (3,0 В тип.), предел 3,6 В
Питание при входных сигналах выше 3,6 В2,7–3,3 В
Единица и ноль на входеот 0,7 · VDD (до 5,25 В) и до 0,3 · VDD
Выходединица от VDD − 0,3 В, ноль до 0,3 В при 0,25 мА
Время нарастания питаниядо 100 мс (от 0 до 1,9 В)
Сброс при включении1–100 мс после достижения 1,9 В

Наш вывод для модулей с Arduino: питать трансивер только от 3,3 В, а не от 5 В; управлять им 5-вольтовыми сигналами можно, но выход MISO даст около 3 В — для части 5-вольтовых микроконтроллеров это пограничный уровень. Стабилизатор 3,3 В должен выдержать броски тока при переключении режимов.

Токи по режимам

РежимТок (VDD = 3 В)
Выключение (Power Down)900 нА
Ожидание Standby-I26 мкА (кварц с нагрузкой 12 пФ)
Ожидание Standby-II320 мкА
Запуск кварца, в среднем за 1,5 мс400 мкА
Передача 0 / −6 / −12 / −18 дБм11,3 / 9,0 / 7,5 / 7,0 мА
Приём 2 Мбит/с / 1 Мбит/с / 250 кбит/с13,5 / 13,1 / 12,6 мА (на странице изделия для 2 Мбит/с — 13,3 мА)
Переход в передачу или приём (130 мкс)8,0 и 8,9 мА в среднем

Пример Nordic: при −6 дБм и средних 10 кбит/с пакетами максимальной длины средний ток передатчика — 0,12 мА. Это и есть смысл режима: передавать быстро и короткими пакетами, а остальное время спать.

Скорость, каналы, чувствительность

Скорость в эфиреЧувствительность (0,1 % ошибок)Ширина каналаРазнос соседних сетей
2 Мбит/с−82 дБмменьше 2 МГцот 2 МГц
1 Мбит/с−85 дБмменьше 1 МГцот 1 МГц
250 кбит/с−94 дБмменьше 1 МГцот 1 МГц

Частота канала — F = 2400 + RF_CH МГц; передатчик и приёмник настраивают на один канал и одну скорость. Меньшая скорость даёт лучшую чувствительность, большая — меньше средний ток и меньше вероятность столкновения пакетов в эфире. Совместимость со старыми nRF2401A, nRF2402, nRF24E1, nRF24E2 есть только на 250 кбит/с и 1 Мбит/с; с nRF24L01 без «плюса» — полная. Детектор мощности RPD (регистр 09h) показывает, есть ли в канале сигнал сильнее −64 дБм, — по нему выбирают свободный канал.

Enhanced ShockBurst

  • Пакет — преамбула, адрес 3–5 байт, поле управления, данные 0–32 байта (длина фиксированная или динамическая), CRC.
  • Подтверждение и повтор. Передатчик ждёт пакета подтверждения; если его нет, повторяет пакет через 250–4000 мкс (шаг 250 мкс), до 15 раз. Счётчики потерянных пакетов — в регистре OBSERVE_TX.
  • Шесть каналов приёма (MultiCeiver): приёмник слушает шесть адресов сразу — сеть «звезда» на одного приёмника и шесть передатчиков. Каналы 1–5 различаются только младшим байтом адреса.
  • Буферы — FIFO на три пакета в каждую сторону; прерывание IRQ сообщает о приёме, успешной передаче и исчерпании повторов.

Тайминги

ПереходВремя
Выключение → ожидание (кварц, Ls до 30 мГн)до 1,5 мс
Выключение → ожидание (внешний такт)до 150 мкс
Ожидание → передача или приём130 мкс
Минимальный высокий уровень CE10 мкс
Непрерывная передачане дольше 4 мс

Типовая обвязка

По схеме из разд. 11 спецификации: кварц 16 МГц с нагрузкой 8–16 пФ (на схеме — конденсаторы 22 пФ и резистор 1 МОм), резистор 22 кОм на IREF, согласующая цепь из катушек и конденсаторов на ANT1, ANT2 и VDD_PA к антенне 50 Ом, развязка питания конденсаторами 33 нФ, 1 нФ и 10 нФ. Наш вывод: на готовом модуле всё это уже распаяно; для своей платы разводку цепи антенны лучше повторить по рекомендации Nordic один в один.

Аналоги

Nordic называет nRF24L01+ полностью совместимым с nRF24L01 по выводам и в эфире. Для сетей с маршрутизацией, Bluetooth или Wi-Fi нужны другие микросхемы — например, ESP32 со встроенным радио; сравнение способов беспроводной связи для микроконтроллеров выходит за рамки этой карточки. Готовые радиомодули собраны в разделе «Модули».

Частые вопросы

Можно ли подключить nRF24L01+ к Arduino на 5 В?

Питание — нет: предел VDD — 3,6 В, рабочий диапазон 1,9–3,6 В. Сигнальные входы допускают до 5,25 В, но только если сам nRF24L01+ питается от 2,7–3,3 В; так Nordic разрешает работу с 5-вольтовой логикой. Выход MISO при этом выдаёт уровень своего питания, около 3 В, — для 5-вольтового AVR это ниже гарантированного порога единицы 0,6 · VCC, хотя на практике часто работает (наш вывод).

Сколько каналов у nRF24L01+?

Частота канала F = 2400 + RF_CH МГц с шагом 1 МГц, и nRF24L01+ работает от 2400 до 2525 МГц — это 126 значений RF_CH. Какие из них можно использовать, определяют правила радиочастот в стране. На 2 Мбит/с сигнал занимает до 2 МГц, поэтому соседние сети разносят минимум на 2 МГц.

Какая дальность у nRF24L01+?

Nordic дальность не нормирует: она зависит от антенны, мощности и среды. По спецификации максимальная мощность — 0 дБм, а чувствительность — −82 дБм на 2 Мбит/с, −85 дБм на 1 Мбит/с и −94 дБм на 250 кбит/с. Наш вывод: переход с 2 Мбит/с на 250 кбит/с даёт 12 дБ запаса по линии — в свободном пространстве это примерно вчетверо большая дальность при прочих равных.

Почему nRF24L01+ нельзя долго держать в режиме передачи?

Спецификация требует не держать микросхему в режиме TX больше 4 мс подряд. При включённом Enhanced ShockBurst это соблюдается автоматически: после каждого пакета микросхема сама выходит из передачи. Если же управлять передачей вручную, выводом CE, длинный высокий уровень нарушает это условие.

Источники

  1. Nordic Semiconductor. nRF24L01+ Single Chip 2.4GHz Transceiver, Product Specification v1.0 (September 2008) — архивная копия официального файла (Wayback, февраль 2019); с. 1 — основные характеристики; разд. 2 — выводы QFN20; разд. 3 — предельные режимы (VDD до 3,6 В, входы до 5,25 В); разд. 4 — рабочие условия (VDD 1,9–3,6 В, при входах выше 3,6 В — 2,7–3,3 В); табл. 4 — токи; табл. 5–7 — частоты 2400–2525 МГц, скорости, мощность, чувствительность −82/−85/−94 дБм; табл. 11 — кварц 16 МГц ±60 ppm; табл. 12–14 — уровни, сброс; разд. 6 — режимы, табл. 16 таймингов (130 мкс, 1,5 мс, CE не меньше 10 мкс), ограничение 4 мс в TX; разд. 6.3 — F = 2400 + RF_CH; табл. 17 — мощность; разд. 7 — Enhanced ShockBurst, полезная нагрузка до 32 байт, 6 каналов приёма, адрес 3–5 байт, повтор до 15 раз с задержкой 250–4000 мкс; разд. 8 — SPI до 10 Мбит/с; разд. 11 — типовая схема
  2. Nordic Semiconductor. nRF24L01+ Ultra low power 2.4GHz RF Transceiver IC — страница изделия (статус Active) — архивная копия страницы производителя (Wayback, март 2017): статус Active, питание 1,9–3,6 В, QFN-20 4 × 4 мм, 900 нА в глубоком сне, 11,3 мА передача на 0 дБм, приём на 2 Мбит/с — 13,3 мА (в спецификации — 13,5 мА), чувствительность −94/−85/−82 дБм, совместимость с nRF24L01 и сериями nRF24L, nRF24E

Нашли ошибку?