致遠電子LoRa模塊其憑借著穩定的性能,深受廣大用戶的信任與好評。但在使用過程中其驅動代碼的移植一直是一個重點和難點。本文將簡單介紹一下致遠官方驅動代碼的移植關鍵步驟。
LoRa模塊憑借其優異的射頻性能和穩定性,被廣泛應用于各類物聯網應用中,本文將為大家介紹致遠電子官方驅動代碼的移植關鍵步驟,適用于ZM4xxSX-M系列LoRa射頻模塊。
為了加快用戶LoRa產品的開發進度,致遠電子已經實現了其底層驅動。用戶移植驅動代碼后,只需要專注于自己的產品功能開發即可。致遠電子官方LoRa驅動代碼鏈接如下,用戶可免費下載!
在介紹驅動代碼的移植之前先簡單說一下驅動的目錄結構:
LoRa驅動代碼目錄結構
在該驅動例程中,前三個文件夾:startup、core、soc與具體用戶的MCU相關,不用移植。Demo文件夾下面放的是致遠電子提供的例程代碼,用戶可以選擇性移植。User_code文件夾下存放用戶的應用程序,可以不用移植。真正且必須移植的是radio和sx127x這兩個文件夾下面的代碼,這兩個文件夾下包含的是驅動和配置代碼。
在移植代碼之前需要注意:
1、確認 MCU 與 ZM4xx 模塊相連的引腳可配置為上下拉模式的,有客戶在使用過程中出現復位或 SPI片選引腳輸出高電平時電平只有 2.0V,從而導致模塊復位異常或 SPI 通信不正常。原因是該 MCU 引腳無上下拉模式,需要靠外部接上拉電阻才能把電平拉高。
2、客戶在移植驅動時,除非是編譯問題,否則不能修改 sx127x.c 里面的內容,也不能把spi 函數寫在 sx127x.c 里面,我們只需要用戶從 sx127x_radio_lora_cfg.c 文件將 spi 函數傳入即可。
??驅動代碼的移植
驅動移植
??文件的修改
用戶只需要修改sx127x_radio_lora_cfg.c文件內容即可。首先用戶需要提供以下函數:
1、準備SPI驅動
ZM4xxSX-M系列的LoRa模組都是使用SPI接口通信,用戶僅需要提供SPI讀字節和寫字節的函數即可。其用戶MCU主機SPI特性如下;
SPI主機采用模式0,CPOL=0和CPHA=0;
全雙工通信;
數據長度8位,MSB通信;
SPI速度需要小于10M。
用戶SPI操作函數
注意:用戶無需在SPI讀寫函數內部操作CS片選引腳,函數內部只需要單純發送或接收一個字節的數據即可。
2、準備GPIO操作驅動
模塊除了SPI的SCK、MISO、MOSI引腳之外,還有片選引腳和復位引腳,驅動中需要對這兩個引腳進行操作,因此需要用戶提供這兩個引腳的GPIO操作函數:設置引腳電平函數(RESET和CS引腳初始化時需要設置為上拉輸出高電平)。
GPIO操作驅動
3、提供延時函數
ZM4xxSX-M內部讀寫寄存器有一定的時序要求,所以需要用戶提供延時函數。包括微秒延時和毫秒延時兩個函數。注意必須是精準的延時,不能是軟件循環延時,因為需要驅動有發送超時,如果延時不精準容易到時發送失敗。
延時函數
準備好上述函數后,用戶需要將這些函數注冊到驅動里面。sx127x_radio_loar_cfg.c文件提供了一個模板,如圖所示。用戶只需要將上述說的三種函數對應替換成自己的函數即可,其他地方不必修改。
??移植完成后驗證
當用戶完成上述兩個大步驟之后,用戶需要在模塊初始化之前自行完成SPI、GPIO和延時功能的初始化。然后參考致遠官方例程中的main()函數中的內容,進行驗證自己移植的程序是否可以正常工作。
如果無線模塊初始化函數:radio_zm4xx_inst_init()返回值!=0,則說明初始化成功,SPI通信沒問題。然后可以參考致遠電子提供的無線收發demo程序:demo_zm4xx_entry(handle),如果模塊能夠正常通信說明該LoRa的驅動代碼到此移植成功!
致遠ZM470SX-M LoRa模組
-
射頻模塊
+關注
關注
5文章
81瀏覽量
19717 -
GPIO
+關注
關注
16文章
1196瀏覽量
51914 -
致遠電子
+關注
關注
13文章
405瀏覽量
31274 -
LoRa
+關注
關注
349文章
1672瀏覽量
231787
原文標題:還不會用LoRa模塊?看這一篇就夠了!
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論