今天我們要學習的是Air201定位模組LuatOS快速入門,本文將通過Air201+擴展板讀寫外部flash的演示,教你使用SPI示例,可根據實際需求靈活應用。
我們先了解一些相關基礎知識:
SPI(Serial Peripheral Interface)——是一種同步串行通信協議,廣泛應用于微控制器和外圍設備之間的數據傳輸。它由摩托羅拉公司開發,具有全雙工通信能力,即可以同時進行數據的發送和接收。
SPI通信通常涉及四條信號線:
MOSI(Master Out Slave In):
主設備發送數據,外設接收數據。
MISO(Master In Slave Out):
外設發送數據,主設備接收數據。
SCLK(Serial Clock):
由主設備生成的時鐘信號,用于同步數據傳輸。
CS/SS(Chip/Slave Select):
選擇特定的從設備進行通信。
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-Air201demospi
程序流程如下圖所示:
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存儲器的讀寫操作。
今天的分享就到這里
審核編輯 黃宇
-
FlaSh
+關注
關注
10文章
1621瀏覽量
147745 -
SPI
+關注
關注
17文章
1700瀏覽量
91312 -
模組
+關注
關注
6文章
1434瀏覽量
30288
發布評論請先 登錄
相關推薦
評論