||
一、Air780EPM的SPI功能支持
在Air780EPM中,SPI接口通過特定GPIO引腳實(shí)現(xiàn),需結(jié)合LuatOS的API進(jìn)行配置。通過合理設(shè)計(jì)和調(diào)試,可高效連接多種外設(shè),擴(kuò)展物聯(lián)網(wǎng)應(yīng)用功能。
1)接口數(shù)量:
Air780EPM支持4路SPI接口:
1路用于SPI LCD;
1路用于SPI Camera;
2路標(biāo)準(zhǔn)SPI接口(Air780EPM開發(fā)板中將SPI0用于了以太網(wǎng)接口)。
這里需要特別注意:LCD和Camera專用SPI接口,無法作為標(biāo)準(zhǔn)SPI接口使用。
管腳映射圖等最新資料下載:https://docs.openluat.com/air780epm/luatos/hardware/design/spi/
2)電壓兼容性:
SPI接口電壓可通過IO_SEL引腳配置為1.8V或3.3V,需注意與外設(shè)的電平匹配,否則需添加電平轉(zhuǎn)換電路。
以下僅針對2路標(biāo)準(zhǔn)SPI接口進(jìn)行介紹。
協(xié)議兼容性:支持標(biāo)準(zhǔn)SPI協(xié)議(主模式)。
工作模式:
主模式(Master):支持。
從模式(Slave):不支持(暫不支持)。
速率支持:最大時(shí)鐘頻率:25.6MHz(需外設(shè)支持)。
典型應(yīng)用頻率:1MHz~10MHz(需根據(jù)外設(shè)能力調(diào)整)。
LuatOS API:
提供spi.setup()、spi.send()、spi.receive() 等函數(shù)控制SPI通信。
使用Air780EPM和LuatOS進(jìn)行SPI開發(fā)時(shí),需特別關(guān)注以下關(guān)鍵事項(xiàng)。
1)信號線配置:確保SPI引腳(CLK、MOSI、MISO、CS)正確連接,避免與其他復(fù)用功能(如UART、I2C、PWM、GPIO 等)沖突。
2)電平匹配:
若外設(shè)為5V電平,需通過電平轉(zhuǎn)換芯片(如TXB0104)轉(zhuǎn)換至3.3V或1.8V,保持與VDD_EXT電平一致。
3)信號完整性:
SPI線需遠(yuǎn)離高頻干擾源(如電源線、射頻模塊);高速通信時(shí),SCLK線長度應(yīng)≤10cm,避免信號反射或延遲。
1)初始化步驟:
2)低功耗模式:
SPI接口在模塊休眠時(shí)會掉電,需在喚醒后重新初始化。
通信失敗時(shí),可從以下幾個(gè)方面進(jìn)行排查。
1)檢查時(shí)鐘頻率:外設(shè)最大支持速率需≥配置速率(如外設(shè)僅支持 5MHz,需設(shè)置spi.setup(1, 5e6, ...))。
2)數(shù)據(jù)格式匹配:
確保CPOL/CPHA模式與外設(shè)一致(參考具體外設(shè)數(shù)據(jù)手冊)。
3)CS信號狀態(tài):
確認(rèn)SS引腳在通信期間保持低電平。
4)信號完整性:
用示波器檢查CLK、MOSI、MISO波形是否正常。
1)GPIO復(fù)用:
確保SPI引腳未被其他功能(如UART、I2C、PWM、GPIO 等)占用,在使用SPI功能之前務(wù)必使用LuatIO 工具進(jìn)行初始化配置。
2)DMA與FIFO優(yōu)化:
高速傳輸時(shí)啟用DMA模式;避免FIFO溢出,需合理設(shè)置緩沖區(qū)大小。
3)固件版本:
使用支持SPI功能的LuatOS固件。
詳見最新固件說明:https://docs.openluat.com/air780epm/luatos/firmware/version/
下文以Air780EPM開發(fā)板上SPI接口的以太網(wǎng)芯片CH390H為例,分享SPI接口的常用用法。
Air780EPM二次開發(fā)的原理圖和PCB等硬件參考設(shè)計(jì)文件,需要的朋友可通過資料中心下載。
最新參考設(shè)計(jì)文件下載:https://docs.openluat.com/air780epm/luatos/hardware/design/reference/
有關(guān)CH390H的代碼太長,這里僅截取一段有關(guān)SPI0的代碼作為示例。
CH390H聯(lián)網(wǎng)測試完整示例代碼,詳見源碼倉庫:https://gitee.com/openLuat/LuatOS/tree/master/module/Air780EPM/demo
今天的內(nèi)容就分享到這里了~