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

Почему два модуля LoRa не видят друг друга?

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

Приёмник LoRa не подстраивается под передатчик: все параметры модема на обеих сторонах задаются заранее. Сигналы с разными SF ортогональны — приёмник, настроенный на SF7, воспринимает пакет на SF9 как шум (даташит SX1276, разд. 4.1.1.2; AN1200.22, разд. 4.1.7). Поэтому «молчание» двух модулей почти всегда означает расхождение в настройках.

Что должно совпадать

ПараметрПочему важен
Частотаприёмник слушает только свой канал; модуль должен быть на этот диапазон
SFразные SF ортогональны — чужой пакет выглядит как шум
Полоса BWот неё зависит длительность символа и скорость чипов
Кодовая скорость CRв неявном режиме заголовка задаётся на обеих сторонах
Режим заголовкав неявном режиме длина, CR и CRC заранее известны приёмнику
Длина преамбулыпо даташиту должна совпадать на приёмнике и передатчике
LowDataRateOptimizeобязателен при символе длиннее 16 мс; одинаков на обеих сторонах

Наш расчёт для бита LowDataRateOptimize: длительность символа Ts = 2SF/BW. При 125 кГц SF11 даёт 16,4 мс, SF12 — 32,8 мс: для них бит нужен, а SF10 (8,2 мс) — без него. Если включить бит только на одной стороне, пакет не разберётся.

Диапазон модуля

SX1278 работает от 137 до 525 МГц — для 433 МГц, но не для 868 МГц; SX1276 — до 1020 МГц (табл. 1). Модуль на SX1278, которому программа задала 868 МГц, не выйдет на эту частоту, и второй модуль на 868 МГц его не услышит. Кроме микросхемы, важна обвязка модуля: согласование и антенна рассчитаны на один диапазон — подробнее в статьях «Радиомодули 433 и 868 МГц» и «Антенны».

Порядок проверки

  1. Связь по SPI: регистры читаются и записываются.
  2. Одинаковые частота, SF, BW, CR, режим заголовка, преамбула, LowDataRateOptimize и CRC — удобнее всего задать их одной общей функцией в обеих прошивках.
  3. Антенны на нужный диапазон на обоих модулях.
  4. Проверка на малом расстоянии, затем — на рабочем.

Смысл каждого параметра и как он влияет на дальность и время в эфире — в статье «LoRa».

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

Как проверить, что модуль вообще отвечает по SPI?

Прочитать любой регистр с известным значением после сброса, например регистр версии, и сравнить с даташитом. Если читаются 0x00 или 0xFF, проблема не в радио, а в проводах SPI, выводе NSS, питании или сбросе — сначала исправьте её.

Модули настроены одинаково, но связь только на столе. Что ещё проверить?

Антенны: модуль без антенны или с антенной не на тот диапазон теряет большую часть бюджета линии. Затем питание: при +20 дБм SX1276 берёт в передаче 120 мА, а для этой мощности ему нужно не меньше 2,4 В.

Можно ли связать модуль LoRa с модулем FSK, например с CC1101?

Нет: LoRa — своя модуляция с расширением спектра, FSK-приёмник её не демодулирует. Зато SX1276 и SX1278 умеют и FSK, и OOK: в этом режиме они могут работать с FSK-трансивером, если совпадут частота, девиация, скорость и формат пакета (наш вывод).

Источники

  1. Semtech. SX1276/77/78/79 Datasheet, Rev. 5 (August 2016) — архивная копия официального файла; табл. 1: SX1276 — 137–1020 МГц, SX1278 — 137–525 МГц, SX1277 — SF 6–9; разд. 4.1.1.2: сигналы с разными SF ортогональны, SF6 — только с неявным заголовком; разд. 4.1.1.6: длина преамбулы на приёмнике и передатчике должна совпадать, в неявном режиме длина, CR и наличие CRC задаются на обеих сторонах заранее; LowDataRateOptimize обязателен при символе длиннее 16 мс; табл. 7: диапазон 1 — 862–1020 МГц, диапазон 2 — 410–525 МГц; разд. 1: модемы LoRa и FSK/OOK; табл. 6: передача 120 мА при +20 дБм; разд. 5.4.3: для +20 дБм питание 2,4–3,7 В
  2. Semtech. AN1200.22 LoRa Modulation Basics, Rev. 2 (May 2015) — архивная копия официального файла; разд. 4.1.7: ортогональность разных SF

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