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

Как найти свободный канал для nRF24L01+?

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

У nRF24L01+ нет полноценного RSSI, но есть однобитный детектор уровня RPD: он показывает, есть ли в канале сигнал сильнее −64 дБм. Этого достаточно, чтобы построить простой сканер эфира и найти канал, где модуль не будет конкурировать с Wi-Fi, Bluetooth и соседними сетями. Параметры модуля — в карточке nRF24L01+.

Как работает сканер

  1. Перевести модуль в приём (PRIM_RX = 1), CE = 0.
  2. Записать номер канала в RF_CH — частота F = 2400 + RF_CH МГц.
  3. Поднять CE и подождать не меньше 130 + 40 = 170 мкс: столько по спецификации нужно, чтобы RPD стал достоверным.
  4. Прочитать бит 0 регистра 09 (RPD), опустить CE.
  5. Повторить для каналов 0–125 и прогнать весь цикл сотни раз, считая срабатывания на каждом канале.
RF_CHЧастотаЧто обычно мешает
0–12400–2401 МГцниже полосы, которую занимает Wi-Fi
2–942402–2494 МГцполоса, которую могут занимать каналы Wi-Fi
95–1252495–2525 МГцвыше Wi-Fi, но смотрите местные правила

Частоты в таблице — наш расчёт. По даташиту ESP32 2412–2484 МГц — это диапазон центральных частот каналов Wi-Fi, а по руководству ESP-IDF канал занимает 20 или 40 МГц. Поэтому даже первый канал Wi-Fi с центром 2412 МГц покрывает примерно 2402–2422 МГц, а занятая сетями полоса шире диапазона центров на 10 МГц с каждой стороны (при 40 МГц — ещё шире).

Что учесть

При скорости 2 Мбит/с канал шире 1 МГц, и соседние сети разносят минимум на 2 МГц (термин «Шаг каналов»). RPD — не измеритель уровня, а детектор порога; об измерении уровня — в термине «RSSI». Если связь плохая даже на чистом канале, причины чаще в питании и антенне — ответ «Почему nRF24L01+ работает только на коротком расстоянии». Сравнение радиомодулей по дальности и диапазонам — в обзоре беспроводных интерфейсов.

Похожие вопросы

Почему RPD срабатывает на всех каналах сразу?

Обычно рядом мощный передатчик: роутер, свой второй модуль nRF24 или ESP32, который передаёт по Wi-Fi. Порог −64 дБм довольно высокий, но в нескольких сантиметрах от антенны соседнего устройства его легко превысить. Сканер для поиска чистого канала ставят там, где будет работать приёмник.

Можно ли по RPD измерить уровень сигнала?

Нет, RPD — однобитный детектор: он сообщает только, выше уровень −64 дБм или ниже, и порог к тому же уходит на ±5 дБ с температурой. Для оценки уровня в дБм нужен приёмник с настоящим RSSI или анализатор спектра.

Можно ли использовать каналы выше 2483,5 МГц?

Микросхема по спецификации настраивается до 2525 МГц, но какие каналы разрешены, определяют правила радиочастот в стране, где работает устройство. Для изделия выбирают каналы внутри разрешённой полосы.

Источники

  1. Nordic Semiconductor. nRF24L01+ Product Specification v1.0 (September 2008) — разд. 6.3: F0 = 2400 + RF_CH МГц, шаг 1 МГц, диапазон 2,400–2,525 ГГц, полоса канала меньше 1 МГц при 250 кбит/с и 1 Мбит/с и меньше 2 МГц при 2 Мбит/с, при 2 Мбит/с каналы разносят на 2 МГц и больше; разд. 6.4: детектор RPD (регистр 09, бит 0) срабатывает при уровне в канале выше −64 дБм, читается в режиме приёма, достоверен через Tstby2a + Tdelay_AGC = 130 + 40 мкс после включения приёма, при приёме пакета защёлкивается уровень собственного передатчика; порог −5 дБ при −40 °C и +5 дБ при 85 °C; разд. 6.1.4: сигнал должен присутствовать в канале не меньше 40 мкс; регистр 05 RF_CH — биты 6:0, после сброса 2
  2. Espressif Systems. ESP32 Series Datasheet, Version 5.3 — табл. 5-6: рабочий диапазон частот Wi-Fi 2412–2484 МГц — центральные частоты каналов (пример соседнего источника помех в полосе 2,4 ГГц)
  3. Espressif Systems. ESP-IDF v6.1 Programming Guide, Wi-Fi Driver — Overview (docs/en/api-guides/wifi-driver/overview.rst) — разд. Wi-Fi Bandwidth Mode: поддерживаются полосы 20 и 40 МГц — HT20 и HT40 (40 МГц только в 802.11n)

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