基於SX1276芯片的 LORA 技術開發詳解

一、簡介

LORA,是“Long Range”的簡稱。LORA 技術,源自於美國的升特公司(Semtech),是一種用於中、長距離傳輸的技術,相關信息主要從升特公司官網獲取,多爲英文版本。

官網網址:https://www.semtech.com/

開發者中心:https://lora-developers.semtech.com/

 

二、資料下載

在開發者中心的 Libary 板塊,可以下載到 Lora 相關芯片的數據手冊、用於手冊、設計指南、硬件設計、低功耗設計、固件驅動 等資料。

本人收集的中文數據手冊+適配的驅動 鏈接如下:

https://download.csdn.net/download/hb69222/11420060

 

三、芯片選型

LORA模塊產品數量並不算太多,比較常見的有 SX1276、SX1277、SX1278、SX1279、SX1301

其中SX1301用作網關。其餘幾個作爲普通的收發器,除引腳、封裝不同之外,最大的差別就是它們所使用的頻段、帶寬、速率不同,詳見下表

 

四、工作方式

以常見的收發器爲例,芯片自帶SPI接口,需要一個外接的MCU去控制整個工作流程,包括模式選擇,數據收發等。官網自帶有各芯片的驅動文件,開發者可以根據自己的選擇,調用相應的文件。以SX1276爲例,進行驅動文件的簡單解讀,詳情如下。

 

五、SX1276 驅動解讀之——初始化

1、重啓SX1276芯片,並延時一段時間(數據手冊推薦5 ms)  RST引腳觸發

2、進入LORA+低頻模式 【RegOpMode (0x01)】

3、設置頻率通道 【 RegFrfMsb(0x006)】

4、設置輸出功率 【RegpalonConfig (0x09)】

5、關閉過流保護 【RegOcp (0x0B)】

6、開啓 LNA 最大增益 【RegLna (0x0C)】

7、設置帶寬 【RegModernConfig (0x01D)】

8、設置超時時間 【RegSymbTimeoutLsb (0x01F)】

9、設置前導碼長度 【RegPreambleMsb (0x20)】

10、設置引腳狀態 【 RegDioMapping(0x40)】

11、進入待機模式  【RegOpMode (0x01)】

 

六、SX1276 驅動解讀之——進入接收模式

1、設置功率 【RegPaDac (0x4D)】

2、設置FHSS跳頻技術 【RegHop{eriod (0x24)】

3、設置引腳狀態 【RegPinMapping (0x40)】

4、打開接收完成和超時中斷 【RegIrqFlagsMask (0x11)】

5、清除中斷標誌位 【RegIrqFlags (0x12)】

6、設置負載字節長度 【RegPayLoadLenghth (0x22)】

7、讀接收基地址 【RegFifoRxBaseLength (0x0F)】

8、把FIFO指針地址設置爲接收基地址【RegFifoAddrPtr (0x0D)】

9、設置LORA模式,持續接收 【RegOpMode (0x01)】

10、直到進入了接收模式,才往下運行 【RegModernStat (0x18)】

 

七、SX1276 驅動解讀之——進入發射模式

1、初始化模塊

2、設置發射功率 【RegPaDac (0x4D)】

3、設置調頻週期 【RegHopPeriod (0x24)】

4、設置引腳狀態 【RegIoMapping (0x40)】

5、清除標誌位 【RegIrqFlag (0x12)】

6、開啓發送結束中斷 【RegIrqFlagMask (0x11)】

7、設置包長度 【RegPayLoadLength (0x22)】

8、讀發射基地址 【RegFifoTxBaseAddr (0x0E)】

9、將FIFO指針設置爲發射基地址 【RegFifoAddrptr (0x0D)】

10、向FIFO中寫入數據 【RegFIfo (0x00)】

11、設置LORA+低頻+發送模式 【RegOpMode (0x01)】

12、讀中斷標誌位 【 RegIrqFlag(0x12)】

13、直到發送完成,清除標誌位 【ReqIrqFlag (0x12)】

14、進入待機模式 【ReqOpMode (0x01)】

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章