Air201模組入門:掌握SPI讀寫外部Flash的技巧

电子老师傅發表於2024-11-18

今天帶領大家透過Air201+擴充套件板讀寫外部flash的演示,教你使用SPI示例,可根據實際需求靈活應用。

我們先了解一些相關基礎知識:

SPI(Serial Peripheral Interface)——是一種同步序列通訊協議,廣泛應用於微控制器和外圍裝置之間的資料傳輸。它由摩托羅拉公司開發,具有全雙工通訊能力,即可以同時進行資料的傳送和接收。

SPI的優點包括簡單的硬體連線、高速資料傳輸和全雙工通訊。其缺點是通常需要更多的引腳,尤其是在多個從裝置的情況下,每個從裝置需要一個獨立的CS引腳。此外,SPI沒有標準化的協議層,因此裝置間的相容性需要仔細管理。

接下來,我們講解SPI示例的具體使用。

1. 搭建環境

新同學建議先看前期的基礎知識相關教程,更有助於理解和操作。

可以在LuaTools專案管理中新建一個專案,重新選擇底層CORE和指令碼;或者在原有專案的基礎上,不更換CORE,將原來的指令碼刪除,新增為demo/spi的指令碼。

1.1 硬體準備:

Air201 PCBA

Air201-BTB擴充套件板(帶一個FPC線)

SIM卡

帶有資料通訊功能的資料線

Win10及以上PC

Flash模組:本文使用W25Q系列SPI Flash。

Air201透過FPC線連線BTB擴充套件板,BTB擴充套件板再連線FLASH模組。

SPI管腳定義詳見:
https://docs.openluat.com/air201/luatos/hardware/design/btb/#spi

完整接線如下所示:

1.2 軟體準備:

LuaTools除錯工具:
https://docs.openluat.com/Luatools

API介面說明:
https://docs.openluat.com/air201/luatos/api/core/spi

最新韌體:
https://gitee.com/openLuat/LuatOS-Air201/tree/master/core

最新指令碼:
https://gitee.com/openLuat/LuatOS-Air201/tree/master/demo/spi

2. 示例程式碼介紹

使用克隆的程式碼進行測試,程式碼路徑:
LuatOS-Air201\demo\spi

程式流程如下圖所示:

2.1 初始化配置

SPI使用的是SPI0,CS使用的GPIO8,在初始化階段,通常會將CS(GPIO8)拉高,表示當前沒有選中任何從裝置。

2.2 向FLASH寫入資料

檢視W25QX系列FLASH模組資料手冊的命令集,先寫使能命令0x06,再寫頁資料到地址0x000001。

2.3 從FLASH讀取資料

檢視W25QX系列FLASH模組資料手冊的命令集,使用0x03命令,讀取0x000001地址的資料,完成操作後關閉SPI。

2.4 完整例程展示

3. 程式碼燒錄

新同學可以檢視參考詳細燒錄教程:
https://docs.openluat.com/Luatools/

韌體版本不變的情況下,直接選擇下載指令碼即可。

4. 展示效果

至此我們已經使用Air201的SPI介面,成功完成了對W25Q64 Flash儲存器的讀寫操作。

分享完畢。

相關文章