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

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

3天内不再提示

SPI与4G模组的集成:技术要领篇

青山老竹农 来源:jf_82863998 作者:jf_82863998 2024-11-20 23:25 次阅读

今天咋们要讲的是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])

参数 类型 释义 取值
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

返回值

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

返回值

wKgZoWc9_mGASMCaAACcFJoMnqg091.png

5.2 test_SPIFlash.lua 代码

test_SPIFlash 程序流程。

wKgZoWc9_nCAbb0IAAKUJrmxhG4799.pngwKgaoWc9_n2ADbwQAAAswkP4DMY473.png

wKgZoWc9_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,这个电压是写死的,无法设置,如果目标芯片工作电压不在此范围内需要用电平转换芯片。

分享完毕

审核编辑 黄宇

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

    关注

    5103

    文章

    19265

    浏览量

    309966
  • 物联网
    +关注

    关注

    2915

    文章

    45225

    浏览量

    380113
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1731

    浏览量

    92832
收藏 人收藏

    评论

    相关推荐

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

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

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

    本次我要分享的是4G模组SPI技术指南,以合宙Air724UG为例,学完本章帮你实现技术提升。
    的头像 发表于 12-14 09:38 878次阅读
    掌握<b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>SPI</b>|<b class='flag-5'>技术</b>指南

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

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

    4G模组LuatOS开发|iconv字符集转换技术

    本次我要讲的是4G模组LuatOS开发的iconv字符集转换,已整理成文,今天便分享供大家。
    的头像 发表于 11-30 09:53 336次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b>LuatOS开发|iconv字符集转换<b class='flag-5'>技术</b><b class='flag-5'>篇</b>

    4G模组SD卡接口编程:深度学习

    今天我们需要深度学习的是4G模组SD卡接口编程,以我常用的模组Air724UG为例,分享给大家。
    的头像 发表于 11-20 23:14 389次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b>SD卡接口编程:深度学习

    深度解析 4G模组GPIO编程技巧

    本文将解析4G模组GPIO编程技巧,从概述、软硬件环境准备、示例等详细道来:
    的头像 发表于 11-20 23:08 366次阅读
    深度解析  <b class='flag-5'>4G</b><b class='flag-5'>模组</b>GPIO编程技巧<b class='flag-5'>篇</b>

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

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

    实例 4G模组软件之json数据处理!

    今天我会把4G模组软件的json数据处理整理成文,以低功耗模组Air780E为例,一一展示出来:
    的头像 发表于 11-12 12:17 297次阅读

    示例 关于4G模组的模块信息!

    今天我会把4G模组的模块信息做出详细介绍,做出示例,展示给大家,如果觉得有用的话请点赞收藏。
    的头像 发表于 11-12 12:07 551次阅读
    示例<b class='flag-5'>篇</b>  关于<b class='flag-5'>4G</b><b class='flag-5'>模组</b>的模块信息!

    示例4G模组AT指令之MQTT应用!

    针对4G模组AT指令的MQTT应用,我收集资料,做出示例,整理成文分享给大家,喜欢的可以收藏。
    的头像 发表于 11-12 11:56 719次阅读
    示例<b class='flag-5'>篇</b>:<b class='flag-5'>4G</b><b class='flag-5'>模组</b>AT指令之MQTT应用!

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

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

    白嫖4G 模组 MQTT 通信功能!

    今天我们白嫖的是4G 模组 MQTT 通信功能!以AIR708E开发板为例 从MQTT介绍,演示功能概述,准备硬件环境,准备软件环境,代码示例介绍等给大家展示明白
    的头像 发表于 10-30 14:53 1595次阅读
    白嫖<b class='flag-5'>篇</b>:<b class='flag-5'>4G</b> <b class='flag-5'>模组</b> MQTT 通信功能!

    ML307A 4G模组硬件设计手册

    基于ML307A  4G模组的硬件设计指导手册
    发表于 10-24 16:50 27次下载

    干货:低功耗4G模组Air780E的串口通信

    ​ 今天我们来讲解低功耗4G模组Air780E的串口通信的基本用法,小伙伴们,学起来吧!
    的头像 发表于 10-05 14:38 778次阅读
    干货<b class='flag-5'>篇</b>:低功耗<b class='flag-5'>4G</b><b class='flag-5'>模组</b>Air780E的串口通信

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

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