新闻  |   论坛  |   博客  |   在线研讨会
工程师们的福音!低功耗4G模组Air724UG软件指南:SPI示例!
13673998452 | 2025-01-26 14:29:46    阅读:7   发布文章

今天咋们要讲的是SPI与4G模组的技术要领,以低功耗模组Air724UG为例,展示给大家学习。


一、简介

SPI 是串行外设接口(Serial Peripheral Interface)的缩写。

SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,SDI(数据输入),SDO(数据输出),SCLK(时钟),CS(片选),就可以完成一个主设备和一个或多个从设备之间的通信,事实上 3 根也可以(单向传输时)。在嵌入式系统中,主要应用于 EEPROM、FLASH、实时时钟、AD转换器、数字信号处理器和数字信号解码器之间的通信,在全双工模式下,传输速率可达上Mbps的水平。

Air724模块对外提供的硬件SPI接口数量有两路,即 SPI1、SPI2,其他SPI通道以复用封装作为 LCD 或 MMC 功能管脚使用。

wKgZoWc9_VqASO2JAAIShJIyBko153.pngwKgZoWc9_W6AWr6yAAHeF07GrgE879.png

二、演示功能概述

 

本教程教你如何使用开发板的SPI总线读写 FLASH。

 

三、准备硬件环境

 

3.1 开发板准备

使用 EVB_Air724 开发板,如下图所示:

wKgZoWc9_YKASm6lABJHiF8IO9Q676.png

此开发板的详细使用说明参考:
https://docs.openluat.com/air724ug/product/

Air724UG 产品手册 中的《EVB_Air724UG_AXX 开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14 开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。

api文档:
https://doc.openluat.com/wiki/21?wiki_page_id=2068

 

3.2 数据通信线

USB 数据线一根(micro USB)。

 

3.3 PC 电脑

WIN7 以及以上版本的 WINDOWS 系统。

 

3.4 SPI FLASH 模块

25Q64JVSIQ 注意电平是 3.3V

wKgaoWc9_Y-APDVCAApx_4hOW08908.png

3.5 电平转换模块


双向电平转换模块(3.3V、1.8V)

wKgZoWc9_ZqARWCUAAnu52S_ycQ762.png

3.6 组装硬件环境

 

USB数据线插入 USB 口,另一端与电脑相连,拨码开关全部拨到 ON,串口切换开关选择 UART1,USB 供电的 4V 对应开关拨至 ON 档,SIM 卡放到 SIM 卡槽中锁紧,如下图所示。

wKgaoWc9_aeAEgZpAAoXC0j6xK0146.png

由于 SPI FLASH 模块只支持 3.3v 电平,开发板 SPI 接口只支持 1.8V 电平,所以 SPI FLASH 模块和开发板之间需要用电平转换模块将相互的 IO 电平转换,具体连接图如下图所示。

开发板与电平转换模块连接:

wKgaoWc9_bKADdVwAAGJc4NuvXU669.png

SPI FLASH 与电平转换模块连接:

wKgZoWc9_b6AA2-1AAFxjFTHDIc729.png

四、准备软件环境

 

4.1 下载调试工具

使用说明参考:
Luatools下载和详细使用
https://docs.openluat.com/Luatools/

 

4.2 源码及固件

 

4.2.1 底层 core 下载

下载底层固件,并解压

链接:
https://docs.openluat.com/air724ug/luatos/firmware/

如下图所示,红框的是我们要使用到的

wKgaoWc9_cyANBXBAAUS9xeGtxk179.png

4.2.2 本教程使用的 demo 见附件:

https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/spiFlash

 

4.3 下载固件和脚本到开发板中

 

打开 Luatools,开发板上电开机,如开机成功 Luatools 会打印如下信息。

wKgZoWc9_daAIs-bAAPXLTVX_cQ979.png

点击项目管理测试选项。

wKgZoWc9_eqAchcKAAELGYVzFZk372.png

进入管理界面,如下图所示。

wKgaoWc9_fiAbkPUAAN7tOldb00877.png

点击选择文件,选择底层固件,我的文件放在 D:luatOSAir724 路径中

wKgZoWc9_gOASa2eAACG7i510uw303.png

点击增加脚本或资源文件,选择之前下载的程序源码,如下图所示。

wKgaoWc9_gyAVjwvAAI7-a2bpKk037.png

点击下载底层和脚本,下载完成如下图所示。

wKgaoWc9_hSAVucbAAFK8uuRFtI364.png

 

五、代码示例介绍

 

5.1 API 说明

 

5.1.1 spi 开启接口

spi.setup(id,chpa,cpol,dataBits,clock,duplex)

(点开放大)

wKgZoWc9_h2AcK54AACtP1SkkkY325.png

返回值

wKgZoWc9_iaAY-YjAAChhAAfX88305.png

5.1.2 spi 写数据

 

spi.send(id,data[,cscontrol])

(点开放大)

wKgaoWc9_i-ACtiWAACCEeg1MuE831.png

返回值

wKgZoWc9_jiAcUWhAAB0duka2X0860.png

5.1.3 读数据

 

spi.recv(id,length[,cscontrol])

(点开放大)

wKgZoWc9_kGAK1gDAACKe_eR8IM197.png

返回值

wKgaoWc9_kqAFQsmAAB3h0k5pKY248.png

5.1.4 读写数据

 

spi.send_recv(id,data[,cscontrol])

参数类型释义取值
idnumberSPI 的 ID spi.SPI_1 表示 SPI1,Air720U 系列只有 SPI1 作为普通 SPI 接口使用,固定传 spi.SPI_1 即可通道选择0:普通 spi 1:lcdspi
data
 
string要发送的数据
cscontrolnumbercs 是否自动控制,可选参数默认 0,1 代表 CS 随数据自动变化,0 代表 cs 先拉低数据结束再恢复0/1

返回值

wKgaoWc9_leAW8lhAAB2OzcZQTM060.png

5.1.5 关闭 SPI

 

spi.close(id)

参数类型释义取值
idnumberSPI 的 ID,spi.SPI_1 表示 SPI1,Air720U 系列只有 SPI1 作为普通 SPI 接口使用,固定传 spi.SPI_1 即可0:普通 spi 1:lcdspi 复用为普通 spi

返回值

wKgZoWc9_mGASMCaAACcFJoMnqg091.png

5.2 test_SPIFlash.lua 代码


test_SPIFlash 程序流程。

wKgZoWc9_nCAbb0IAAKUJrmxhG4799.pngwKgaoWc9_n2ADbwQAAAswkP4DMY473.pngwKgZoWc9_pSAWUdRAAS0-8sUO4s064.png

 

5.3 main.lua 代码


本代码为主程序脚本,系统启动后首先会对 4G 网络进行配置,然后加载 test_SPIFlash 测试模块。

 

5.4 spiFlash.lua


spiFlash.lua 为 W25Q32/BH25Q32 驱动代码。

wKgZoWc9_qKAAQ0KAAOXZyKLatE690.pngwKgaoWc9_rGAbuZYAANJmR9z8rI646.pngwKgaoWc9_sOAIgQaAAQwsvFctzo836.pngwKgZoWc9_tKACxXiAAOCC1h5P9w465.pngwKgaoWc9_uKAI-7ZAAR3WY7K-K8239.pngwKgZoWc9_vWAWKGsAAXb4qDCNBg340.pngwKgaoWc9_waAPzloAAT2nROUexw439.pngwKgZoWc9_xGAOqw0AADR-q7z-a4927.png

 

六、开机调试

 

6.1 开发板开机

连接好硬件并下载固件后,启动 Luatools 软件,系统运行信息将显示在界面中。红框中为开发板连接到 PC 机后正常打印的信息,如下图所示。

wKgZoWc9_xyAWFX_AAKjevH7KTA511.png

6.2 SPI FLASH 调试

读出 SPI FLASH ID, 并显示 SPI FLASH 的型号,并且读写测试。

wKgaoWc9_yaAUVhDAAXFaKoNU0Q076.png

七、常见问题

 

7.1 为什么 SPI 通信中会出现一些乱码或数据丢失

答:SPI 通信的接口电平不匹配。可用示波器观测 SPI 接口在通信过程中的电平状态和电平质量,确认用户所使用的通信设备中接口电平是否与 Air724 模块 SPI1 接口电平一致,Air724 开发板上的 Air724 模块的 SPI1 接口电平均为 1.8V,如不匹配,请确保一致。不能过高或过低,过低有可能会导致电平电压不能被识别,过高有可能会损坏 SPI 通信接口,另外,建议使用一些高速器件作为电平转换器件,可提高接口电平的信号质量。

 

7.2 标准 spi 可以驱动的目标芯片电压是多少?

1.8V,这个电压是写死的,无法设置,如果目标芯片工作电压不在此范围内需要用电平转换芯片。

 

分享完毕!


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客