0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

掌握4G模组SPI|技术指南

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-12-14 09:38 次阅读

本次我要分享的是4G模组SPI的技术指南,以合宙Air724UG为例,学完本章帮你实现技术提升。

一、简介

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

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

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

wKgaomc7TqKACZUtAARdr4DE7yA288.png

二、演示功能概述

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

三、准备硬件环境

3.1 开发板准备

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

wKgaomc7TrGAPI0jABJCcykPpKM499.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

wKgZomc7Tr6AfW64AApreaQBkzU514.png

3.5 电平转换模块

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

wKgZomc7TsqAB4C4AAocgILUxPY651.png

3.6 组装硬件环境

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

wKgZoWc7TtSAXtnsAAoI2TQmlpI424.png

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

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

wKgaomc7TuCAbCyTAAGLQTqdEUc306.png

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

wKgZomc7TvCAQkqOAAF4HX8l_n8034.png

四、准备软件环境

4.1 下载调试工具

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

4.2 源码及固件

4.2.1 底层 core 下载

下载底层固件,并解压

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

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

wKgaomc7Tv-AO_ooAAUWb_ZGoCs029.png

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

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

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

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

wKgZomc7TwmAMembAAPXkswI61M095.png

点击项目管理测试选项。

wKgaoWc7TxOAULk2AAENL2XSBeA193.png

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

wKgaoWc7TzKAH3YiAAOC_6ovbAI085.png

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

wKgaoWc7TzyAeyRjAACEagYFoC0637.png

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

wKgZoWc7T0aAE3mPAAI7fJJp8_s267.png

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

wKgZoWc7T1CAaGoxAAFNwjZcGWk665.png

五、代码示例介绍

5.1 API 说明

5.1.1 spi 开启接口

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

(点开放大)

wKgaoWc7T1yAIdEOAACurXoqDo4082.png

返回值

wKgaomc7T2SAVdErAACkBLD_s34169.png

5.1.2 spi 写数据

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

(点开放大)

wKgaomc7T26AQIJkAACGt87AARs514.png

返回值

wKgZomc7T3iAXbOrAABt0d8EbiU022.png

5.1.3 读数据

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

(点开放大)

wKgaomc7T4KAFIaSAACLL6I1X8g112.png

返回值

wKgaomc7T4uAXyz4AAB0H8E6-CY598.png

5.1.4 读写数据

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

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

返回值

wKgZomc7T5-ANKAXAAB1k3kAfOo311.png

5.1.5 关闭 SPI

spi.close(id)

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

返回值

wKgaomc7T7GAJ7RYAAChxAmBJLQ041.png

5.2 test_SPIFlash.lua 代码

test_SPIFlash 程序流程。

wKgZomc7T8KALnLTAAJEmPLHmNg459.pngwKgaomc7T9SAAVcTAAIKBDg641U139.pngwKgZomc7T-CALnKCAANfcZIYKGU991.png

5.3 main.lua 代码

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

5.4 spiFlash.lua

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

wKgZomc7T_KACstzAAPXq3xBSpU766.pngwKgaomc7UAKAGfcRAAM4T4Xhqac719.pngwKgZomc7UBCAFvX7AAQlcLBFlds842.pngwKgaomc7UB2AFIXpAANr_NZQbF4368.pngwKgZomc7UCuAScDGAARW2XbQoPY109.pngwKgaomc7UDyAdgBxAAVLBv2TvkI324.pngwKgZomc7UFGAC-IMAATTMCIm4oE634.pngwKgaomc7UGCAXhCvAAGtjELM0Hg144.png

六、开机调试

6.1 开发板开机

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

wKgaomc7UHCACUtrAAKiMnEkjy4550.png

6.2 SPI FLASH 调试

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

wKgaomc7UHuAGVTZAAXFR5R7HmM449.png

七、常见问题

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

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

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

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

分享完毕。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19230

    浏览量

    229554
  • 芯片
    +关注

    关注

    454

    文章

    50642

    浏览量

    422884
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1704

    浏览量

    91460
  • 模组
    +关注

    关注

    6

    文章

    1474

    浏览量

    30346
收藏 人收藏

    评论

    相关推荐

    掌握4G模组PWM|技术精要

    今天要讲的是4G模组PWM的技术精要,以常用的合宙Air724UG为例做出示例分享给大家。
    的头像 发表于 12-14 09:40 78次阅读
    <b class='flag-5'>掌握</b><b class='flag-5'>4G</b><b class='flag-5'>模组</b>PWM|<b class='flag-5'>技术</b>精要

    ESP32S2 WROVER在使用AT指令获取4G模组时,dte会报超时怎么解决?

    模组:ESP32 S2 WROVER 4G模组:合宙Air724UG 在使用AT指令获取4G模组时,dte会报超时。 代码和log如下图所示
    发表于 06-27 06:54

    4G技术

    4G技术{:4_95:}。。。。。。。。。。。。。。。。。。。
    发表于 06-14 15:39

    MiniPCIE 封装4G模组价值仍在

    类使用使用场景需要,奇迹物联推出一款基于eSIM技术的PCIExpress Mini Card 1.2 标准接口的4G模组—AM400P。基于ASR平台 ,工作温度可达-40℃到+85℃,静电能力达到
    发表于 02-21 11:57

    怎样去使用4G模块的spi接口呢

    1.引言最近在使用4G模块的spi接口,但4g模块引脚电平是1.8v的,但目标从机的电平是3.3v的,所以两个spi设备直接不能直接对接,需要电平转换。之前有用过相关的电平转换电路,让
    发表于 02-14 06:39

    4G模组

    4G模组:CR100IP-AHD-TF1-1F
    发表于 03-21 20:02 0次下载

    4G模组4G模块是什么?4G模组4G模块的平台?4G模组4G模块怎么选?ASR RDA 高通

    开始正文前,如需进一步交流,欢迎大家添加朱胖子微信交流: 4G模块是什么 4G模块是什么?4G模块是指第四代通讯技术模块, 4G模块是支持T
    的头像 发表于 06-07 19:50 1.5w次阅读

    4G Cat

    [开源项目]基于机智云GOKIT+Cat.14G模组转接板ML302-GC211的4G开发指南https://club.gizwits.com/forum.php?mod=viewth
    发表于 12-23 12:24 16次下载

    4G模组之UDP应用的最佳实践!

    今天说的是4G模组之UDP应用,展示最佳实践,送你参考。
    的头像 发表于 11-08 09:24 266次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b>之UDP应用的最佳实践!

    字符串处理:4G模组软件指南精要!

    最近一直有朋友咨询我关于4G模组的字符串处理,今天我便把相关指南展示给大家。
    的头像 发表于 11-17 09:57 177次阅读
    字符串处理:<b class='flag-5'>4G</b><b class='flag-5'>模组</b>软件<b class='flag-5'>指南</b>精要!

    UART通信入门:4G模组软件的实践指南

    本文将对4G模组Air724UG软件的UART做出相关示例,希望想了解此模组的朋友们收藏好仔细看。
    的头像 发表于 11-17 00:07 366次阅读
    UART通信入门:<b class='flag-5'>4G</b><b class='flag-5'>模组</b>软件的实践<b class='flag-5'>指南</b>

    4G模组SD卡使用技巧|专家指南

    今天我们学习的是4G模组SD卡使用技巧,以Air724UG为例做出指南供大家参考。
    的头像 发表于 12-14 09:37 49次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b>SD卡使用技巧|专家<b class='flag-5'>指南</b>

    SPI4G模组的集成:技术要领篇

    今天咋们要讲的是SPI4G模组技术要领,以低功耗模组Air724UG为例,展示给大家学习。
    的头像 发表于 11-20 23:25 178次阅读
    <b class='flag-5'>SPI</b>与<b class='flag-5'>4G</b><b class='flag-5'>模组</b>的集成:<b class='flag-5'>技术</b>要领篇

    4G模组PWM接口:技术实操要点

    今天我们讲解的是4G模组PWM接口的技术实操要点,以我常用的模组Air724UG为例分享出来。
    的头像 发表于 11-20 23:29 201次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b>PWM接口:<b class='flag-5'>技术</b>实操要点

    LuatOS开发之4G模组随机数(random)|实战指南

    本次学习的实战是关于4G模组LuatOS开发的随机数示例指南,希望大家有所收获。
    的头像 发表于 11-30 09:51 162次阅读
    LuatOS开发之<b class='flag-5'>4G</b><b class='flag-5'>模组</b>随机数(random)|实战<b class='flag-5'>指南</b>