Обзор
- SX1276-это модем LORA, который может отправлять и получать данные на большем расстоянии (километры) в эндори.
- Этот репо должен помочь начинающему научиться управлять чипом SX1276 (выполняйте базовую передачу/TX и прием/RX).
- Этот репо является почти переписыванием Martynweleer/U-Lora с обширными аннотациями.
- Код совместим с Jgromes/Radiolib (популярная библиотека Arduino Lora)
Где найти sx1276
- Многие доски развития ESP32 (Heltec Wifi Lora 32 V2, TTGO T-Beam V1.1) используют SX1276.
- Adafruit создал отдельный прорыв на основе SX1276: Adafruit RFM95W
- В любом случае, MCU общается с чипом SX1276 через интерфейс SPI.
Репо для использования производства
- Уровень ссылки Mac реализован в другом репо
- Аделка
- Вещание
- Запрос подтверждения
- Частотный прыжок также реализуется для Tranmit Light Packet, так как мы соблюдаем FCC 15.247: не джените одну частоту.
Увидеть проводку
Проводка RFM95W с PICO
- Мы решаем, какой GPIO мы хотим использовать
# RFM95W Pico GPIO
LoRa_MISO_Pin = 16
LoRa_CS_Pin = 17
LoRa_SCK_Pin = 18
LoRa_MOSI_Pin = 19
LoRa_G0_Pin = 20 # DIO0_Pin
LoRa_EN_Pin = 21
LoRa_RST_Pin = 22
SPI_CH = 0

Heltec Wi -Fi Lora 32 V2
- Предопределено (см. Пинате)
LoRa_MISO_Pin = 19
LoRa_MOSI_Pin = 27
LoRa_SCK_Pin = 5
LoRa_CS_Pin = 18
LoRa_RST_Pin = 14
LoRa_DIO0_Pin = 26
LoRa_DIO1_Pin = 35
LoRa_DIO2_Pin = 34
SPI_CH = 1

TTGO T-BEAM v1.1
- Предопределено (см. Пинате)
LoRa_MISO_Pin = 19
LoRa_MOSI_Pin = 27
LoRa_SCK_Pin = 5
LoRa_CS_Pin = 18
LoRa_RST_Pin = 23
LoRa_DIO0_Pin = 26

Как использовать SX1276
- Включите Adafruit RFM95W перед использованием (без включения PIN -кода на других платах разработки ESP32, чтобы они всегда были включены)
- Настройка связи SPI для управления модемом LORA
- Выберите режим LORA вместо режима FSK/OOK
- Установите параметры: пропускная способность (BW), скорость кодирования (CR), режим заголовка, коэффициент распространения (SF), синхронизация, длина преамбулы, частота, усилитель.
- Следуй диаграмме водопада - это то, на что выглядит сигнал из модемного модем, я мог бы предоставить учебное пособие о параметрах в будущем
- Установите обычную службу прерывания (IRS) для чтения входящего сообщения и для мониторинга рабочего статуса Modem
- Когда сообщение получено во время RX, запускается IRS, и мы читаем буфер данных FIFO. Мы пишем буфер данных FIFO до отправки сообщения, а затем IRS запускается во время TX.
Структура пакета
- Диаграмма водопада, которая показывает физическое представление модулированного сигнала.

- Заголовок (существует в явном режиме): длина полезной нагрузки, ставка кодирования полезной нагрузки
- Ставка кодирования явного заголовка составляет 4/8, а полезная нагрузка может быть другой (TX сообщает RX, который использует CR TX).
- SF для всего пакета

4.1.2. Цифровой интерфейс LORA ®
- Модем Lora ® содержит три типа цифрового интерфейса,
- Регистры статической конфигурации
- Регистры статуса
- 256-байтовый пользовательский буфер данных FIFO
- Мы управляем модемом через этот цифровой интерфейс
- Практически мы читаем/записываем модемы регистры с помощью протокола SPI, чтобы мы могли настроить его параметры (статические регистры конфигурации), статус запроса, отправка или получение данных (буферные регистры).
FIFO Buffer

- Чтобы записать данные пакетов в FIFO Пользователь должен:
- Установите контент RegistrpaudDrptr для *regfifotxbaseaddr (Register regfifotxbaseaddr's содержимое).
- Напишите *regpayloadlength Byts в FIFO (Regfifo)
- Чтобы прочитать данные пакетов от пользователя FIFO:
- Установить regfifoaddrptr на *regfiforxcurrentaddr.
- Читать grugrxnbbytes от regfifo
Жаргон в таблице данных
- РФ: радиочастота
- RFI: РЧ вход
- RFO: РЧ -вывод
- {Высокая частота: {полоса 1: ~ 915MHZ}, LF: {Band 2: ~ 433MHZ, полоса 3: ~ 150 МГц}}}}
- PA: Усилитель мощности
- Три усилителя: rfo_lf, rfo_hf, pa_boost
- PA_HP: Высокая мощность
- PA_HF и PA_LF являются высокими усилителями эффективности
- АФК: автоматическая коррекция частоты
- RFOP: РЧ -выходная мощность
Последовательность передачи данных (таблица данных Рисунок 9)
- Изменить в режим ожидания, чтобы модем инициализировал все
- Начните TX Loop
- Подготовьте полезную нагрузку в TX
- Заполнить буфер данных FIFO с полезной нагрузкой
- Изменить режим TX
- Подождите, IRQ TXDONE
- В ISR, сделайте что -нибудь и четкие флаги IRQ
- Автоматически возвращайтесь в режим резервного режима
Последовательность приема данных непрерывного режима (рис. 10)
- Изменить в режим ожидания, чтобы модем инициировал все
- Изменить в RX непрерывный режим
- Подождите IRQ (Rxdone и Valdheader/Pailloadcrcerror)
- В ISR прочтите буфер данных FIFO, чтобы получить полезную нагрузку
- Следующее IRQ и следующее чтение FIFO
Следуйте аннотированному коду, чтобы выучить SX1276
- Используйте Rasberry Pi Pico и Adafruit RFM95W в качестве платформы обучения
- Как запустить микропитон на пика
- Коды микропитонов TX и RX широко прокомментируются для обучения
- Они совместимы с библиотекой радиолиба.
- Спасибо Martynweleer/U-Lora и Jgromes