今天帶領大家透過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儲存器的讀寫操作。
分享完畢。