Paket ini mengusulkan implementasi dalam C driver untuk komponen radio LR11xX .
Driver terpecah dalam beberapa komponen:
Komponen ini digunakan untuk memperbarui firmware.
Komponen ini digunakan untuk membaca / menulis data dari register atau memori internal.
Komponen ini digunakan untuk berinteraksi dengan parameter-seluruh sistem seperti sumber jam, sakelar RF terintegrasi, dll.
Komponen ini digunakan untuk mengirim / menerima data melalui modem yang berbeda (LORA dan GFSK) atau melakukan LORA CAD (Deteksi Aktivitas Saluran). Parameter seperti pemilihan penguat daya, daya output dan mode fallback juga dapat diakses melalui komponen ini.
Ini juga memperlihatkan fitur untuk Sigfox. Bluetooth®-Low-Energy-Beaconing-Compatibility juga disediakan dalam komponen ini untuk LR1110/LR1120.
Komponen ini menyediakan fungsi terkait LR-FHSS.
Komponen ini digunakan untuk mengonfigurasi dan memulai pemindaian pasif dari sinyal Wi-Fi yang dapat dibagikan untuk meminta geolokasi.
Komponen ini digunakan untuk mengonfigurasi dan memulai akuisisi sinyal GNSS yang dapat dibagikan untuk meminta geolokasi.
Komponen ini digunakan untuk mengatur dan mendapatkan kunci di gantungan kunci internal dan melakukan operasi kriptografi dengan akselerator perangkat keras terintegrasi.
Komponen ini digunakan untuk mengkonfigurasi dan mengoperasikan fitur waktu perjalanan pulang-pergi LORA (RTTOF) perangkat.
Setiap komponen didasarkan pada file yang berbeda:
HAL (Lapisan Abstraksi Perangkat Keras) adalah kumpulan fungsi yang harus diimplementasikan pengguna untuk menulis panggilan yang bergantung pada platform ke host. Daftar fungsi adalah sebagai berikut:
Ketika chip bangun dari mode tidur dengan retensi, parameter tidak dikonfigurasi ulang dengan benar. Kesalahan konfigurasi ini dapat menyebabkan daya saluran yang berdekatan tinggi di semua transmisi berikutnya.
Masalah ini hanya muncul dalam modulasi Lora, untuk semua bandwidth kecuali untuk 500kHz dan 800kHz.
Versi firmware berikut terpengaruh:
Penanganan solusi adalah untuk mengatur ulang bit 30 dalam register 0x00F30054 ketika chip bangun dari mode tidur dengan retensi.
Penanganan solusi ini tidak menyelesaikan kasus di mana LR11XX_RADIO_MODE_SLEEP dikonfigurasi dengan lr11xx_radio_auto_tx_rx dan chip diatur ke mode RX. Ini adalah iuran pada fakta bahwa solusi tidak dapat diterapkan sebelum transmisi berikutnya, secara otomatis diluncurkan oleh chip setelah bangun dari mode tidur dengan retensi.
Implementasi pertama - diaktifkan secara default di driver - menambahkan panggilan implisit memperbarui parameter untuk setiap fungsi yang dapat mengatur chip dalam transmisi - langsung atau tidak -:
lr11xx_radio_set_tx_with_timeout_in_rtc_steplr11xx_radio_set_tx_infinite_preamblelr11xx_radio_set_rx_with_timeout_in_rtc_step - dalam hal lr11xx_radio_auto_tx_rx telah diaktifkanlr11xx_radio_set_cad - Dalam hal LR11XX_RADIO_CAD_EXIT_MODE_TX telah diatur dengan lr11xx_radio_set_cad_params Implementasi ini dapat dinonaktifkan dengan mendefinisikan makro LR11XX_DISABLE_HIGH_ACP_WORKAROUND . Penyandang cacat ini akan berguna ketika, di masa depan, firmware baru yang mengintegrasikan perbaikan dirilis dan tidak memerlukan solusi lagi.
Keuntungan utama dari implementasi ini adalah transparan bagi pengguna yang hanya perlu memperbarui driver tanpa mengubah aplikasinya. Kelemahan utama adalah bahwa panggilan implisit dilakukan secara sistematis bahkan ketika tidak diperlukan.
Metode kedua mengharuskan pengguna untuk secara eksplisit memanggil fungsi lr11xx_radio_apply_high_acp_workaround ketika chip bangun dari mode tidur dengan retensi (CATATAN: untuk meringankan implementasi, itu dapat dipanggil ketika chip bangun dari mode tidur apa pun).
Metode ini membutuhkan makro LR11XX_DISABLE_HIGH_ACP_WORKAROUND untuk didefinisikan sehingga implementasi 1 dari solusi (diaktifkan secara default) dinonaktifkan.
Versi firmware berikut terpengaruh:
Ketika chip mengakhiri resepsi pada pita 2,4 GHz, parameter tidak dikonfigurasi ulang dengan benar. Kesalahan konfigurasi ini akan mencegah pemindaian GNSS berikutnya bekerja dengan baik.
Penting untuk dicatat bahwa jika chip memasuki salah satu dari keadaan berikut antara penerimaan dalam pita 2.4GHz dan pemindaian GNSS, parameternya dikonfigurasi ulang dengan benar dan batasannya tidak muncul:
Penanganan solusi adalah untuk mengatur bit 4 dalam register 0x00F30024 ketika chip mengakhiri resepsi pada pita 2.4GHz sebelum meluncurkan pemindaian GNSS.
Solusi ini tidak diperlukan saat menggunakan versi firmware LR1110 apa pun. Namun demikian, itu tidak mencegah LR1110 bekerja dengan baik jika solusi tidak dinonaktifkan.
Implementasi pertama - diaktifkan secara default di driver - menambahkan panggilan implisit memperbarui parameter untuk setiap fungsi yang dapat mengatur chip dalam mode pemindaian GNSS:
lr11xx_gnss_scan Implementasi ini dapat dinonaktifkan dengan mendefinisikan makro LR11XX_DISABLE_MIXER_CFG_WORKAROUND . Penyandang cacat ini akan berguna ketika, di masa depan, firmware baru yang mengintegrasikan perbaikan dirilis dan tidak memerlukan solusi lagi.
Keuntungan utama dari implementasi ini adalah transparan bagi pengguna yang hanya perlu memperbarui driver tanpa mengubah aplikasinya. Kelemahan utama adalah bahwa panggilan implisit dilakukan secara sistematis bahkan ketika tidak diperlukan.
Metode kedua mengharuskan pengguna untuk secara eksplisit memanggil fungsi lr11xx_gnss_apply_mixer_cfg_workaround ketika chip mengakhiri resepsi di 2.4GHz jika pemindaian GNSS direncanakan setelahnya, tanpa melalui salah satu negara yang ditentukan dalam deskripsi batasan ini.
Metode ini memerlukan makro LR11XX_DISABLE_MIXER_CFG_WORKAROUND untuk didefinisikan sehingga implementasi 1 solusi (diaktifkan secara default) dinonaktifkan.