本篇主要介紹SX1278轉(zhuǎn)到LLCC68和SX1268/SX1262的軟件細(xì)節(jié)教程,文中涉及到的代碼,大家可去原文查看。
首先和大家介紹一下這幾款芯片的區(qū)別特點:
SX127x類:包含安信可Ra-01、Ra-01H、Ra-02,分別對應(yīng)兩個版本芯片SX1278和SX1276,代碼驅(qū)動通用,只是頻率參數(shù)有區(qū)別。
SX126x和LLCC68:包含安信可Ra-01S,Ra-01SC,Ra-01SCH,作為一個類別,分別對應(yīng)芯片SX1268和LLCC68,他們代碼驅(qū)動通用,參數(shù)值配置有一定區(qū)別。
綜上所述,只要準(zhǔn)備兩份驅(qū)動代碼就能將上述模組完全驅(qū)動起來,今天的目的是實現(xiàn)安信可127x和126x之間的通信。其中會涉及一些代碼邏輯框架的講解。
代碼資源獲取
Ra-01驅(qū)動代碼:鏈接
Ra-01S、Ra-01SC:鏈接
127x芯片手冊:鏈接
126x芯片手冊:鏈接
LLCC68芯片手冊:鏈接
一 SX127x系列驅(qū)動詳解
安信可封裝到站點的代碼使用的驅(qū)動MCU是STM32F103,只要使用同類MCU就可以完成直接驅(qū)動,代碼中附詳細(xì)接線文檔,下面使用127x代碼來介紹整個代碼的流程框架。
發(fā)射機的配置參數(shù)說明(SX127x)
1、RadioModems_t modem:無線電模塊類型。
2、int8_t power:發(fā)射功率。
3、uint32_t fdev:頻率偏移。
4、uint32_t bandwidth:帶寬。
5、uint32_t datarate:數(shù)據(jù)速率。
6、uint8_t coderate:編碼率。
7、uint16_t preambleLen:前導(dǎo)碼長度。
8、bool fixLen:是否固定長度。
9、bool crcOn:是否開啟CRC校驗。
10、bool FreqHopOn:是否開啟頻率跳變。
11、uint8_t HopPeriod:頻率跳變周期。
12、bool iqInverted:是否反轉(zhuǎn)IQ信號。
13、uint32_t timeout:超時時間。
備注:這部分是發(fā)射機的參數(shù)配置,源碼.h文件內(nèi)也有詳細(xì)說明。
接收機配置參數(shù)說明(SX127x)
1、RadioModems_t modem:無線電模塊類型。
2、uint32_t bandwidth:接收帶寬。
3、uint32_t datarate:數(shù)據(jù)速率。
4、uint8_t coderate:編碼率。
5、uint32_t bandwidthAfc:AFC帶寬。
6、uint16_t preambleLen:前導(dǎo)碼長度。
7、uint16_t symbTimeout:符號超時。
8、bool fixLen:是否固定長度。
9、uint8_t payloadLen:有效載荷長度。
10、bool crcOn:是否啟用CRC。
11、bool FreqHopOn:是否啟用頻率跳變。
12、uint8_t HopPeriod:頻率跳變周期。
13、bool iqInverted:是否反轉(zhuǎn)IQ。
14、bool rxContinuous:是否持續(xù)接收。
LoRa初始化配置(SX127x)
LoRa的初始化配置也是重要的一部分
SPI初始化配置(SX127x)
LoRa是SPI驅(qū)動的,所以在代碼移植配置時一定要確保SPI的配置正常,時序和訪問正常才能能正常使用,代碼中用的是STM32的SPI1。
LoRa參數(shù)配置(SX127x)
這里的參數(shù)配置對應(yīng)”接收機“和”發(fā)射機“的參數(shù),共用一個參數(shù)才能夠互相通信。
二 SX126x和LLCC68驅(qū)動詳解
下面是126x系列的代碼驅(qū)動包,驅(qū)動代碼和LLCC68系列是通用的。
發(fā)射機的配置參數(shù)說明(SX126x&LLCC68
)
1、RadioModems_t modem:無線電模塊類型。
2、int8_t power:發(fā)射功率。
3、uint32_t fdev:頻率偏移。
4、uint32_t bandwidth:帶寬。
5、uint32_t datarate:數(shù)據(jù)速率。
6、uint8_t coderate:編碼率。
7、uint16_t preambleLen:前導(dǎo)碼長度。
8、bool fixLen:是否固定長度。
9、bool crcOn:是否開啟CRC校驗。
10、bool freqHopOn:是否開啟Period`:頻率跳變周期。
11、bool iqInverted:是否反轉(zhuǎn)IQ信號。
12、uint32_t timeout:超時時間。
接收機配置參數(shù)說明(SX126x&LLCC68
)
1、RadioModems_t modem:無線電模塊類型。
2、uint32_t bandwidth:接收帶寬。
3、uint32_t datarate:數(shù)據(jù)速率。
4、uint8_t coderate:編碼率。
5、uint32_t bandwidthAfc:AFC帶寬。
6、uint16_t preambleLen:前導(dǎo)碼長度。
7、uint16_t symbTimeout:符號超時。
8、bool fixLen:是否固定長度。
9、uint8_t payloadLen:有效載荷長度。
10、bool crcOn:是否開啟CRC校驗。
11、bool freqHopOn:是否開啟頻率跳變。
12、uint8_t hopPeriod:頻率跳變周期。
13、bool iqInverted:是否反轉(zhuǎn)IQ。
14、bool rxContinuous:是否持續(xù)接收。
LoRa初始化配置
(SX126x&LLCC68
)
SX126X的代碼,分為了兩個配置文件:
接收配置文件:sx126x_example_recive.c
發(fā)送配置文件:sx126x_example_recive.h
LoRa參數(shù)配置
(SX126x&LLCC68
)
參數(shù)配置區(qū)域配置接收和發(fā)送的頻率、帶寬功率等,還配置了SPI的引腳定義。
SX127x切換SX126x或者LLCC68注意事項
對于前期使用SX127x的用戶現(xiàn)在換成SX126x或者LLCC68,需要注意以下幾點:
1、代碼驅(qū)動:目前兩個系列的代碼驅(qū)動是不一樣的,不管是原廠的封裝接口或者是寄存器都是不一樣的,切換意味著必須換代碼驅(qū)動。
2、兩個驅(qū)動代碼的驅(qū)動邏輯和參數(shù)設(shè)置流程大同小異,特別是接收機發(fā)送機和參數(shù)區(qū)域,只是定義名和寄存器值名稱有區(qū)別,所以閱讀代碼切換時就會容易很多。
3、封裝腳位:SX127x系列切換SX126x或者LLCC68系列是從芯片上定義,但是安信可的驅(qū)動是基于模塊來開發(fā)的,兩個系列模組的腳位也有一定區(qū)別,不是SPI接口有差異,都是ST的SPI封裝庫,直接添加調(diào)用即可。
4、BUSY腳:差異在于SX126x或者LLCC68系列上有一個BUSY腳位,用于提示主控當(dāng)前芯片的工作狀態(tài),此腳位配合中斷進(jìn)程,可以簡化代碼編輯的復(fù)雜程度,提高運行效率。
SPI通信接口測試
以下代碼用于測試當(dāng)前主控STM32與LoRa的SPI通信情況,通過讀寫某個寄存器的返回值來判斷當(dāng)前SPI驅(qū)動是否正常工作,同理SX126x和LL68模組也可以用同樣方法測試。
1、讀寫SX1278寄存器:
2、在主函數(shù)中調(diào)用ReadWriteSX1278Register()函數(shù):
本篇文章已經(jīng)結(jié)束,以上就是關(guān)于SX1278轉(zhuǎn)到LLCC68和SX1268/SX1262的軟件細(xì)節(jié)教程,主要使用demo進(jìn)行分解測試,demo代碼中含有大量注釋,并且使用的是STM32F103系列單片機,便于上手操作,有興趣的朋友可以用于參考。
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
455文章
50812瀏覽量
423575 -
mcu
+關(guān)注
關(guān)注
146文章
17148瀏覽量
351184 -
軟件
+關(guān)注
關(guān)注
69文章
4943瀏覽量
87475 -
安信可
+關(guān)注
關(guān)注
0文章
152瀏覽量
3984 -
sx1278
+關(guān)注
關(guān)注
1文章
13瀏覽量
11625
原文標(biāo)題:【工程師筆記】安信可Ra-01S切換到 Ra-01SC ,SX1278轉(zhuǎn)到LLCC68和SX1268/SX1262教程
文章出處:【微信號:安信可科技,微信公眾號:安信可科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論