Ringkasan
- SX1276 adalah modem Lora yang dapat mengirim dan menerima data dalam jarak jauh (kilometer jauhnya) dengan cara yang efisien.
- Repo ini adalah untuk membantu pemula belajar cara mengoperasikan chip SX1276 (lakukan transmisi dasar/TX dan resepsi/rx).
- Repo ini hampir merupakan penulisan ulang Martynwheeler/U-Lora dengan anotasi yang luas.
- Kode kompatibel dengan Jgromes/Radiolib (Perpustakaan Arduino Lora yang populer)
Di mana menemukan sx1276
- Banyak papan pengembangan LORA ESP32 (Heltec WiFi Lora 32 V2, TTGO T-Beam V1.1) menggunakan SX1276.
- Adafruit menciptakan pelarian mandiri berdasarkan SX1276: Adafruit RFM95W
- Either way, MCU berbicara dengan chip SX1276 melalui antarmuka SPI.
Repo untuk penggunaan produksi
- Lapisan tautan Mac diimplementasikan di repo lain
- Menangani
- Penyiaran
- Meminta pengakuan
- Frequency Hopping juga diimplementasikan untuk Tranmit Paket Besar karena kami mematuhi FCC 15.247: Jangan macet satu frekuensi.
Lihat kabelnya
Pengkabelan RFM95W dengan pico
- Kami memutuskan GPIO mana yang ingin kami gunakan
# 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
- Yang telah ditentukan sebelumnya (lihat 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
- Yang telah ditentukan sebelumnya (lihat 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

Cara menggunakan sx1276
- Aktifkan AdaFruit RFM95W sebelum digunakan (tidak ada pin yang diaktifkan di papan pengembangan ESP32 lainnya sehingga mereka selalu diaktifkan)
- Konfigurasikan komunikasi SPI untuk mengontrol modem lora
- Pilih Mode Lora alih -alih mode FSK/OOK
- Atur parameter: bandwidth (BW), laju pengkodean (CR), mode header, faktor penyebaran (SF), SyncWord, Panjang Pembukaan, Frekuensi, Amplifier.
- Mengikuti diagram air terjun adalah seperti apa sinyal dari Lora Modem, saya mungkin memberikan tutorial tentang parameter di masa depan
- Tetapkan Layanan Rutin Interupsi (IRS) untuk membaca pesan yang masuk dan untuk memantau status kerja Modem
- Ketika pesan diterima selama RX, IRS dipicu dan kami membaca Buffer Data FIFO. Kami menulis buffer data FIFO sebelum pesan dikirim dan kemudian IRS dipicu selama TX.
Struktur paket
- Diagram air terjun yang menunjukkan representasi fisik dari sinyal termodulasi.

- Header (ada dalam mode eksplisit): Panjang payload, tarif pengkodean payload
- Tingkat pengkodean header eksplisit adalah 4/8 dan payload bisa berbeda (TX memberi tahu RX yang digunakan CR TX).
- SF adalah untuk paket utuh

4.1.2. Antarmuka Digital Lora ®
- Modem Lora ® terdiri dari tiga jenis antarmuka digital,
- register konfigurasi statis
- register status
- buffer data FIFO 256-byte yang ditentukan pengguna
- Kami mengontrol modem melalui antarmuka digital ini
- Secara praktis, kami membaca/menulis register modem melalui protokol SPI sehingga kami dapat mengonfigurasi parameternya (register konfigurasi statis), status kueri, mengirim atau menerima data (register buffer).
Buffer FIFO

- Untuk menulis data paket ke pengguna FIFO harus:
- Atur Konten RegFifoadDrptr ke *RegFifotXBaseAddr (Daftarkan Konten RegFifotXBaseAddr).
- Tulis *RegPayloadLength Bytes ke FIFO (RegFifo)
- Untuk membaca data paket dari pengguna FIFO harus:
- Setel RegFifoadDrptr ke *RegFiforXCurrentAddr.
- Baca regrxnbbytes dari regfifo
Jargon di lembar data
- RF: Frekuensi radio
- RFI: Input RF
- RFO: Output RF
- {Frekuensi tinggi: {band 1: ~ 915mhz}, lf: {band 2: ~ 433mhz, band 3: ~ 150MHz}}
- PA: penguat daya
- Tiga amplifier: rfo_lf, rfo_hf, pa_boost
- PA_HP: Daya tinggi
- Pa_hf dan pa_lf adalah amplifier efisiensi tinggi
- AFC: Koreksi Frekuensi Otomatis
- RFOP: Daya Output RF
Urutan Transmisi Data (DataSheet Gambar 9)
- Ubah ke mode siaga sehingga modem menginisialisasi segalanya
- Mulai TX Loop
- Siapkan muatan ke TX
- Isi buffer data FIFO dengan muatan
- Ubah ke mode TX
- Tunggu txdone irq
- Di ISR, lakukan sesuatu dan jelas bendera IRQ
- Kembali ke mode siaga secara otomatis
Urutan Penerimaan Data Mode Kontinous (Gambar 10)
- Ubah ke mode siaga sehingga modem memulai segalanya
- Ubah ke mode kontinu RX
- Tunggu IRQ (RXDone dan ValidHeader/PayloadCrcerror)
- Di ISR, baca buffer data FIFO untuk mendapatkan muatan
- IRQ berikutnya dan bacaan FIFO berikutnya
Ikuti kode beranotasi untuk mempelajari SX1276
- Gunakan Rasberry Pi Pico dan Adafruit RFM95W sebagai Platform Pembelajaran
- Cara menjalankan micropython di pico
- Kode Micropython TX dan RX dikomentari secara luas untuk belajar
- Mereka kompatibel dengan perpustakaan radiolib.
- Terima kasih Martynwheeler/U-Lora dan Jgromes