本次我要分享的是4G模組SPI的技術(shù)指南,以合宙Air724UG為例,學(xué)完本章幫你實(shí)現(xiàn)技術(shù)提升。
一、簡(jiǎn)介
SPI 是串行外設(shè)接口(Serial Peripheral Interface)的縮寫(xiě)。
SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,SDI(數(shù)據(jù)輸入),SDO(數(shù)據(jù)輸出),SCLK(時(shí)鐘),CS(片選),就可以完成一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備之間的通信,事實(shí)上 3 根也可以(單向傳輸時(shí))。在嵌入式系統(tǒng)中,主要應(yīng)用于 EEPROM、FLASH、實(shí)時(shí)時(shí)鐘、AD轉(zhuǎn)換器、數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間的通信,在全雙工模式下,傳輸速率可達(dá)上Mbps的水平。
Air724模塊對(duì)外提供的硬件SPI接口數(shù)量有兩路,即 SPI1、SPI2,其他SPI通道以復(fù)用封裝作為 LCD 或 MMC 功能管腳使用。

二、演示功能概述
本教程教你如何使用開(kāi)發(fā)板的SPI總線讀寫(xiě) FLASH。
三、準(zhǔn)備硬件環(huán)境
3.1 開(kāi)發(fā)板準(zhǔn)備
使用 EVB_Air724 開(kāi)發(fā)板,如下圖所示:

此開(kāi)發(fā)板的詳細(xì)使用說(shuō)明參考:
https://docs.openluat.com/air724ug/product/
Air724UG 產(chǎn)品手冊(cè)中的《EVB_Air724UG_AXX 開(kāi)發(fā)板使用說(shuō)明》,寫(xiě)這篇文章時(shí)最新版本的使用說(shuō)明為:《EVB_Air724UG_A14 開(kāi)發(fā)板使用說(shuō)明》;開(kāi)發(fā)板使用過(guò)程中遇到任何問(wèn)題,可以直接參考這份使用說(shuō)明文檔。
api文檔:
https://doc.openluat.com/wiki/21?wiki_page_id=2068
3.2 數(shù)據(jù)通信線
USB 數(shù)據(jù)線一根(micro USB)。
3.3 PC 電腦
WIN7 以及以上版本的 WINDOWS 系統(tǒng)。
3.4 SPI FLASH 模塊
25Q64JVSIQ 注意電平是 3.3V

3.5 電平轉(zhuǎn)換模塊
雙向電平轉(zhuǎn)換模塊(3.3V、1.8V)

3.6 組裝硬件環(huán)境
USB數(shù)據(jù)線插入 USB 口,另一端與電腦相連,撥碼開(kāi)關(guān)全部撥到 ON,串口切換開(kāi)關(guān)選擇 UART1,USB 供電的 4V 對(duì)應(yīng)開(kāi)關(guān)撥至 ON 檔,SIM 卡放到 SIM 卡槽中鎖緊,如下圖所示。

由于 SPI FLASH 模塊只支持 3.3v 電平,開(kāi)發(fā)板 SPI 接口只支持 1.8V 電平,所以 SPI FLASH 模塊和開(kāi)發(fā)板之間需要用電平轉(zhuǎn)換模塊將相互的 IO 電平轉(zhuǎn)換,具體連接圖如下圖所示。
開(kāi)發(fā)板與電平轉(zhuǎn)換模塊連接:

SPI FLASH 與電平轉(zhuǎn)換模塊連接:

四、準(zhǔn)備軟件環(huán)境
4.1 下載調(diào)試工具
使用說(shuō)明參考:
Luatools下載和詳細(xì)使用
https://docs.openluat.com/Luatools/
4.2 源碼及固件
4.2.1 底層 core 下載
下載底層固件,并解壓
鏈接:
https://docs.openluat.com/air724ug/luatos/firmware/
如下圖所示,紅框的是我們要使用到的

4.2.2 本教程使用的 demo 見(jiàn)附件:
https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/spiFlash
4.3 下載固件和腳本到開(kāi)發(fā)板中
打開(kāi) Luatools,開(kāi)發(fā)板上電開(kāi)機(jī),如開(kāi)機(jī)成功 Luatools 會(huì)打印如下信息。

點(diǎn)擊項(xiàng)目管理測(cè)試選項(xiàng)。

進(jìn)入管理界面,如下圖所示。

點(diǎn)擊選擇文件,選擇底層固件,我的文件放在 D:luatOSAir724 路徑中

點(diǎn)擊增加腳本或資源文件,選擇之前下載的程序源碼,如下圖所示。

點(diǎn)擊下載底層和腳本,下載完成如下圖所示。

五、代碼示例介紹
5.1 API 說(shuō)明
5.1.1 spi 開(kāi)啟接口
spi.setup(id,chpa,cpol,dataBits,clock,duplex)
(點(diǎn)開(kāi)放大)

返回值

5.1.2 spi 寫(xiě)數(shù)據(jù)
spi.send(id,data[,cscontrol])
(點(diǎn)開(kāi)放大)

返回值

5.1.3 讀數(shù)據(jù)
spi.recv(id,length[,cscontrol])
(點(diǎn)開(kāi)放大)

返回值

5.1.4 讀寫(xiě)數(shù)據(jù)
spi.send_recv(id,data[,cscontrol])
| 參數(shù) | 類型 | 釋義 | 取值 |
| id | number | SPI 的 ID spi.SPI_1 表示 SPI1,Air720U 系列只有 SPI1 作為普通 SPI 接口使用,固定傳 spi.SPI_1 即可通道選擇 | 0:普通 spi 1:lcdspi |
|
data |
string | 要發(fā)送的數(shù)據(jù) | |
| cscontrol | number | cs 是否自動(dòng)控制,可選參數(shù)默認(rèn) 0,1 代表 CS 隨數(shù)據(jù)自動(dòng)變化,0 代表 cs 先拉低數(shù)據(jù)結(jié)束再恢復(fù) | 0/1 |
返回值

5.1.5 關(guān)閉 SPI
spi.close(id)
| 參數(shù) | 類型 | 釋義 | 取值 |
| id | number | SPI 的 ID,spi.SPI_1 表示 SPI1,Air720U 系列只有 SPI1 作為普通 SPI 接口使用,固定傳 spi.SPI_1 即可 | 0:普通 spi 1:lcdspi 復(fù)用為普通 spi |
返回值

5.2 test_SPIFlash.lua 代碼
test_SPIFlash 程序流程。



5.3 main.lua 代碼
本代碼為主程序腳本,系統(tǒng)啟動(dòng)后首先會(huì)對(duì) 4G 網(wǎng)絡(luò)進(jìn)行配置,然后加載 test_SPIFlash 測(cè)試模塊。
5.4 spiFlash.lua
spiFlash.lua 為 W25Q32/BH25Q32 驅(qū)動(dòng)代碼。








六、開(kāi)機(jī)調(diào)試
6.1 開(kāi)發(fā)板開(kāi)機(jī)
連接好硬件并下載固件后,啟動(dòng) Luatools 軟件,系統(tǒng)運(yùn)行信息將顯示在界面中。紅框中為開(kāi)發(fā)板連接到 PC 機(jī)后正常打印的信息,如下圖所示。

6.2 SPI FLASH 調(diào)試
讀出 SPI FLASH ID, 并顯示 SPI FLASH 的型號(hào),并且讀寫(xiě)測(cè)試。

七、常見(jiàn)問(wèn)題
7.1 為什么 SPI 通信中會(huì)出現(xiàn)一些亂碼或數(shù)據(jù)丟失
答:SPI 通信的接口電平不匹配??捎?a href="http://www.makelele.cn/v/tag/577/" target="_blank">示波器觀測(cè) SPI 接口在通信過(guò)程中的電平狀態(tài)和電平質(zhì)量,確認(rèn)用戶所使用的通信設(shè)備中接口電平是否與 Air724 模塊 SPI1 接口電平一致,Air724 開(kāi)發(fā)板上的 Air724 模塊的 SPI1 接口電平均為 1.8V,如不匹配,請(qǐng)確保一致。不能過(guò)高或過(guò)低,過(guò)低有可能會(huì)導(dǎo)致電平電壓不能被識(shí)別,過(guò)高有可能會(huì)損壞 SPI 通信接口,另外,建議使用一些高速器件作為電平轉(zhuǎn)換器件,可提高接口電平的信號(hào)質(zhì)量。
7.2 標(biāo)準(zhǔn) spi 可以驅(qū)動(dòng)的目標(biāo)芯片電壓是多少?
1.8V,這個(gè)電壓是寫(xiě)死的,無(wú)法設(shè)置,如果目標(biāo)芯片工作電壓不在此范圍內(nèi)需要用電平轉(zhuǎn)換芯片。
分享完畢。
-
處理器
+關(guān)注
關(guān)注
68文章
20248瀏覽量
252117 -
芯片
+關(guān)注
關(guān)注
463文章
54004瀏覽量
465795 -
SPI
+關(guān)注
關(guān)注
17文章
1885瀏覽量
101187 -
模組
+關(guān)注
關(guān)注
6文章
1768瀏覽量
32243
發(fā)布評(píng)論請(qǐng)先 登錄
ESP32S2 WROVER在使用AT指令獲取4G模組時(shí),dte會(huì)報(bào)超時(shí)怎么解決?
MiniPCIE 封裝4G模組價(jià)值仍在
怎樣去使用4G模塊的spi接口呢
4G模組, 4G模塊是什么?4G模組,4G模塊的平臺(tái)?4G模組,4G模塊怎么選?ASR RDA 高通
4G Cat
LuatOS開(kāi)發(fā)之4G模組隨機(jī)數(shù)(random)|實(shí)戰(zhàn)指南
掌握4G模組SPI|技術(shù)指南
評(píng)論