ملخص
- SX1276 هو مودم LORA يمكنه إرسال واستقبال البيانات على مسافة طويلة (كيلومترات على بعد) بطريقة موفرة.
- هذا الريبو هو مساعدة المبتدئين على تعلم كيفية تشغيل شريحة SX1276 (هل الإرسال الأساسي/TX والاستقبال/RX).
- هذا الريبو هو تقريبا إعادة كتابة من Martynwheeler/U-Lora مع تعليقات واسعة النطاق.
- الكود متوافق مع JGromes/Radiolib (مكتبة Arduino Lora الشهيرة)
أين يمكن العثور على SX1276
- تستخدم العديد من لوحات تطوير ESP32 LORA (Heltec WiFi Lora 32 V2 ، TTGO T-Beam V1.1) SX1276.
- أنشأ Adafruit عملية اندلاع مستقل تعتمد على SX1276: Adafruit RFM95W
- في كلتا الحالتين ، يتحدث MCU إلى رقاقة SX1276 عبر واجهة SPI.
ريبو لاستخدام الإنتاج
- يتم تنفيذ طبقة ارتباط MAC في ريبو آخر
- يتم تنفيذ قفز التردد أيضًا لتنفيذ حزمة كبيرة لأننا نلتزم بـ FCC 15.247: لا تشد تردد واحد.
انظر الأسلاك
الأسلاك RFM95W مع بيكو
- نقرر أي 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 WiFi Lora 32 V2
- محدد مسبقًا (انظر pinout)
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
- محدد مسبقًا (انظر pinout)
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 قبل الاستخدام (لا يوجد دبوس تمكين على لوحات تطوير ESP32 الأخرى بحيث يتم تمكينها دائمًا)
- تكوين اتصال SPI للتحكم في مودم Lora
- اختر وضع Lora بدلاً من وضع FSK/OOK
- تعيين المعلمات: عرض النطاق الترددي (BW) ، معدل الترميز (CR) ، وضع الرأس ، عامل الانتشار (SF) ، المزامنة ، طول الديباجة ، التردد ، مكبر للصوت.
- بعد مخطط الشلال هو ما يبدو عليه الإشارة خارج مودم Lora ، قد أقدم برنامجًا تعليميًا حول المعلمات في المستقبل
- قم بتعيين خدمة روتينية مقاطعة (IRS) لقراءة الرسائل الواردة ومراقبة حالة عمل المودم
- عند استلام الرسالة خلال RX ، يتم تشغيل مصلحة الضرائب ونقرأ FIFO Data Buffer. نكتب FIFO Data Buffer قبل إرسال الرسالة ثم يتم تشغيل مصلحة الضرائب خلال TX.
بنية الحزمة
- مخطط الشلال الذي يوضح التمثيل المادي للإشارة المعدلة.

- رأس (موجود في الوضع الصريح): طول الحمولة الصافية ، معدل ترميز الحمولة الصافية
- معدل ترميز الرأس الصريح هو 4/8 وقد يكون الحمولة الصافية مختلفة (TX يخبر RX الذي يستخدمه CR TX).
- SF هي حزمة كاملة

4.1.2. واجهة Lora ® الرقمية
- يضم مودم Lora ® ثلاثة أنواع من الواجهة الرقمية ،
- سجلات التكوين الثابت
- سجلات الحالة
- عازلة بيانات FIFO المعرفة من 256 بايت بايت
- نتحكم في المودم من خلال هذه الواجهة الرقمية
- من الناحية العملية ، نقرأ/نكتب سجلات المودم عبر بروتوكول SPI حتى نتمكن من تكوين معلماتها (سجلات التكوين الثابت) ، وحالة الاستعلام ، أو إرسال أو استقبال البيانات (سجلات المخزن المؤقت).
FIFO العازلة

- من أجل كتابة بيانات الحزمة إلى مستخدم FIFO يجب:
- قم بتعيين محتوى REGIFOADDRPTR على *RegFIFOTXBASEADDR (سجل محتوى RegFIFOTXBASEADDR).
- اكتب *بايت LecpayLoadLength إلى FIFO (Regfifo)
- من أجل قراءة بيانات الحزمة من مستخدم FIFO يجب:
- تعيين regfifoaddrptr إلى *regfiforxcurrentaddr.
- اقرأ regrxnbbytes من Regfifo
jargon في ورقة البيانات
- RF: تردد الراديو
- RFI: إدخال RF
- RFO: إخراج RF
- {التردد العالي: {band 1: ~ 915mhz} ، lf: {Band 2: ~ 433mhz ، Band 3: ~ 150mhz}}
- السلطة الفلسطينية: مضخم الطاقة
- ثلاثة مضخمات: RFO_LF ، RFO_HF ، PA_BOOST
- PA_HP: قوة عالية
- PA_HF و PA_LF مضخمات عالية الكفاءة
- AFC: تصحيح التردد التلقائي
- RFOP: طاقة إخراج RF
تسلسل نقل البيانات (ورقة البيانات 9)
- التغيير إلى وضع الاستعداد بحيث يهيئة المودم كل شيء
- ابدأ TX Loop
- تحضير حمولة إلى تكساس
- املأ مخزن مؤقت لبيانات FIFO بحمولة حمولة
- التغيير إلى وضع TX
- انتظر txdone IRQ
- في ISR ، افعل شيئًا واضحة أعلام IRQ
- العودة إلى وضع الاستعداد تلقائيًا
تسلسل استقبال بيانات الوضع المستمر (الشكل 10)
- التغيير إلى وضع الاستعداد بحيث يبدأ المودم كل شيء
- تغيير إلى الوضع المستمر RX
- انتظر IRQ (RxDone و Validheader/PayloadCrcerror)
- في ISR ، اقرأ FIFO Data Buffer للحصول على حمولة حمولة
- القادم IRQ وقراءة FIFO القادمة
اتبع الكود المشروح لتعلم SX1276
- استخدم Rasberry Pi Pico و Adafruit RFM95W كمنصة تعليمية
- كيفية تشغيل micropython على بيكو
- يتم التعليق على نطاق واسع رموز micropython TX و RX على نطاق واسع للتعلم
- أنها متوافقة مع مكتبة Radiolib.
- شكرا Martynwheeler/U-Lora و Jgromes