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 | Обозначение | Назначение |
|---|---|---|
| 1 | CE | включение приёма или передачи |
| 2 | CSN | выбор SPI, активный низкий |
| 3, 4, 5 | SCK, MOSI, MISO | SPI; MISO в третьем состоянии, пока CSN высокий |
| 6 | IRQ | прерывание, активный низкий, источники маскируются |
| 7, 15, 18 | VDD | питание 1,9–3,6 В |
| 8, 14, 17, 20 | VSS | общий провод |
| 9, 10 | XC2, XC1 | кварц 16 МГц |
| 11 | VDD_PA | выход питания усилителя мощности около 1,8 В — к цепи антенны |
| 12, 13 | ANT1, ANT2 | выход к согласующей цепи антенны |
| 16 | IREF | резистор 22 кОм на землю |
| 19 | DVDD | выход внутреннего питания цифровой части — только для развязки |
Питание и уровни
| Параметр | Значение |
|---|---|
| Питание VDD | 1,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-I | 26 мкА (кварц с нагрузкой 12 пФ) |
| Ожидание Standby-II | 320 мкА |
| Запуск кварца, в среднем за 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 мкс |
| Минимальный высокий уровень CE | 10 мкс |
| Непрерывная передача | не дольше 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, длинный высокий уровень нарушает это условие.
Источники
- 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 — типовая схема
- 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
Нашли ошибку?
Смотрите также
- Интерфейсные микросхемыРасширители портов, трансиверы, Ethernet, 4–20 мА: параметры, карточки
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- Чувствительность приёмникаНаименьший сигнал, который приёмник принимает с заданной ошибкой
- ДецибелдБ, дБм, дБВ: отношения и уровни сигнала
- CRCЦиклический избыточный код для обнаружения ошибок
- Вывод FT (5 V tolerant)Вход на 3,3 В, выдерживающий 5 В, и его условия
- FIFO (буфер «первым пришёл — первым ушёл»)Аппаратная очередь между периферией и программой
- МодулиWi-Fi и другие модули: выводы, питание, уровни, подключение
- Enhanced ShockBurstПакетный протокол nRF24L01+ с автоподтверждением и повторами
- Data pipe (MultiCeiver)Логический канал приёма nRF24L01+ со своим адресом
- Беспроводные технологииWi-Fi, BLE, 802.15.4, nRF24, 433/868 МГц, LoRa: таблица параметров по даташитам
- Бюджет радиолиниидБм, дБи, ЭИИМ, потери в свободном пространстве, Фриис, чувствительность, запас, примеры
- Антенны для радиомодулейλ/4 и земля, PCB IFA, чип и спираль, КСВ, П-цепь, зона без меди, КПД по замерам