本篇主要介紹SX1278轉(zhuǎn)到LLCC68和SX1268/SX1262的軟件細(xì)節(jié)教程,文中涉及到的代碼,大家可去原文查看https://aithinker.blog.csdn.net/article/details/134864572?spm=1001.2014.3001.5502
首先和大家介紹一下這幾款芯片的區(qū)別特點(diǎn):
SX127x類(lèi):包含安信可Ra-01、Ra-01H、Ra-02,分別對(duì)應(yīng)兩個(gè)版本芯片SX1278和SX1276,代碼驅(qū)動(dòng)通用,只是頻率參數(shù)有區(qū)別。
SX126x和LLCC68:包含安信可Ra-01S,Ra-01SC,Ra-01SCH,作為一個(gè)類(lèi)別,分別對(duì)應(yīng)芯片SX1268和LLCC68,他們代碼驅(qū)動(dòng)通用,參數(shù)值配置有一定區(qū)別。
綜上所述,只要準(zhǔn)備兩份驅(qū)動(dòng)代碼就能將上述模組完全驅(qū)動(dòng)起來(lái),今天的目的是實(shí)現(xiàn)安信可127x和126x之間的通信。其中會(huì)涉及一些代碼邏輯框架的講解。
代碼資源獲取
Ra-01驅(qū)動(dòng)代碼:鏈接
Ra-01S、Ra-01SC:鏈接
127x芯片手冊(cè):鏈接
126x芯片手冊(cè):鏈接
LLCC68芯片手冊(cè):鏈接
(具體下載鏈接請(qǐng)點(diǎn)擊原文查看)
SX127x系列驅(qū)動(dòng)詳解
安信可封裝到站點(diǎn)的代碼使用的驅(qū)動(dòng)MCU是STM32F103,只要使用同類(lèi)MCU就可以完成直接驅(qū)動(dòng),代碼中附詳細(xì)接線(xiàn)文檔,下面使用127x代碼來(lái)介紹整個(gè)代碼的流程框架。

發(fā)射機(jī)的配置參數(shù)說(shuō)明(SX127x)
1、RadioModems_t modem:無(wú)線(xiàn)電模塊類(lèi)型。
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)碼長(zhǎng)度。
8、bool fixLen:是否固定長(zhǎng)度。
9、bool crcOn:是否開(kāi)啟CRC校驗(yàn)。
10、bool FreqHopOn:是否開(kāi)啟頻率跳變。
11、uint8_t HopPeriod:頻率跳變周期。
12、bool iqInverted:是否反轉(zhuǎn)IQ信號(hào)。
13、uint32_t timeout:超時(shí)時(shí)間。

備注:這部分是發(fā)射機(jī)的參數(shù)配置,源碼.h文件內(nèi)也有詳細(xì)說(shuō)明。
接收機(jī)配置參數(shù)說(shuō)明(SX127x)
1、RadioModems_t modem:無(wú)線(xiàn)電模塊類(lèi)型。
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)碼長(zhǎng)度。
7、uint16_t symbTimeout:符號(hào)超時(shí)。
8、bool fixLen:是否固定長(zhǎng)度。
9、uint8_t payloadLen:有效載荷長(zhǎng)度。
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ū)動(dòng)的,所以在代碼移植配置時(shí)一定要確保SPI的配置正常,時(shí)序和訪(fǎng)問(wèn)正常才能能正常使用,代碼中用的是STM32的SPI1。

LoRa參數(shù)配置(SX127x)
這里的參數(shù)配置對(duì)應(yīng)”接收機(jī)“和”發(fā)射機(jī)“的參數(shù),共用一個(gè)參數(shù)才能夠互相通信。

SX126x和LLCC68驅(qū)動(dòng)詳解
下面是126x系列的代碼驅(qū)動(dòng)包,驅(qū)動(dòng)代碼和LLCC68系列是通用的。

發(fā)射機(jī)的配置參數(shù)說(shuō)明(SX126x&LLCC68)
1、RadioModems_t modem:無(wú)線(xiàn)電模塊類(lèi)型。
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)碼長(zhǎng)度。
8、bool fixLen:是否固定長(zhǎng)度。
9、bool crcOn:是否開(kāi)啟CRC校驗(yàn)。
10、bool freqHopOn:是否開(kāi)啟Period`:頻率跳變周期。
11、bool iqInverted:是否反轉(zhuǎn)IQ信號(hào)。
12、uint32_t timeout:超時(shí)時(shí)間。

接收機(jī)配置參數(shù)說(shuō)明(SX126x&LLCC68)
1、RadioModems_t modem:無(wú)線(xiàn)電模塊類(lèi)型。
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)碼長(zhǎng)度。
7、uint16_t symbTimeout:符號(hào)超時(shí)。
8、bool fixLen:是否固定長(zhǎng)度。
9、uint8_t payloadLen:有效載荷長(zhǎng)度。
10、bool crcOn:是否開(kāi)啟CRC校驗(yàn)。
11、bool freqHopOn:是否開(kāi)啟頻率跳變。
12、uint8_t hopPeriod:頻率跳變周期。
13、bool iqInverted:是否反轉(zhuǎn)IQ。
14、bool rxContinuous:是否持續(xù)接收。

LoRa初始化配置(SX126x&LLCC68)
SX126X的代碼,分為了兩個(gè)配置文件:
接收配置文件:sx126x_example_recive.c
發(fā)送配置文件:sx126x_example_recive.h

LoRa參數(shù)配置(SX126x&LLCC68)
參數(shù)配置區(qū)域配置接收和發(fā)送的頻率、帶寬功率等,還配置了SPI的引腳定義。

SX127x切換SX126x或者LLCC68注意事項(xiàng)
對(duì)于前期使用SX127x的用戶(hù)現(xiàn)在換成SX126x或者LLCC68,需要注意以下幾點(diǎn):
1、代碼驅(qū)動(dòng):目前兩個(gè)系列的代碼驅(qū)動(dòng)是不一樣的,不管是原廠(chǎng)的封裝接口或者是寄存器都是不一樣的,切換意味著必須換代碼驅(qū)動(dòng)。
2、兩個(gè)驅(qū)動(dòng)代碼的驅(qū)動(dòng)邏輯和參數(shù)設(shè)置流程大同小異,特別是接收機(jī)發(fā)送機(jī)和參數(shù)區(qū)域,只是定義名和寄存器值名稱(chēng)有區(qū)別,所以閱讀代碼切換時(shí)就會(huì)容易很多。
3、封裝腳位:SX127x系列切換SX126x或者LLCC68系列是從芯片上定義,但是安信可的驅(qū)動(dòng)是基于模塊來(lái)開(kāi)發(fā)的,兩個(gè)系列模組的腳位也有一定區(qū)別,不是SPI接口有差異,都是ST的SPI封裝庫(kù),直接添加調(diào)用即可。
4、BUSY腳:差異在于SX126x或者LLCC68系列上有一個(gè)BUSY腳位,用于提示主控當(dāng)前芯片的工作狀態(tài),此腳位配合中斷進(jìn)程,可以簡(jiǎn)化代碼編輯的復(fù)雜程度,提高運(yùn)行效率。
SPI通信接口測(cè)試
以下代碼用于測(cè)試當(dāng)前主控STM32與LoRa的SPI通信情況,通過(guò)讀寫(xiě)某個(gè)寄存器的返回值來(lái)判斷當(dāng)前SPI驅(qū)動(dòng)是否正常工作,同理SX126x和LL68模組也可以用同樣方法測(cè)試。

1、讀寫(xiě)SX1278寄存器:

2、在主函數(shù)中調(diào)用ReadWriteSX1278Register()函數(shù):

本篇文章已經(jīng)結(jié)束,以上就是關(guān)于SX1278轉(zhuǎn)到LLCC68和SX1268/SX1262的軟件細(xì)節(jié)教程,主要使用demo進(jìn)行分解測(cè)試,demo代碼中含有大量注釋?zhuān)⑶沂褂玫氖荢TM32F103系列單片機(jī),便于上手操作,有興趣的朋友可以用于參考
審核編輯 黃宇
-
模組
+關(guān)注
關(guān)注
6文章
1637瀏覽量
31363 -
安信可
+關(guān)注
關(guān)注
0文章
191瀏覽量
4477 -
sx1278
+關(guān)注
關(guān)注
1文章
14瀏覽量
11839 -
SX1262
+關(guān)注
關(guān)注
1文章
5瀏覽量
1995
發(fā)布評(píng)論請(qǐng)先 登錄
SX1278轉(zhuǎn)到LLCC68和SX1268/SX1262的軟件細(xì)節(jié)教程

LLCC68簡(jiǎn)介
關(guān)于SX1262IMLTRT、SX1261、SX1268選型指南分析對(duì)比
關(guān)于SX1262IMLTRT、SX1261、SX1268選型指南分析對(duì)比
ASR6501是否能取代SX1278、SX1276、SX1262
關(guān)于SX1262IMLTRT、SX1261、SX1268選型指南分析對(duì)比
關(guān)于SX1262IMLTRT、SX1261、SX1268選型指南分析對(duì)比
關(guān)于SX1262IMLTRT、SX1261、SX1268選型指南分析對(duì)比
無(wú)線(xiàn)收發(fā)器芯片SX1268與SX1278、SX1276的區(qū)別是什么?
分享一款安信可新出的lora模塊“Ra-01S”
Sub-1GHz LoRa射頻收發(fā)器-LLCC68
強(qiáng)續(xù)航能力的Ra-01SC系列模組驅(qū)動(dòng)測(cè)試方式

LLCC68與SX1278 LoRa模塊的優(yōu)勢(shì)對(duì)比

評(píng)論