今天我們要學(xué)習(xí)的是Air201定位模組LuatOS快速入門,本文將通過Air201+擴(kuò)展板讀寫外部flash的演示,教你使用SPI示例,可根據(jù)實(shí)際需求靈活應(yīng)用。
我們先了解一些相關(guān)基礎(chǔ)知識(shí):
SPI(Serial Peripheral Interface)——是一種同步串行通信協(xié)議,廣泛應(yīng)用于微控制器和外圍設(shè)備之間的數(shù)據(jù)傳輸。它由摩托羅拉公司開發(fā),具有全雙工通信能力,即可以同時(shí)進(jìn)行數(shù)據(jù)的發(fā)送和接收。
SPI通信通常涉及四條信號(hào)線:
MOSI(Master Out Slave In):
主設(shè)備發(fā)送數(shù)據(jù),外設(shè)接收數(shù)據(jù)。
MISO(Master In Slave Out):
外設(shè)發(fā)送數(shù)據(jù),主設(shè)備接收數(shù)據(jù)。
SCLK(Serial Clock):
由主設(shè)備生成的時(shí)鐘信號(hào),用于同步數(shù)據(jù)傳輸。
CS/SS(Chip/Slave Select):
選擇特定的從設(shè)備進(jìn)行通信。
SPI的優(yōu)點(diǎn)包括簡(jiǎn)單的硬件連接、高速數(shù)據(jù)傳輸和全雙工通信。其缺點(diǎn)是通常需要更多的引腳,尤其是在多個(gè)從設(shè)備的情況下,每個(gè)從設(shè)備需要一個(gè)獨(dú)立的CS引腳。此外,SPI沒有標(biāo)準(zhǔn)化的協(xié)議層,因此設(shè)備間的兼容性需要仔細(xì)管理。
接下來(lái),我們講解SPI示例的具體使用。
1. 搭建環(huán)境
新同學(xué)建議先看前期的基礎(chǔ)知識(shí)相關(guān)教程,更有助于理解和操作。
可以在LuaTools項(xiàng)目管理中新建一個(gè)項(xiàng)目,重新選擇底層CORE和腳本;或者在原有項(xiàng)目的基礎(chǔ)上,不更換CORE,將原來(lái)的腳本刪除,添加為demo/spi的腳本。
1.1 硬件準(zhǔn)備:
Air201 PCBA
Air201-BTB擴(kuò)展板(帶一個(gè)FPC線)
SIM卡
帶有數(shù)據(jù)通信功能的數(shù)據(jù)線
Win10及以上PC
Flash模塊:本文使用W25Q系列SPI Flash。
Air201通過FPC線連接BTB擴(kuò)展板,BTB擴(kuò)展板再連接FLASH模塊。
SPI管腳定義詳見:
https://docs.openluat.com/air201/luatos/hardware/design/btb/#spi
完整接線如下所示:
1.2 軟件準(zhǔn)備:
LuaTools調(diào)試工具:
https://docs.openluat.com/Luatools
API接口說(shuō)明:
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. 示例代碼介紹
使用克隆的代碼進(jìn)行測(cè)試,代碼路徑:
LuatOS-Air201demospi
程序流程如下圖所示:
2.1 初始化配置
SPI使用的是SPI0,CS使用的GPIO8,在初始化階段,通常會(huì)將CS(GPIO8)拉高,表示當(dāng)前沒有選中任何從設(shè)備。
2.2 向FLASH寫入數(shù)據(jù)
查看W25QX系列FLASH模塊數(shù)據(jù)手冊(cè)的命令集,先寫使能命令0x06,再寫頁(yè)數(shù)據(jù)到地址0x000001。
2.3 從FLASH讀取數(shù)據(jù)
查看W25QX系列FLASH模塊數(shù)據(jù)手冊(cè)的命令集,使用0x03命令,讀取0x000001地址的數(shù)據(jù),完成操作后關(guān)閉SPI。
2.4 完整例程展示
3. 代碼燒錄
新同學(xué)可以查看參考詳細(xì)燒錄教程:
https://docs.openluat.com/Luatools/
固件版本不變的情況下,直接選擇下載腳本即可。
4. 展示效果
至此我們已經(jīng)使用Air201的SPI接口,成功完成了對(duì)W25Q64 Flash存儲(chǔ)器的讀寫操作。
今天的分享就到這里
審核編輯 黃宇
-
FlaSh
+關(guān)注
關(guān)注
10文章
1633瀏覽量
147939 -
SPI
+關(guān)注
關(guān)注
17文章
1706瀏覽量
91501 -
模組
+關(guān)注
關(guān)注
6文章
1487瀏覽量
30360
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論